@toptal/picasso-page 2.0.23 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-package/src/PageTopBar/PageTopBar.d.ts +3 -0
- package/dist-package/src/PageTopBar/PageTopBar.d.ts.map +1 -1
- package/dist-package/src/PageTopBar/PageTopBar.js +24 -20
- package/dist-package/src/PageTopBar/PageTopBar.js.map +1 -1
- package/dist-package/src/PageTopBar/index.d.ts +1 -0
- package/dist-package/src/PageTopBar/index.d.ts.map +1 -1
- package/dist-package/src/PageTopBar/index.js +1 -0
- package/dist-package/src/PageTopBar/index.js.map +1 -1
- package/dist-package/src/PageTopBarMenu/PageTopBarMenu.d.ts.map +1 -1
- package/dist-package/src/PageTopBarMenu/PageTopBarMenu.js +7 -4
- package/dist-package/src/PageTopBarMenu/PageTopBarMenu.js.map +1 -1
- package/dist-package/src/PageTopBarMenu/styles.d.ts +1 -1
- package/dist-package/src/PageTopBarMenu/styles.d.ts.map +1 -1
- package/dist-package/src/PageTopBarMenu/styles.js +4 -1
- package/dist-package/src/PageTopBarMenu/styles.js.map +1 -1
- package/package.json +5 -5
- package/src/PageTopBar/PageTopBar.tsx +62 -49
- package/src/PageTopBar/index.ts +1 -0
- package/src/PageTopBar/story/Variants.example.tsx +26 -0
- package/src/PageTopBarMenu/PageTopBarMenu.tsx +10 -4
- package/src/PageTopBarMenu/__snapshots__/test.tsx.snap +2 -2
- package/src/PageTopBarMenu/styles.ts +4 -1
|
@@ -24,6 +24,9 @@ export interface Props extends BaseProps, HTMLAttributes<HTMLElement> {
|
|
|
24
24
|
hamburger?: string;
|
|
25
25
|
};
|
|
26
26
|
}
|
|
27
|
+
export declare const PageTopBarContext: React.Context<{
|
|
28
|
+
variant: VariantType;
|
|
29
|
+
}>;
|
|
27
30
|
export declare const PageTopBar: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLElement>>;
|
|
28
31
|
export default PageTopBar;
|
|
29
32
|
//# sourceMappingURL=PageTopBar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageTopBar.d.ts","sourceRoot":"","sources":["../../../src/PageTopBar/PageTopBar.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AACpE,OAAO,KAA4C,MAAM,OAAO,CAAA;AAEhE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAqBvD,aAAK,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAA;AAE5C,MAAM,WAAW,KAAM,SAAQ,SAAS,EAAE,cAAc,CAAC,WAAW,CAAC;IACnE,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,qCAAqC;IACrC,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,sBAAsB;IACtB,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,8CAA8C;IAC9C,aAAa,CAAC,EAAE,SAAS,CAAA;IACzB,iDAAiD;IACjD,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB,kDAAkD;IAClD,YAAY,CAAC,EAAE,SAAS,CAAA;IACxB,oBAAoB;IACpB,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB,oBAAoB;IACpB,OAAO,CAAC,EAAE,WAAW,CAAA;IACrB,uBAAuB;IACvB,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB,CAAA;CACF;
|
|
1
|
+
{"version":3,"file":"PageTopBar.d.ts","sourceRoot":"","sources":["../../../src/PageTopBar/PageTopBar.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AACpE,OAAO,KAA4C,MAAM,OAAO,CAAA;AAEhE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAqBvD,aAAK,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAA;AAE5C,MAAM,WAAW,KAAM,SAAQ,SAAS,EAAE,cAAc,CAAC,WAAW,CAAC;IACnE,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,qCAAqC;IACrC,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,sBAAsB;IACtB,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,8CAA8C;IAC9C,aAAa,CAAC,EAAE,SAAS,CAAA;IACzB,iDAAiD;IACjD,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB,kDAAkD;IAClD,YAAY,CAAC,EAAE,SAAS,CAAA;IACxB,oBAAoB;IACpB,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB,oBAAoB;IACpB,OAAO,CAAC,EAAE,WAAW,CAAA;IACrB,uBAAuB;IACvB,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB,CAAA;CACF;AAED,eAAO,MAAM,iBAAiB;aAAkC,WAAW;EAEzE,CAAA;AAMF,eAAO,MAAM,UAAU,2EAuIrB,CAAA;AAQF,eAAe,UAAU,CAAA"}
|
|
@@ -20,6 +20,9 @@ import { useIsomorphicLayoutEffect } from '@toptal/picasso-utils';
|
|
|
20
20
|
import { PageContext } from '../Page';
|
|
21
21
|
import { PageHamburger, PageHamburgerPortal, useHamburgerContext, } from '../PageHamburger';
|
|
22
22
|
import styles from './styles';
|
|
23
|
+
export const PageTopBarContext = React.createContext({
|
|
24
|
+
variant: 'dark',
|
|
25
|
+
});
|
|
23
26
|
const useStyles = makeStyles(styles, {
|
|
24
27
|
name: 'PicassoTopBar',
|
|
25
28
|
});
|
|
@@ -53,26 +56,27 @@ export const PageTopBar = forwardRef(function PageTopBar(props, ref) {
|
|
|
53
56
|
[classes.fullWidth]: fullWidth || width === 'full',
|
|
54
57
|
[classes.wide]: width === 'wide',
|
|
55
58
|
}, classes.content);
|
|
56
|
-
return (React.createElement(
|
|
57
|
-
React.createElement("
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
React.createElement("div", { className:
|
|
62
|
-
React.createElement(
|
|
63
|
-
React.createElement(
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
React.createElement(
|
|
71
|
-
React.createElement(
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
59
|
+
return (React.createElement(PageTopBarContext.Provider, { value: { variant } },
|
|
60
|
+
React.createElement("div", { className: classes.wrapper },
|
|
61
|
+
React.createElement("header", Object.assign({}, rest, { ref: ref, className: cx('mui-fixed', classes.root, classes[variant], className, {
|
|
62
|
+
[classes.preventPageWidthChangeOnScrollbar]: preventPageWidthChangeOnScrollbar,
|
|
63
|
+
}), style: style }),
|
|
64
|
+
React.createElement("div", { className: innerClassName },
|
|
65
|
+
React.createElement("div", { className: classes.left },
|
|
66
|
+
React.createElement(Container, { flex: true, alignItems: 'center', gap: 'small' },
|
|
67
|
+
React.createElement(PageHamburger, { id: hamburgerId, "data-testid": testIds === null || testIds === void 0 ? void 0 : testIds.hamburger }),
|
|
68
|
+
logoLink
|
|
69
|
+
? React.cloneElement(logoLink, {}, logoComponent)
|
|
70
|
+
: logoComponent,
|
|
71
|
+
titleComponent),
|
|
72
|
+
leftContent),
|
|
73
|
+
centerContent && (React.createElement(React.Fragment, null,
|
|
74
|
+
React.createElement(PageHamburgerPortal, null,
|
|
75
|
+
React.createElement("div", { className: classes.centerContentPortal }, centerContent)),
|
|
76
|
+
React.createElement(Container, { flex: true, alignItems: 'center', className: classes.centerContent }, centerContent))),
|
|
77
|
+
React.createElement("div", { className: classes.right },
|
|
78
|
+
actionItems,
|
|
79
|
+
rightContent))))));
|
|
76
80
|
});
|
|
77
81
|
PageTopBar.defaultProps = {
|
|
78
82
|
variant: 'dark',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageTopBar.js","sourceRoot":"","sources":["../../../src/PageTopBar/PageTopBar.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"PageTopBar.js","sourceRoot":"","sources":["../../../src/PageTopBar/PageTopBar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { OmitInternalProps } from '@toptal/picasso-shared';
|
|
2
2
|
import type { Props } from './PageTopBar';
|
|
3
3
|
export { default as PageTopBar } from './PageTopBar';
|
|
4
|
+
export { PageTopBarContext } from './PageTopBar';
|
|
4
5
|
export declare type PageTopBarProps = OmitInternalProps<Props>;
|
|
5
6
|
export * from './constants';
|
|
6
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/PageTopBar/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAE/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAEzC,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAA;AACpD,oBAAY,eAAe,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;AACtD,cAAc,aAAa,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/PageTopBar/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAE/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAEzC,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChD,oBAAY,eAAe,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;AACtD,cAAc,aAAa,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/PageTopBar/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/PageTopBar/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAEhD,cAAc,aAAa,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageTopBarMenu.d.ts","sourceRoot":"","sources":["../../../src/PageTopBarMenu/PageTopBarMenu.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AACtD,OAAO,
|
|
1
|
+
{"version":3,"file":"PageTopBarMenu.d.ts","sourceRoot":"","sources":["../../../src/PageTopBarMenu/PageTopBarMenu.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AACtD,OAAO,KAAiC,MAAM,OAAO,CAAA;AAIrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAcvD,MAAM,WAAW,KAAM,SAAQ,SAAS,EAAE,cAAc,CAAC,cAAc,CAAC;IACtE,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,yBAAyB;IACzB,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,gBAAgB;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,mBAAmB;IACnB,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED,eAAO,MAAM,cAAc,8EAuG1B,CAAA;AAMD,eAAe,cAAc,CAAA"}
|
|
@@ -9,7 +9,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
9
9
|
}
|
|
10
10
|
return t;
|
|
11
11
|
};
|
|
12
|
-
import React, { forwardRef } from 'react';
|
|
12
|
+
import React, { useContext, forwardRef } from 'react';
|
|
13
13
|
import cx from 'classnames';
|
|
14
14
|
import { makeStyles } from '@material-ui/core/styles';
|
|
15
15
|
import { useBreakpoint } from '@toptal/picasso-utils';
|
|
@@ -18,14 +18,17 @@ import { Avatar } from '@toptal/picasso-avatar';
|
|
|
18
18
|
import { Typography } from '@toptal/picasso-typography';
|
|
19
19
|
import { DropdownCompound as Dropdown } from '@toptal/picasso-dropdown';
|
|
20
20
|
import styles from './styles';
|
|
21
|
+
import { PageTopBarContext } from '../PageTopBar';
|
|
21
22
|
const useStyles = makeStyles(styles, {
|
|
22
23
|
name: 'PicassoTopBarMenu',
|
|
23
24
|
});
|
|
24
25
|
export const PageTopBarMenu = forwardRef(function PageTopBarMenu(props, ref) {
|
|
25
26
|
const { name, meta, avatar, className, style, children, 'data-private': dataPrivate } = props, rest = __rest(props, ["name", "meta", "avatar", "className", "style", "children", 'data-private']);
|
|
26
27
|
const classes = useStyles();
|
|
28
|
+
const { variant } = useContext(PageTopBarContext);
|
|
29
|
+
const invert = variant === 'light';
|
|
27
30
|
const isCompactLayout = useBreakpoint(['xs', 'sm', 'md']);
|
|
28
|
-
const metaContent = typeof meta === 'string' ? (React.createElement(Typography, { className: classes.truncateText, invert: !isCompactLayout, size: 'xsmall', "data-private": dataPrivate }, meta)) : (meta);
|
|
31
|
+
const metaContent = typeof meta === 'string' ? (React.createElement(Typography, { className: classes.truncateText, invert: !isCompactLayout && !invert, size: 'xsmall', "data-private": dataPrivate }, meta)) : (meta);
|
|
29
32
|
const content = isCompactLayout ? (React.createElement(React.Fragment, null,
|
|
30
33
|
React.createElement(UserBadge, { center: true, size: 'xxsmall', "data-private": dataPrivate, classes: {
|
|
31
34
|
root: classes.contentUserBadge,
|
|
@@ -33,7 +36,7 @@ export const PageTopBarMenu = forwardRef(function PageTopBarMenu(props, ref) {
|
|
|
33
36
|
name: cx('!font-[400]', classes.truncateText),
|
|
34
37
|
}, name: name, avatar: avatar }, meta && metaContent),
|
|
35
38
|
children)) : (children);
|
|
36
|
-
const trigger = isCompactLayout ? (React.createElement(Avatar, { size: 'xxsmall', "data-private": dataPrivate, name: name, src: avatar })) : (React.createElement(UserBadge, { invert:
|
|
39
|
+
const trigger = isCompactLayout ? (React.createElement(Avatar, { size: 'xxsmall', "data-private": dataPrivate, name: name, src: avatar })) : (React.createElement(UserBadge, { invert: !invert, center: true, size: 'xxsmall', classes: {
|
|
37
40
|
name: cx('!font-[400]', classes.truncateText),
|
|
38
41
|
}, name: name, "data-private": dataPrivate, avatar: avatar }, meta && metaContent));
|
|
39
42
|
return (React.createElement(Dropdown, Object.assign({}, rest, { ref: ref, className: cx(classes.root, className), classes: { content: classes.content }, style: style, content: content, offset: { top: isCompactLayout ? 0.8 : 'xsmall' }, popperOptions: {
|
|
@@ -45,7 +48,7 @@ export const PageTopBarMenu = forwardRef(function PageTopBarMenu(props, ref) {
|
|
|
45
48
|
},
|
|
46
49
|
} }),
|
|
47
50
|
trigger,
|
|
48
|
-
React.createElement(Dropdown.Arrow, { className: classes.arrow })));
|
|
51
|
+
React.createElement(Dropdown.Arrow, { className: cx(classes.arrow, { [classes.invert]: invert }) })));
|
|
49
52
|
});
|
|
50
53
|
PageTopBarMenu.defaultProps = {};
|
|
51
54
|
PageTopBarMenu.displayName = 'PageTopBarMenu';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageTopBarMenu.js","sourceRoot":"","sources":["../../../src/PageTopBarMenu/PageTopBarMenu.tsx"],"names":[],"mappings":";;;;;;;;;;;AAEA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"PageTopBarMenu.js","sourceRoot":"","sources":["../../../src/PageTopBarMenu/PageTopBarMenu.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { Theme } from '@material-ui/core/styles';
|
|
2
|
-
declare const _default: ({ screens }: Theme) => import("@material-ui/styles").StyleRules<{}, "content" | "name" | "arrow" | "avatar" | "contentUserBadge" | "truncateText" | "paper">;
|
|
2
|
+
declare const _default: ({ screens, palette }: Theme) => import("@material-ui/styles").StyleRules<{}, "content" | "invert" | "name" | "arrow" | "avatar" | "contentUserBadge" | "truncateText" | "paper">;
|
|
3
3
|
export default _default;
|
|
4
4
|
//# sourceMappingURL=styles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/PageTopBarMenu/styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/PageTopBarMenu/styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;+CAGf,KAAK;AAA3C,wBA6CI"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createStyles } from '@material-ui/core/styles';
|
|
2
|
-
export default ({ screens }) => createStyles({
|
|
2
|
+
export default ({ screens, palette }) => createStyles({
|
|
3
3
|
avatar: {
|
|
4
4
|
fontSize: '0.9rem',
|
|
5
5
|
},
|
|
@@ -34,6 +34,9 @@ export default ({ screens }) => createStyles({
|
|
|
34
34
|
marginLeft: '0.5rem',
|
|
35
35
|
},
|
|
36
36
|
},
|
|
37
|
+
invert: {
|
|
38
|
+
color: palette.text.primary,
|
|
39
|
+
},
|
|
37
40
|
paper: {
|
|
38
41
|
[screens('xs', 'sm', 'md')]: {
|
|
39
42
|
top: '2.5em !important',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/PageTopBarMenu/styles.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAEvD,eAAe,CAAC,EAAE,OAAO,EAAS,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/PageTopBarMenu/styles.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAEvD,eAAe,CAAC,EAAE,OAAO,EAAE,OAAO,EAAS,EAAE,EAAE,CAC7C,YAAY,CAAC;IACX,MAAM,EAAE;QACN,QAAQ,EAAE,QAAQ;KACnB;IACD,gBAAgB,EAAE;QAChB,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE;YAC3B,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,CAAC;YACT,eAAe,EAAE,OAAO;YACxB,QAAQ,EAAE,UAAU;SACrB;KACF;IACD,OAAO,EAAE;QACP,SAAS,EAAE,4CAA4C;QACvD,KAAK,EAAE,MAAM;QACb,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE;YACrB,KAAK,EAAE,OAAO;SACf;KACF;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,GAAG;QACf,OAAO,EAAE,OAAO;KACjB;IACD,YAAY,EAAE;QACZ,QAAQ,EAAE,SAAS;QACnB,UAAU,EAAE,QAAQ;QACpB,QAAQ,EAAE,QAAQ;QAClB,YAAY,EAAE,UAAU;KACzB;IACD,KAAK,EAAE;QACL,KAAK,EAAE,OAAO;QAEd,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE;YAC3B,UAAU,EAAE,QAAQ;SACrB;KACF;IACD,MAAM,EAAE;QACN,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO;KAC5B;IACD,KAAK,EAAE;QACL,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE;YAC3B,GAAG,EAAE,kBAAkB;SACxB;KACF;CACF,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@toptal/picasso-page",
|
|
3
|
-
"version": "2.0
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"description": "Toptal UI components library - Page",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -23,21 +23,21 @@
|
|
|
23
23
|
"homepage": "https://github.com/toptal/picasso/tree/master/packages/picasso#readme",
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"@toptal/picasso-accordion": "1.0.23",
|
|
26
|
-
"@toptal/picasso-autocomplete": "1.0.
|
|
27
|
-
"@toptal/picasso-avatar": "
|
|
26
|
+
"@toptal/picasso-autocomplete": "1.0.29",
|
|
27
|
+
"@toptal/picasso-avatar": "3.0.0",
|
|
28
28
|
"@toptal/picasso-badge": "1.0.3",
|
|
29
29
|
"@toptal/picasso-button": "2.1.0",
|
|
30
30
|
"@toptal/picasso-container": "1.0.3",
|
|
31
31
|
"@toptal/picasso-dropdown": "2.0.3",
|
|
32
32
|
"@toptal/picasso-icons": "1.4.0",
|
|
33
33
|
"@toptal/picasso-logo": "1.0.7",
|
|
34
|
-
"@toptal/picasso-menu": "1.0.
|
|
34
|
+
"@toptal/picasso-menu": "1.0.16",
|
|
35
35
|
"@toptal/picasso-notification": "2.0.15",
|
|
36
36
|
"@toptal/picasso-shared": "15.0.0",
|
|
37
37
|
"@toptal/picasso-tag": "2.0.5",
|
|
38
38
|
"@toptal/picasso-tooltip": "1.1.3",
|
|
39
39
|
"@toptal/picasso-typography": "2.0.2",
|
|
40
|
-
"@toptal/picasso-user-badge": "2.0.
|
|
40
|
+
"@toptal/picasso-user-badge": "2.0.7",
|
|
41
41
|
"@toptal/picasso-utils": "1.0.3",
|
|
42
42
|
"classnames": "^2.5.1",
|
|
43
43
|
"tailwind-merge": "^2.2.2"
|
|
@@ -48,6 +48,10 @@ export interface Props extends BaseProps, HTMLAttributes<HTMLElement> {
|
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
+
export const PageTopBarContext = React.createContext<{ variant: VariantType }>({
|
|
52
|
+
variant: 'dark',
|
|
53
|
+
})
|
|
54
|
+
|
|
51
55
|
const useStyles = makeStyles<Theme>(styles, {
|
|
52
56
|
name: 'PicassoTopBar',
|
|
53
57
|
})
|
|
@@ -125,58 +129,67 @@ export const PageTopBar = forwardRef<HTMLElement, Props>(function PageTopBar(
|
|
|
125
129
|
)
|
|
126
130
|
|
|
127
131
|
return (
|
|
128
|
-
<
|
|
129
|
-
<
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
<PageHamburger
|
|
143
|
-
id={hamburgerId}
|
|
144
|
-
data-testid={testIds?.hamburger}
|
|
145
|
-
/>
|
|
146
|
-
{logoLink
|
|
147
|
-
? React.cloneElement(logoLink, {}, logoComponent)
|
|
148
|
-
: logoComponent}
|
|
149
|
-
{titleComponent}
|
|
150
|
-
</Container>
|
|
151
|
-
{leftContent}
|
|
152
|
-
</div>
|
|
153
|
-
|
|
154
|
-
{/* Center part: inline menu */}
|
|
155
|
-
{centerContent && (
|
|
156
|
-
<>
|
|
157
|
-
<PageHamburgerPortal>
|
|
158
|
-
<div className={classes.centerContentPortal}>
|
|
159
|
-
{centerContent}
|
|
160
|
-
</div>
|
|
161
|
-
</PageHamburgerPortal>
|
|
162
|
-
<Container
|
|
163
|
-
flex
|
|
164
|
-
alignItems='center'
|
|
165
|
-
className={classes.centerContent}
|
|
166
|
-
>
|
|
167
|
-
{centerContent}
|
|
168
|
-
</Container>
|
|
169
|
-
</>
|
|
132
|
+
<PageTopBarContext.Provider value={{ variant }}>
|
|
133
|
+
<div className={classes.wrapper}>
|
|
134
|
+
<header
|
|
135
|
+
{...rest}
|
|
136
|
+
ref={ref}
|
|
137
|
+
className={cx(
|
|
138
|
+
'mui-fixed',
|
|
139
|
+
classes.root,
|
|
140
|
+
classes[variant],
|
|
141
|
+
className,
|
|
142
|
+
{
|
|
143
|
+
[classes.preventPageWidthChangeOnScrollbar]:
|
|
144
|
+
preventPageWidthChangeOnScrollbar,
|
|
145
|
+
}
|
|
170
146
|
)}
|
|
147
|
+
style={style}
|
|
148
|
+
>
|
|
149
|
+
<div className={innerClassName}>
|
|
150
|
+
{/* Left part: Hamburger, Logo, Tagline, Search bar */}
|
|
151
|
+
<div className={classes.left}>
|
|
152
|
+
<Container flex alignItems='center' gap='small'>
|
|
153
|
+
<PageHamburger
|
|
154
|
+
id={hamburgerId}
|
|
155
|
+
data-testid={testIds?.hamburger}
|
|
156
|
+
/>
|
|
157
|
+
{logoLink
|
|
158
|
+
? React.cloneElement(logoLink, {}, logoComponent)
|
|
159
|
+
: logoComponent}
|
|
160
|
+
{titleComponent}
|
|
161
|
+
</Container>
|
|
162
|
+
{leftContent}
|
|
163
|
+
</div>
|
|
164
|
+
|
|
165
|
+
{/* Center part: inline menu */}
|
|
166
|
+
{centerContent && (
|
|
167
|
+
<>
|
|
168
|
+
<PageHamburgerPortal>
|
|
169
|
+
<div className={classes.centerContentPortal}>
|
|
170
|
+
{centerContent}
|
|
171
|
+
</div>
|
|
172
|
+
</PageHamburgerPortal>
|
|
173
|
+
<Container
|
|
174
|
+
flex
|
|
175
|
+
alignItems='center'
|
|
176
|
+
className={classes.centerContent}
|
|
177
|
+
>
|
|
178
|
+
{centerContent}
|
|
179
|
+
</Container>
|
|
180
|
+
</>
|
|
181
|
+
)}
|
|
182
|
+
|
|
183
|
+
{/* Right part: Action items, User menu, Notifications */}
|
|
171
184
|
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
185
|
+
<div className={classes.right}>
|
|
186
|
+
{actionItems}
|
|
187
|
+
{rightContent}
|
|
188
|
+
</div>
|
|
176
189
|
</div>
|
|
177
|
-
</
|
|
178
|
-
</
|
|
179
|
-
</
|
|
190
|
+
</header>
|
|
191
|
+
</div>
|
|
192
|
+
</PageTopBarContext.Provider>
|
|
180
193
|
)
|
|
181
194
|
})
|
|
182
195
|
|
package/src/PageTopBar/index.ts
CHANGED
|
@@ -3,5 +3,6 @@ import type { OmitInternalProps } from '@toptal/picasso-shared'
|
|
|
3
3
|
import type { Props } from './PageTopBar'
|
|
4
4
|
|
|
5
5
|
export { default as PageTopBar } from './PageTopBar'
|
|
6
|
+
export { PageTopBarContext } from './PageTopBar'
|
|
6
7
|
export type PageTopBarProps = OmitInternalProps<Props>
|
|
7
8
|
export * from './constants'
|
|
@@ -49,6 +49,32 @@ const Example = () => (
|
|
|
49
49
|
}
|
|
50
50
|
/>
|
|
51
51
|
</Container>
|
|
52
|
+
|
|
53
|
+
<Container style={{ position: 'relative', height: '6rem' }}>
|
|
54
|
+
<Page hamburgerId='hamburger-default-example'>
|
|
55
|
+
<Page.TopBar
|
|
56
|
+
variant='light'
|
|
57
|
+
title='Light with menu'
|
|
58
|
+
actionItems={
|
|
59
|
+
<Container right={SPACING_6}>
|
|
60
|
+
<Button variant='primary'>Create job</Button>
|
|
61
|
+
</Container>
|
|
62
|
+
}
|
|
63
|
+
rightContent={
|
|
64
|
+
<Page.TopBarMenu
|
|
65
|
+
name='Jacqueline Roque'
|
|
66
|
+
meta='Developer'
|
|
67
|
+
avatar='./jacqueline-with-flowers-1954-square.jpg'
|
|
68
|
+
>
|
|
69
|
+
<Menu>
|
|
70
|
+
<Menu.Item>My Account</Menu.Item>
|
|
71
|
+
<Menu.Item>Log Out</Menu.Item>
|
|
72
|
+
</Menu>
|
|
73
|
+
</Page.TopBarMenu>
|
|
74
|
+
}
|
|
75
|
+
/>
|
|
76
|
+
</Page>
|
|
77
|
+
</Container>
|
|
52
78
|
</div>
|
|
53
79
|
)
|
|
54
80
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* eslint-disable complexity */
|
|
2
2
|
import type { ReactNode, HTMLAttributes } from 'react'
|
|
3
|
-
import React, { forwardRef } from 'react'
|
|
3
|
+
import React, { useContext, forwardRef } from 'react'
|
|
4
4
|
import cx from 'classnames'
|
|
5
5
|
import type { Theme } from '@material-ui/core/styles'
|
|
6
6
|
import { makeStyles } from '@material-ui/core/styles'
|
|
@@ -12,6 +12,7 @@ import { Typography } from '@toptal/picasso-typography'
|
|
|
12
12
|
import { DropdownCompound as Dropdown } from '@toptal/picasso-dropdown'
|
|
13
13
|
|
|
14
14
|
import styles from './styles'
|
|
15
|
+
import { PageTopBarContext } from '../PageTopBar'
|
|
15
16
|
|
|
16
17
|
const useStyles = makeStyles<Theme>(styles, {
|
|
17
18
|
name: 'PicassoTopBarMenu',
|
|
@@ -42,13 +43,16 @@ export const PageTopBarMenu = forwardRef<HTMLDivElement, Props>(
|
|
|
42
43
|
} = props
|
|
43
44
|
const classes = useStyles()
|
|
44
45
|
|
|
46
|
+
const { variant } = useContext(PageTopBarContext)
|
|
47
|
+
const invert = variant === 'light'
|
|
48
|
+
|
|
45
49
|
const isCompactLayout = useBreakpoint(['xs', 'sm', 'md'])
|
|
46
50
|
|
|
47
51
|
const metaContent =
|
|
48
52
|
typeof meta === 'string' ? (
|
|
49
53
|
<Typography
|
|
50
54
|
className={classes.truncateText}
|
|
51
|
-
invert={!isCompactLayout}
|
|
55
|
+
invert={!isCompactLayout && !invert}
|
|
52
56
|
size='xsmall'
|
|
53
57
|
data-private={dataPrivate}
|
|
54
58
|
>
|
|
@@ -89,7 +93,7 @@ export const PageTopBarMenu = forwardRef<HTMLDivElement, Props>(
|
|
|
89
93
|
/>
|
|
90
94
|
) : (
|
|
91
95
|
<UserBadge
|
|
92
|
-
invert
|
|
96
|
+
invert={!invert}
|
|
93
97
|
center
|
|
94
98
|
size='xxsmall'
|
|
95
99
|
classes={{
|
|
@@ -122,7 +126,9 @@ export const PageTopBarMenu = forwardRef<HTMLDivElement, Props>(
|
|
|
122
126
|
}}
|
|
123
127
|
>
|
|
124
128
|
{trigger}
|
|
125
|
-
<Dropdown.Arrow
|
|
129
|
+
<Dropdown.Arrow
|
|
130
|
+
className={cx(classes.arrow, { [classes.invert]: invert })}
|
|
131
|
+
/>
|
|
126
132
|
</Dropdown>
|
|
127
133
|
)
|
|
128
134
|
}
|
|
@@ -15,11 +15,11 @@ exports[`PageTopBarMenu renders 1`] = `
|
|
|
15
15
|
class="PicassoContainer-centerAlignItems PicassoContainer-flex PicassoUserBadge-root"
|
|
16
16
|
>
|
|
17
17
|
<div
|
|
18
|
-
class="
|
|
18
|
+
class="relative bg-gray text-[1rem] shrink-0 grow-0 w-[2em] h-[2em] [clip-path:polygon(0_0,_100%_0,_100%_100%,_0.5em_100%,_0_calc(100%-0.5em))]"
|
|
19
19
|
>
|
|
20
20
|
<img
|
|
21
21
|
alt="Jacqueline Roque"
|
|
22
|
-
class="PicassoImage-root
|
|
22
|
+
class="PicassoImage-root object-cover w-full h-full absolute left-0 top-0 [image-rendering:-webkit-optimize PicassoUserBadge-avatar"
|
|
23
23
|
src="./jacqueline-with-flowers-1954-square.jpg"
|
|
24
24
|
/>
|
|
25
25
|
</div>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Theme } from '@material-ui/core/styles'
|
|
2
2
|
import { createStyles } from '@material-ui/core/styles'
|
|
3
3
|
|
|
4
|
-
export default ({ screens }: Theme) =>
|
|
4
|
+
export default ({ screens, palette }: Theme) =>
|
|
5
5
|
createStyles({
|
|
6
6
|
avatar: {
|
|
7
7
|
fontSize: '0.9rem',
|
|
@@ -38,6 +38,9 @@ export default ({ screens }: Theme) =>
|
|
|
38
38
|
marginLeft: '0.5rem',
|
|
39
39
|
},
|
|
40
40
|
},
|
|
41
|
+
invert: {
|
|
42
|
+
color: palette.text.primary,
|
|
43
|
+
},
|
|
41
44
|
paper: {
|
|
42
45
|
[screens('xs', 'sm', 'md')]: {
|
|
43
46
|
top: '2.5em !important',
|