@toptal/picasso 28.10.2-alpha-fix-root-container-order-e4aa2912.0 → 28.11.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/Page/Page.d.ts +1 -0
- package/Page/Page.js +4 -2
- package/Page/Page.js.map +1 -1
- package/PageCompound/index.d.ts +4 -1
- package/PageCompound/index.js +1 -1
- package/PageCompound/index.js.map +1 -1
- package/PageHamburger/PageHamburger.d.ts +5 -0
- package/PageHamburger/PageHamburger.js +33 -0
- package/PageHamburger/PageHamburger.js.map +1 -0
- package/PageHamburger/PageHamburgerContext.d.ts +13 -0
- package/PageHamburger/PageHamburgerContext.js +17 -0
- package/PageHamburger/PageHamburgerContext.js.map +1 -0
- package/PageHamburger/PageHamburgerPortal.d.ts +6 -0
- package/PageHamburger/PageHamburgerPortal.js +11 -0
- package/PageHamburger/PageHamburgerPortal.js.map +1 -0
- package/PageHamburger/hooks/use-portal-to-hamburger.d.ts +8 -0
- package/PageHamburger/hooks/use-portal-to-hamburger.js +16 -0
- package/PageHamburger/hooks/use-portal-to-hamburger.js.map +1 -0
- package/PageHamburger/index.d.ts +4 -0
- package/PageHamburger/index.js +5 -0
- package/PageHamburger/index.js.map +1 -0
- package/PageHamburger/styles.d.ts +3 -0
- package/PageHamburger/styles.js +35 -0
- package/PageHamburger/styles.js.map +1 -0
- package/PageSidebar/PageSidebar.d.ts +1 -4
- package/PageSidebar/PageSidebar.js +4 -18
- package/PageSidebar/PageSidebar.js.map +1 -1
- package/PageSidebar/styles.d.ts +1 -1
- package/PageSidebar/styles.js +1 -21
- package/PageSidebar/styles.js.map +1 -1
- package/PageTopBar/PageTopBar.d.ts +3 -1
- package/PageTopBar/PageTopBar.js +8 -3
- package/PageTopBar/PageTopBar.js.map +1 -1
- package/PageTopBar/styles.d.ts +1 -1
- package/PageTopBar/styles.js +3 -0
- package/PageTopBar/styles.js.map +1 -1
- package/PageTopBarCompound/index.d.ts +4 -0
- package/PageTopBarCompound/index.js +8 -0
- package/PageTopBarCompound/index.js.map +1 -0
- package/TopBarItem/TopBarItem.d.ts +17 -0
- package/TopBarItem/TopBarItem.js +37 -0
- package/TopBarItem/TopBarItem.js.map +1 -0
- package/TopBarItem/index.d.ts +1 -0
- package/TopBarItem/index.js +2 -0
- package/TopBarItem/index.js.map +1 -0
- package/TopBarItem/styles.d.ts +3 -0
- package/TopBarItem/styles.js +32 -0
- package/TopBarItem/styles.js.map +1 -0
- package/TopBarMenu/TopBarMenu.d.ts +8 -0
- package/TopBarMenu/TopBarMenu.js +28 -0
- package/TopBarMenu/TopBarMenu.js.map +1 -0
- package/TopBarMenu/index.d.ts +2 -0
- package/TopBarMenu/index.js +2 -0
- package/TopBarMenu/index.js.map +1 -0
- package/TopBarMenu/styles.d.ts +3 -0
- package/TopBarMenu/styles.js +10 -0
- package/TopBarMenu/styles.js.map +1 -0
- package/package.json +4 -5
package/Page/Page.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export interface Props extends BaseProps, HTMLAttributes<HTMLDivElement> {
|
|
|
10
10
|
centered?: boolean;
|
|
11
11
|
/** Children components (`Page.TopBar`, `Page.Content`, `Page.Footer`) */
|
|
12
12
|
children: ReactNode;
|
|
13
|
+
hamburgerId?: string;
|
|
13
14
|
}
|
|
14
15
|
export declare const PageContext: React.Context<PageContextProps>;
|
|
15
16
|
export declare const Page: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLDivElement>>;
|
package/Page/Page.js
CHANGED
|
@@ -12,6 +12,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
12
12
|
import React, { forwardRef } from 'react';
|
|
13
13
|
import { makeStyles } from '@material-ui/core/styles';
|
|
14
14
|
import cx from 'classnames';
|
|
15
|
+
import { PageHamburgerContextProvider } from '../PageHamburger';
|
|
15
16
|
import styles from './styles';
|
|
16
17
|
export const PageContext = React.createContext({});
|
|
17
18
|
const useStyles = makeStyles(styles, {
|
|
@@ -19,10 +20,11 @@ const useStyles = makeStyles(styles, {
|
|
|
19
20
|
});
|
|
20
21
|
// eslint-disable-next-line react/display-name
|
|
21
22
|
export const Page = forwardRef(function Page(props, ref) {
|
|
22
|
-
const { children, className, style, width, fullWidth } = props, rest = __rest(props, ["children", "className", "style", "width", "fullWidth"]);
|
|
23
|
+
const { children, className, hamburgerId = 'hamburger', style, width, fullWidth } = props, rest = __rest(props, ["children", "className", "hamburgerId", "style", "width", "fullWidth"]);
|
|
23
24
|
const classes = useStyles();
|
|
24
25
|
return (React.createElement("div", Object.assign({}, rest, { ref: ref, className: cx(classes.root, className), style: style }),
|
|
25
|
-
React.createElement(PageContext.Provider, { value: { width, fullWidth } },
|
|
26
|
+
React.createElement(PageContext.Provider, { value: { width, fullWidth } },
|
|
27
|
+
React.createElement(PageHamburgerContextProvider, { hamburgerId: hamburgerId }, children))));
|
|
26
28
|
});
|
|
27
29
|
Page.displayName = 'Page';
|
|
28
30
|
export default Page;
|
package/Page/Page.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Page.js","sourceRoot":"","sources":["../../src/Page/Page.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAA6B,MAAM,OAAO,CAAA;AACpE,OAAO,EAAE,UAAU,EAAS,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"Page.js","sourceRoot":"","sources":["../../src/Page/Page.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAA6B,MAAM,OAAO,CAAA;AACpE,OAAO,EAAE,UAAU,EAAS,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,MAAM,YAAY,CAAA;AAG3B,OAAO,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAA;AAE/D,OAAO,MAAM,MAAM,UAAU,CAAA;AAc7B,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC,aAAa,CAAmB,EAAE,CAAC,CAAA;AAEpE,MAAM,SAAS,GAAG,UAAU,CAAQ,MAAM,EAAE;IAC1C,IAAI,EAAE,MAAM;CACb,CAAC,CAAA;AAEF,8CAA8C;AAC9C,MAAM,CAAC,MAAM,IAAI,GAAG,UAAU,CAAwB,SAAS,IAAI,CACjE,KAAK,EACL,GAAG;IAEH,MAAM,EACJ,QAAQ,EACR,SAAS,EACT,WAAW,GAAG,WAAW,EACzB,KAAK,EACL,KAAK,EACL,SAAS,KAEP,KAAK,EADJ,IAAI,UACL,KAAK,EARH,uEAQL,CAAQ,CAAA;IACT,MAAM,OAAO,GAAG,SAAS,EAAE,CAAA;IAE3B,OAAO,CACL,6CACM,IAAI,IACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,EACtC,KAAK,EAAE,KAAK;QAEZ,oBAAC,WAAW,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;YAC/C,oBAAC,4BAA4B,IAAC,WAAW,EAAE,WAAW,IACnD,QAAQ,CACoB,CACV,CACnB,CACP,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,WAAW,GAAG,MAAM,CAAA;AAEzB,eAAe,IAAI,CAAA"}
|
package/PageCompound/index.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
export declare const PageCompound: import("react").ForwardRefExoticComponent<import("../Page/Page").Props & import("react").RefAttributes<HTMLDivElement>> & {
|
|
2
|
-
TopBar: import("react").ForwardRefExoticComponent<import("../PageTopBar/PageTopBar").Props & import("react").RefAttributes<HTMLElement
|
|
2
|
+
TopBar: import("react").ForwardRefExoticComponent<import("../PageTopBar/PageTopBar").Props & import("react").RefAttributes<HTMLElement>> & {
|
|
3
|
+
Menu: import("react").ForwardRefExoticComponent<import("../TopBarMenu").TopBarMenuProps & import("react").RefAttributes<HTMLUListElement>>;
|
|
4
|
+
Item: import("@toptal/picasso-shared/src").OverridableComponent<import("../TopBarItem/TopBarItem").Props>;
|
|
5
|
+
};
|
|
3
6
|
TopBarMenu: import("react").ForwardRefExoticComponent<import("../PageTopBarMenu/PageTopBarMenu").Props & import("react").RefAttributes<HTMLDivElement>>;
|
|
4
7
|
Content: import("react").ForwardRefExoticComponent<import("../PageContent/PageContent").Props & import("react").RefAttributes<HTMLDivElement>>;
|
|
5
8
|
Footer: import("react").ForwardRefExoticComponent<import("../PageFooter/PageFooter").Props & import("react").RefAttributes<HTMLElement>>;
|
package/PageCompound/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import Page from '../Page';
|
|
2
2
|
import PageHelmet from '../PageHelmet';
|
|
3
|
-
import PageTopBar from '../
|
|
3
|
+
import { PageTopBarCompound as PageTopBar } from '../PageTopBarCompound';
|
|
4
4
|
import PageTopBarMenu from '../PageTopBarMenu';
|
|
5
5
|
import PageFooter from '../PageFooter';
|
|
6
6
|
import PageContent from '../PageContent';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/PageCompound/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,SAAS,CAAA;AAC1B,OAAO,UAAU,MAAM,eAAe,CAAA;AACtC,OAAO,UAAU,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/PageCompound/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,SAAS,CAAA;AAC1B,OAAO,UAAU,MAAM,eAAe,CAAA;AACtC,OAAO,EAAE,kBAAkB,IAAI,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACxE,OAAO,cAAc,MAAM,mBAAmB,CAAA;AAC9C,OAAO,UAAU,MAAM,eAAe,CAAA;AACtC,OAAO,WAAW,MAAM,gBAAgB,CAAA;AACxC,OAAO,UAAU,MAAM,eAAe,CAAA;AACtC,OAAO,gBAAgB,MAAM,qBAAqB,CAAA;AAClD,OAAO,WAAW,MAAM,gBAAgB,CAAA;AACxC,OAAO,WAAW,MAAM,gBAAgB,CAAA;AAExC,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;IAC9C,MAAM,EAAE,UAAU;IAClB,UAAU,EAAE,cAAc;IAC1B,OAAO,EAAE,WAAW;IACpB,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,WAAW;IACpB,MAAM,EAAE,UAAU;IAClB,MAAM,EAAE,UAAU;IAClB,YAAY,EAAE,gBAAgB;IAC9B,OAAO,EAAE,WAAW;CACrB,CAAC,CAAA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import { makeStyles } from '@material-ui/core/styles';
|
|
3
|
+
import cx from 'classnames';
|
|
4
|
+
import ButtonCircular from '../ButtonCircular';
|
|
5
|
+
import { useHamburgerContext } from './PageHamburgerContext';
|
|
6
|
+
import Dropdown from '../Dropdown';
|
|
7
|
+
import { Close16, Overview16 } from '../Icon';
|
|
8
|
+
import { useBreakpoint } from '../utils';
|
|
9
|
+
import styles from './styles';
|
|
10
|
+
const useStyles = makeStyles(styles, {
|
|
11
|
+
name: 'PageHamburger',
|
|
12
|
+
});
|
|
13
|
+
const PageHamburger = ({ id }) => {
|
|
14
|
+
const { isHamburgerVisible } = useHamburgerContext();
|
|
15
|
+
const [showContent, setShowContent] = useState(false);
|
|
16
|
+
const classes = useStyles();
|
|
17
|
+
const isCompactLayout = useBreakpoint(['small', 'medium']);
|
|
18
|
+
const handleShowContent = () => setShowContent(true);
|
|
19
|
+
const handleHideContent = () => setShowContent(false);
|
|
20
|
+
return (React.createElement(Dropdown, { content: React.createElement("div", { id: id }), className: cx(classes.responsiveWrapper, {
|
|
21
|
+
[classes.hidden]: !isCompactLayout || !isHamburgerVisible,
|
|
22
|
+
}), classes: { content: classes.responsiveWrapperContent }, offset: { top: 0.4 }, popperOptions: {
|
|
23
|
+
modifiers: {
|
|
24
|
+
flip: { enabled: false },
|
|
25
|
+
preventOverflow: {
|
|
26
|
+
padding: 0,
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
}, onOpen: handleShowContent, onClose: handleHideContent, keepMounted: true },
|
|
30
|
+
React.createElement(ButtonCircular, { icon: showContent ? (React.createElement(Close16, null)) : (React.createElement(Overview16, { className: classes.hamburger })), variant: 'transparent' })));
|
|
31
|
+
};
|
|
32
|
+
export default PageHamburger;
|
|
33
|
+
//# sourceMappingURL=PageHamburger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PageHamburger.js","sourceRoot":"","sources":["../../src/PageHamburger/PageHamburger.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,UAAU,EAAS,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3B,OAAO,cAAc,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,QAAQ,MAAM,aAAa,CAAA;AAClC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,MAAM,MAAM,UAAU,CAAA;AAM7B,MAAM,SAAS,GAAG,UAAU,CAAQ,MAAM,EAAE;IAC1C,IAAI,EAAE,eAAe;CACtB,CAAC,CAAA;AAEF,MAAM,aAAa,GAAG,CAAC,EAAE,EAAE,EAAS,EAAE,EAAE;IACtC,MAAM,EAAE,kBAAkB,EAAE,GAAG,mBAAmB,EAAE,CAAA;IACpD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAA;IAC9D,MAAM,OAAO,GAAG,SAAS,EAAE,CAAA;IAC3B,MAAM,eAAe,GAAG,aAAa,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAA;IAE1D,MAAM,iBAAiB,GAAG,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;IACpD,MAAM,iBAAiB,GAAG,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;IAErD,OAAO,CACL,oBAAC,QAAQ,IACP,OAAO,EAAE,6BAAK,EAAE,EAAE,EAAE,GAAI,EACxB,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,iBAAiB,EAAE;YACvC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,eAAe,IAAI,CAAC,kBAAkB;SAC1D,CAAC,EACF,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,wBAAwB,EAAE,EACtD,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EACpB,aAAa,EAAE;YACb,SAAS,EAAE;gBACT,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;gBACxB,eAAe,EAAE;oBACf,OAAO,EAAE,CAAC;iBACX;aACF;SACF,EACD,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,iBAAiB,EAC1B,WAAW;QAEX,oBAAC,cAAc,IACb,IAAI,EACF,WAAW,CAAC,CAAC,CAAC,CACZ,oBAAC,OAAO,OAAG,CACZ,CAAC,CAAC,CAAC,CACF,oBAAC,UAAU,IAAC,SAAS,EAAE,OAAO,CAAC,SAAS,GAAI,CAC7C,EAEH,OAAO,EAAC,aAAa,GACrB,CACO,CACZ,CAAA;AACH,CAAC,CAAA;AAED,eAAe,aAAa,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface HamburgerContextProps {
|
|
3
|
+
hamburgerId: string;
|
|
4
|
+
isHamburgerVisible: boolean;
|
|
5
|
+
setIsHamburgerVisible: (showHamburger: boolean) => void;
|
|
6
|
+
}
|
|
7
|
+
interface Props {
|
|
8
|
+
children: ReactNode;
|
|
9
|
+
hamburgerId: string;
|
|
10
|
+
}
|
|
11
|
+
export declare const PageHamburgerContextProvider: ({ children, hamburgerId, }: Props) => JSX.Element;
|
|
12
|
+
export declare const useHamburgerContext: () => HamburgerContextProps;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React, { createContext, useContext, useState } from 'react';
|
|
2
|
+
const PageHamburgerContext = createContext({
|
|
3
|
+
hamburgerId: 'hamburger',
|
|
4
|
+
isHamburgerVisible: false,
|
|
5
|
+
setIsHamburgerVisible: () => { },
|
|
6
|
+
});
|
|
7
|
+
export const PageHamburgerContextProvider = ({ children, hamburgerId, }) => {
|
|
8
|
+
const [isHamburgerVisible, setIsHamburgerVisible] = useState(false);
|
|
9
|
+
const context = {
|
|
10
|
+
hamburgerId,
|
|
11
|
+
isHamburgerVisible,
|
|
12
|
+
setIsHamburgerVisible,
|
|
13
|
+
};
|
|
14
|
+
return (React.createElement(PageHamburgerContext.Provider, { value: context }, children));
|
|
15
|
+
};
|
|
16
|
+
export const useHamburgerContext = () => useContext(PageHamburgerContext);
|
|
17
|
+
//# sourceMappingURL=PageHamburgerContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PageHamburgerContext.js","sourceRoot":"","sources":["../../src/PageHamburger/PageHamburgerContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAa,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAQ7E,MAAM,oBAAoB,GAAG,aAAa,CAAwB;IAChE,WAAW,EAAE,WAAW;IACxB,kBAAkB,EAAE,KAAK;IACzB,qBAAqB,EAAE,GAAG,EAAE,GAAE,CAAC;CAChC,CAAC,CAAA;AAOF,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,EAC3C,QAAQ,EACR,WAAW,GACL,EAAE,EAAE;IACV,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAA;IAE5E,MAAM,OAAO,GAAG;QACd,WAAW;QACX,kBAAkB;QAClB,qBAAqB;KACtB,CAAA;IAED,OAAO,CACL,oBAAC,oBAAoB,CAAC,QAAQ,IAAC,KAAK,EAAE,OAAO,IAC1C,QAAQ,CACqB,CACjC,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE,CACtC,UAAU,CAAwB,oBAAoB,CAAC,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React, { useCallback } from 'react';
|
|
2
|
+
import Portal from '@material-ui/core/Portal';
|
|
3
|
+
import { getElementById } from '@toptal/picasso-shared';
|
|
4
|
+
import { useHamburgerContext } from './PageHamburgerContext';
|
|
5
|
+
const PageHamburgerPortal = ({ children }) => {
|
|
6
|
+
const { hamburgerId } = useHamburgerContext();
|
|
7
|
+
const container = useCallback(() => getElementById(hamburgerId), [hamburgerId]);
|
|
8
|
+
return React.createElement(Portal, { container: container }, children);
|
|
9
|
+
};
|
|
10
|
+
export default PageHamburgerPortal;
|
|
11
|
+
//# sourceMappingURL=PageHamburgerPortal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PageHamburgerPortal.js","sourceRoot":"","sources":["../../src/PageHamburger/PageHamburgerPortal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,MAAM,MAAM,0BAA0B,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAM5D,MAAM,mBAAmB,GAAG,CAAC,EAAE,QAAQ,EAAS,EAAE,EAAE;IAClD,MAAM,EAAE,WAAW,EAAE,GAAG,mBAAmB,EAAE,CAAA;IAE7C,MAAM,SAAS,GAAG,WAAW,CAC3B,GAAG,EAAE,CAAC,cAAc,CAAC,WAAW,CAAC,EACjC,CAAC,WAAW,CAAC,CACd,CAAA;IAED,OAAO,oBAAC,MAAM,IAAC,SAAS,EAAE,SAAS,IAAG,QAAQ,CAAU,CAAA;AAC1D,CAAC,CAAA;AAED,eAAe,mBAAmB,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This hook is for components whose content should be rendered inside
|
|
3
|
+
* hamburger menu.
|
|
4
|
+
* Should be used in conjunction with PageHamburgerPortal component.
|
|
5
|
+
* It sets hamburger menu to be visible in compact screens.
|
|
6
|
+
*/
|
|
7
|
+
declare const usePortalToHamburger: () => void;
|
|
8
|
+
export default usePortalToHamburger;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
import { useHamburgerContext } from '../PageHamburgerContext';
|
|
3
|
+
/**
|
|
4
|
+
* This hook is for components whose content should be rendered inside
|
|
5
|
+
* hamburger menu.
|
|
6
|
+
* Should be used in conjunction with PageHamburgerPortal component.
|
|
7
|
+
* It sets hamburger menu to be visible in compact screens.
|
|
8
|
+
*/
|
|
9
|
+
const usePortalToHamburger = () => {
|
|
10
|
+
const { setIsHamburgerVisible } = useHamburgerContext();
|
|
11
|
+
useEffect(() => {
|
|
12
|
+
setIsHamburgerVisible(true);
|
|
13
|
+
}, []);
|
|
14
|
+
};
|
|
15
|
+
export default usePortalToHamburger;
|
|
16
|
+
//# sourceMappingURL=use-portal-to-hamburger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-portal-to-hamburger.js","sourceRoot":"","sources":["../../../src/PageHamburger/hooks/use-portal-to-hamburger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAE7D;;;;;GAKG;AACH,MAAM,oBAAoB,GAAG,GAAG,EAAE;IAChC,MAAM,EAAE,qBAAqB,EAAE,GAAG,mBAAmB,EAAE,CAAA;IAEvD,SAAS,CAAC,GAAG,EAAE;QACb,qBAAqB,CAAC,IAAI,CAAC,CAAA;IAC7B,CAAC,EAAE,EAAE,CAAC,CAAA;AACR,CAAC,CAAA;AAED,eAAe,oBAAoB,CAAA"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { default } from './PageHamburger';
|
|
2
|
+
export { default as PageHamburgerPortal } from './PageHamburgerPortal';
|
|
3
|
+
export { useHamburgerContext, PageHamburgerContextProvider, } from './PageHamburgerContext';
|
|
4
|
+
export { default as usePortalToHamburger } from './hooks/use-portal-to-hamburger';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { default } from './PageHamburger';
|
|
2
|
+
export { default as PageHamburgerPortal } from './PageHamburgerPortal';
|
|
3
|
+
export { useHamburgerContext, PageHamburgerContextProvider, } from './PageHamburgerContext';
|
|
4
|
+
export { default as usePortalToHamburger } from './hooks/use-portal-to-hamburger';
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/PageHamburger/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AACtE,OAAO,EACL,mBAAmB,EACnB,4BAA4B,GAC7B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,iCAAiC,CAAA"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { createStyles } from '@material-ui/core/styles';
|
|
2
|
+
export default ({ palette, screens, zIndex }) => {
|
|
3
|
+
const wrapperBoxShadow = `inset -1px 0px 0px 0px ${palette.grey.lighter2}`;
|
|
4
|
+
return createStyles({
|
|
5
|
+
hamburger: {
|
|
6
|
+
pointerEvents: 'none',
|
|
7
|
+
},
|
|
8
|
+
hidden: {
|
|
9
|
+
display: 'none',
|
|
10
|
+
},
|
|
11
|
+
responsiveWrapper: {
|
|
12
|
+
position: 'fixed',
|
|
13
|
+
top: '0.75rem',
|
|
14
|
+
left: '0.75rem',
|
|
15
|
+
zIndex: zIndex.appBar,
|
|
16
|
+
},
|
|
17
|
+
responsiveWrapperContent: {
|
|
18
|
+
backgroundColor: palette.grey.lighter,
|
|
19
|
+
boxShadow: wrapperBoxShadow,
|
|
20
|
+
maxHeight: 'calc(100vh - 4.5rem)',
|
|
21
|
+
[screens('small', 'medium')]: {
|
|
22
|
+
maxHeight: 'calc(100vh - 3rem)', // viewport minus header height
|
|
23
|
+
},
|
|
24
|
+
// height under which maxHeight menu starts to overflow
|
|
25
|
+
// and needs to reduce height dynamically to avoid overflow
|
|
26
|
+
'@media screen and (max-height: 585px)': {
|
|
27
|
+
maxHeight: 'calc(100vh - 4.5rem)',
|
|
28
|
+
[screens('small', 'medium')]: {
|
|
29
|
+
maxHeight: 'calc(100vh - 3rem)', // viewport minus header height
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/PageHamburger/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAE9D,eAAe,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAS,EAAE,EAAE;IACrD,MAAM,gBAAgB,GAAG,0BAA0B,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAA;IAE1E,OAAO,YAAY,CAAC;QAClB,SAAS,EAAE;YACT,aAAa,EAAE,MAAM;SACtB;QACD,MAAM,EAAE;YACN,OAAO,EAAE,MAAM;SAChB;QACD,iBAAiB,EAAE;YACjB,QAAQ,EAAE,OAAO;YACjB,GAAG,EAAE,SAAS;YACd,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB;QACD,wBAAwB,EAAE;YACxB,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO;YACrC,SAAS,EAAE,gBAAgB;YAC3B,SAAS,EAAE,sBAAsB;YAEjC,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE;gBAC5B,SAAS,EAAE,oBAAoB,EAAE,+BAA+B;aACjE;YAED,uDAAuD;YACvD,2DAA2D;YAC3D,uCAAuC,EAAE;gBACvC,SAAS,EAAE,sBAAsB;gBAEjC,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE;oBAC5B,SAAS,EAAE,oBAAoB,EAAE,+BAA+B;iBACjE;aACF;SACF;KACF,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
import { BaseProps
|
|
1
|
+
import { BaseProps } from '@toptal/picasso-shared';
|
|
2
2
|
import React, { ReactNode } from 'react';
|
|
3
3
|
import { VariantType } from './types';
|
|
4
|
-
export interface SmallScreenSidebarWrapperProps extends StandardProps {
|
|
5
|
-
children?: ReactNode;
|
|
6
|
-
}
|
|
7
4
|
export interface Props extends BaseProps {
|
|
8
5
|
/** Style variant of Sidebar and subcomponents */
|
|
9
6
|
variant?: VariantType;
|
|
@@ -4,29 +4,14 @@ import cx from 'classnames';
|
|
|
4
4
|
import React, { forwardRef, useCallback, useEffect, useState, } from 'react';
|
|
5
5
|
import ButtonCircular from '../ButtonCircular';
|
|
6
6
|
import Container from '../Container';
|
|
7
|
-
import
|
|
8
|
-
import {
|
|
7
|
+
import { BackMinor16, ChevronRight16 } from '../Icon';
|
|
8
|
+
import { PageHamburgerPortal, usePortalToHamburger } from '../PageHamburger';
|
|
9
9
|
import SidebarItem from '../SidebarItem';
|
|
10
10
|
import SidebarLogo from '../SidebarLogo';
|
|
11
11
|
import SidebarMenu from '../SidebarMenu';
|
|
12
12
|
import { noop, useBreakpoint } from '../utils';
|
|
13
13
|
import { SidebarContextProvider } from './SidebarContextProvider';
|
|
14
14
|
import styles from './styles';
|
|
15
|
-
const SmallScreenSidebarWrapper = ({ classes, children, }) => {
|
|
16
|
-
var _a;
|
|
17
|
-
const [showSidebar, setShowSidebar] = useState(false);
|
|
18
|
-
const handleShowSidebar = () => setShowSidebar(true);
|
|
19
|
-
const handleHideSidebar = () => setShowSidebar(false);
|
|
20
|
-
return (React.createElement(Dropdown, { content: children, className: classes === null || classes === void 0 ? void 0 : classes.responsiveWrapper, classes: { content: (_a = classes === null || classes === void 0 ? void 0 : classes.responsiveWrapperContent) !== null && _a !== void 0 ? _a : '' }, offset: { top: 0.4 }, popperOptions: {
|
|
21
|
-
modifiers: {
|
|
22
|
-
flip: { enabled: false },
|
|
23
|
-
preventOverflow: {
|
|
24
|
-
padding: 0,
|
|
25
|
-
},
|
|
26
|
-
},
|
|
27
|
-
}, onOpen: handleShowSidebar, onClose: handleHideSidebar },
|
|
28
|
-
React.createElement(ButtonCircular, { icon: showSidebar ? React.createElement(Close16, null) : React.createElement(Overview16, null), variant: 'transparent' })));
|
|
29
|
-
};
|
|
30
15
|
const useStyles = makeStyles(styles, {
|
|
31
16
|
name: 'PageSidebar',
|
|
32
17
|
});
|
|
@@ -49,6 +34,7 @@ export const PageSidebar = forwardRef(function Sidebar(props, ref) {
|
|
|
49
34
|
setHasSidebar(false);
|
|
50
35
|
};
|
|
51
36
|
}, [setHasSidebar]);
|
|
37
|
+
usePortalToHamburger();
|
|
52
38
|
const isCompactLayout = useBreakpoint(['small', 'medium']);
|
|
53
39
|
const handleCollapseButtonClick = useCallback(() => {
|
|
54
40
|
setIsCollapsed(previousState => !previousState);
|
|
@@ -61,7 +47,7 @@ export const PageSidebar = forwardRef(function Sidebar(props, ref) {
|
|
|
61
47
|
[classes.buttonVisible]: isHovered,
|
|
62
48
|
}), onClick: handleCollapseButtonClick, icon: isCollapsed ? React.createElement(ChevronRight16, null) : React.createElement(BackMinor16, null), "aria-label": 'collapse sidebar', variant: 'primary', "data-testid": testIds === null || testIds === void 0 ? void 0 : testIds.collapseButton })),
|
|
63
49
|
React.createElement(SidebarContextProvider, { isCollapsed: isCollapsed, isHovered: isHovered, variant: variant, expandedItemKey: expandedItemKey, setExpandedItemKey: setExpandedItemKey }, children)));
|
|
64
|
-
return isCompactLayout ? (React.createElement(
|
|
50
|
+
return isCompactLayout ? (React.createElement(PageHamburgerPortal, null, children)) : (sidebar);
|
|
65
51
|
});
|
|
66
52
|
PageSidebar.defaultProps = {
|
|
67
53
|
variant: 'light',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageSidebar.js","sourceRoot":"","sources":["../../src/PageSidebar/PageSidebar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAS,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,KAAK,EAAE,EACZ,UAAU,EAEV,WAAW,EACX,SAAS,EACT,QAAQ,GACT,MAAM,OAAO,CAAA;AAEd,OAAO,cAAc,MAAM,mBAAmB,CAAA;AAC9C,OAAO,SAAS,MAAM,cAAc,CAAA;AACpC,OAAO,
|
|
1
|
+
{"version":3,"file":"PageSidebar.js","sourceRoot":"","sources":["../../src/PageSidebar/PageSidebar.tsx"],"names":[],"mappings":"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"}
|
package/PageSidebar/styles.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { Theme } from '@material-ui/core/styles';
|
|
2
|
-
declare const _default: ({ palette, screens,
|
|
2
|
+
declare const _default: ({ palette, screens, transitions }: Theme) => import("@material-ui/styles").StyleRules<{}, "dark" | "light" | "root" | "spacer" | "collapseButton" | "buttonVisible" | "rootCollapsed">;
|
|
3
3
|
export default _default;
|
package/PageSidebar/styles.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createStyles } from '@material-ui/core/styles';
|
|
2
2
|
// decided to use a custom shadow for the sidebar's collapse button
|
|
3
3
|
const COLLAPSE_BUTTON_SHADOW = '0 0 0 1px rgba(0, 0, 0, 0.04), 0 0 8px 0 rgba(0, 0, 0, 0.16)';
|
|
4
|
-
export default ({ palette, screens,
|
|
4
|
+
export default ({ palette, screens, transitions }) => createStyles({
|
|
5
5
|
root: {
|
|
6
6
|
height: '100%',
|
|
7
7
|
width: '14.75rem',
|
|
@@ -23,26 +23,6 @@ export default ({ palette, screens, zIndex, transitions }) => createStyles({
|
|
|
23
23
|
height: '100%',
|
|
24
24
|
},
|
|
25
25
|
},
|
|
26
|
-
responsiveWrapper: {
|
|
27
|
-
position: 'fixed',
|
|
28
|
-
top: '0.75em',
|
|
29
|
-
left: '0.75em',
|
|
30
|
-
zIndex: zIndex.appBar,
|
|
31
|
-
},
|
|
32
|
-
responsiveWrapperContent: {
|
|
33
|
-
maxHeight: 'calc(100vh - 4.5rem)',
|
|
34
|
-
[screens('small', 'medium')]: {
|
|
35
|
-
maxHeight: 'calc(100vh - 3rem)', // viewport minus header height
|
|
36
|
-
},
|
|
37
|
-
// height under which maxHeight menu starts to overflow
|
|
38
|
-
// and needs to reduce height dynamically to avoid overflow
|
|
39
|
-
'@media screen and (max-height: 585px)': {
|
|
40
|
-
maxHeight: 'calc(100vh - 4.5rem)',
|
|
41
|
-
[screens('small', 'medium')]: {
|
|
42
|
-
maxHeight: 'calc(100vh - 3rem)', // viewport minus header height
|
|
43
|
-
},
|
|
44
|
-
},
|
|
45
|
-
},
|
|
46
26
|
spacer: {
|
|
47
27
|
order: 50,
|
|
48
28
|
flex: 1,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/PageSidebar/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAE9D,mEAAmE;AACnE,MAAM,sBAAsB,GAC1B,8DAA8D,CAAA;AAEhE,eAAe,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/PageSidebar/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAE9D,mEAAmE;AACnE,MAAM,sBAAsB,GAC1B,8DAA8D,CAAA;AAEhE,eAAe,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAS,EAAE,EAAE,CAC1D,YAAY,CAAC;IACX,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,UAAU;QACjB,SAAS,EAAE,0BAA0B,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE;QAC1D,OAAO,EAAE,eAAe;QACxB,QAAQ,EAAE,MAAM;QAChB,QAAQ,EAAE,UAAU;QACpB,UAAU,EAAE,SAAS,WAAW,CAAC,QAAQ,CAAC,cAAc,gBAAgB;QAExE,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE;YAC5B,KAAK,EAAE,OAAO;YACd,SAAS,EAAE,QAAQ;SACpB;QAED,WAAW,EAAE;YACX,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,CAAC;YACP,GAAG,EAAE,CAAC;YACN,KAAK,EAAE,UAAU;YACjB,MAAM,EAAE,MAAM;SACf;KACF;IACD,MAAM,EAAE;QACN,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,CAAC;QACP,MAAM,EAAE,MAAM;KACf;IACD,KAAK,EAAE;QACL,SAAS,EAAE,0BAA0B,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE;QAC5D,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO;KACtC;IACD,IAAI,EAAE;QACJ,SAAS,EAAE,0BAA0B,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE;QAC1D,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM;KACrC;IACD,cAAc,EAAE;QACd,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,UAAU;QACjB,GAAG,EAAE,SAAS;QACd,UAAU,EAAE,QAAQ;QACpB,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI;QACxB,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK;QACrC,YAAY,EAAE,KAAK;QACnB,SAAS,EAAE,sBAAsB;QACjC,MAAM,EAAE,GAAG;QAEX,SAAS,EAAE;YACT,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK;YAC3B,eAAe,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI;SACtC;KACF;IACD,aAAa,EAAE;QACb,UAAU,EAAE,SAAS;KACtB;IACD,aAAa,EAAE;QACb,KAAK,EAAE,MAAM;QACb,UAAU,EAAE,SAAS,WAAW,CAAC,QAAQ,CAAC,aAAa,gBAAgB;QAEvE,WAAW,EAAE;YACX,KAAK,EAAE,SAAS;SACjB;KACF;CACF,CAAC,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React, { ReactNode, ReactElement, HTMLAttributes } from 'react';
|
|
2
2
|
import { BaseProps } from '@toptal/picasso-shared';
|
|
3
|
-
declare type VariantType = 'dark' | 'light';
|
|
3
|
+
declare type VariantType = 'dark' | 'light' | 'grey';
|
|
4
4
|
export interface Props extends BaseProps, HTMLAttributes<HTMLElement> {
|
|
5
5
|
/** Title which is displayed along the `Logo` */
|
|
6
6
|
title?: string;
|
|
@@ -8,6 +8,8 @@ export interface Props extends BaseProps, HTMLAttributes<HTMLElement> {
|
|
|
8
8
|
logoLink?: ReactElement;
|
|
9
9
|
/** Logo to display */
|
|
10
10
|
logo?: ReactNode;
|
|
11
|
+
/** Content for the center of the `Header` */
|
|
12
|
+
centerContent?: ReactNode;
|
|
11
13
|
/** Content for the left side of the `Header` */
|
|
12
14
|
leftContent?: ReactNode;
|
|
13
15
|
/** Content for the right side of the `Header` */
|
package/PageTopBar/PageTopBar.js
CHANGED
|
@@ -16,6 +16,7 @@ import { usePageTopBar } from '@toptal/picasso-provider';
|
|
|
16
16
|
import { makeStyles } from '@material-ui/core/styles';
|
|
17
17
|
import Logo from '../Logo';
|
|
18
18
|
import Container from '../Container';
|
|
19
|
+
import PageHamburger, { PageHamburgerPortal, useHamburgerContext, } from '../PageHamburger';
|
|
19
20
|
import Typography from '../Typography';
|
|
20
21
|
import { PageContext } from '../Page';
|
|
21
22
|
import { useBreakpoint, useIsomorphicLayoutEffect } from '../utils';
|
|
@@ -24,7 +25,7 @@ const useStyles = makeStyles(styles, {
|
|
|
24
25
|
name: 'PicassoTopBar',
|
|
25
26
|
});
|
|
26
27
|
export const PageTopBar = forwardRef(function PageTopBar(props, ref) {
|
|
27
|
-
const { className, style, title, logoLink, logo, leftContent, rightContent, actionItems, variant = 'dark' } = props, rest = __rest(props, ["className", "style", "title", "logoLink", "logo", "leftContent", "rightContent", "actionItems", "variant"]);
|
|
28
|
+
const { className, style, title, logoLink, logo, centerContent, leftContent, rightContent, actionItems, variant = 'dark' } = props, rest = __rest(props, ["className", "style", "title", "logoLink", "logo", "centerContent", "leftContent", "rightContent", "actionItems", "variant"]);
|
|
28
29
|
const classes = useStyles();
|
|
29
30
|
const isCompactLayout = useBreakpoint(['small', 'medium']);
|
|
30
31
|
const { setHasTopBar } = usePageTopBar();
|
|
@@ -35,13 +36,15 @@ export const PageTopBar = forwardRef(function PageTopBar(props, ref) {
|
|
|
35
36
|
};
|
|
36
37
|
}, [setHasTopBar]);
|
|
37
38
|
const { width, fullWidth } = useContext(PageContext);
|
|
38
|
-
const
|
|
39
|
+
const { hamburgerId } = useHamburgerContext();
|
|
40
|
+
const isDark = ['dark', 'grey'].includes(variant);
|
|
39
41
|
const logoDefault = (React.createElement(Logo, { variant: isDark ? 'white' : 'default', emblem: isCompactLayout, className: classes.logo }));
|
|
40
42
|
const logoComponent = logo || logoDefault;
|
|
41
43
|
const titleComponent = title && (React.createElement(Container, { left: 'small', flex: true, alignItems: 'center' },
|
|
42
44
|
React.createElement("div", { className: cx(classes.divider, { [classes.dividerBlue]: !isDark }) }),
|
|
43
45
|
React.createElement(Container, { left: 'small' },
|
|
44
46
|
React.createElement(Typography, { invert: isDark }, title))));
|
|
47
|
+
const responsiveCenterContent = isCompactLayout ? (React.createElement(PageHamburgerPortal, null, centerContent)) : (React.createElement(Container, { flex: true, alignItems: 'center' }, centerContent));
|
|
45
48
|
const innerClassName = cx({
|
|
46
49
|
[classes.fullWidth]: fullWidth || width === 'full',
|
|
47
50
|
[classes.wide]: width === 'wide',
|
|
@@ -55,9 +58,11 @@ export const PageTopBar = forwardRef(function PageTopBar(props, ref) {
|
|
|
55
58
|
: logoComponent),
|
|
56
59
|
!isCompactLayout && titleComponent,
|
|
57
60
|
leftContent),
|
|
61
|
+
centerContent && responsiveCenterContent,
|
|
58
62
|
React.createElement("div", { className: classes.right },
|
|
59
63
|
!isCompactLayout && actionItems,
|
|
60
|
-
rightContent)))
|
|
64
|
+
rightContent))),
|
|
65
|
+
React.createElement(PageHamburger, { id: hamburgerId })));
|
|
61
66
|
});
|
|
62
67
|
PageTopBar.defaultProps = {
|
|
63
68
|
variant: 'dark',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageTopBar.js","sourceRoot":"","sources":["../../src/PageTopBar/PageTopBar.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,+BAA+B;AAC/B,OAAO,KAAK,EAAE,EACZ,UAAU,EACV,UAAU,GAIX,MAAM,OAAO,CAAA;AACd,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3B,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAE,UAAU,EAAS,MAAM,0BAA0B,CAAA;AAE5D,OAAO,IAAI,MAAM,SAAS,CAAA;AAC1B,OAAO,SAAS,MAAM,cAAc,CAAA;AACpC,OAAO,UAAU,MAAM,eAAe,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAErC,OAAO,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAA;AACnE,OAAO,MAAM,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"PageTopBar.js","sourceRoot":"","sources":["../../src/PageTopBar/PageTopBar.tsx"],"names":[],"mappings":"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"}
|
package/PageTopBar/styles.d.ts
CHANGED
|
@@ -3,5 +3,5 @@ export declare const headerHeight: {
|
|
|
3
3
|
default: string;
|
|
4
4
|
smallAndMedium: string;
|
|
5
5
|
};
|
|
6
|
-
declare const _default: ({ palette, layout, zIndex, screens }: Theme) => import("@material-ui/styles").StyleRules<{}, "content" | "left" | "right" | "dark" | "light" | "root" | "wrapper" | "fullWidth" | "divider" | "logoContainer" | "logo" | "wide" | "dividerBlue">;
|
|
6
|
+
declare const _default: ({ palette, layout, zIndex, screens }: Theme) => import("@material-ui/styles").StyleRules<{}, "content" | "left" | "right" | "grey" | "dark" | "light" | "root" | "wrapper" | "fullWidth" | "divider" | "logoContainer" | "logo" | "wide" | "dividerBlue">;
|
|
7
7
|
export default _default;
|
package/PageTopBar/styles.js
CHANGED
package/PageTopBar/styles.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/PageTopBar/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAA;AAEzE,eAAe,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAS,EAAE,EAAE,CAC7D,YAAY,CAAC;IACX,IAAI,EAAE;QACJ,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,OAAO;QACjB,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB;IACD,KAAK,EAAE;QACL,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK;QACrC,SAAS,EAAE,aAAa,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE;KAChD;IACD,IAAI,EAAE;QACJ,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM;KACrC;IACD,OAAO,EAAE;QACP,SAAS,EAAE,YAAY;QACvB,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,QAAQ;QAChB,cAAc,EAAE,eAAe;QAC/B,QAAQ,EAAE,MAAM,CAAC,YAAY;QAC7B,OAAO,EAAE,KAAK,MAAM,CAAC,wBAAwB,EAAE;QAC/C,MAAM,EAAE,YAAY,CAAC,OAAO;QAC5B,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE;YAC5B,MAAM,EAAE,YAAY,CAAC,cAAc;SACpC;KACF;IACD,OAAO,EAAE;QACP,MAAM,EAAE,YAAY,CAAC,OAAO;QAC5B,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE;YAC5B,MAAM,EAAE,YAAY,CAAC,cAAc;SACpC;KACF;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,MAAM,CAAC,gBAAgB;KAClC;IACD,SAAS,EAAE;QACT,QAAQ,EAAE,MAAM;KACjB;IACD,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,QAAQ;KACrB;IACD,KAAK,EAAE;QACL,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,QAAQ;KACrB;IACD,OAAO,EAAE;QACP,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,OAAO;QACf,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK;QACrC,OAAO,EAAE,GAAG;KACb;IACD,WAAW,EAAE;QACX,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM;KACrC;IACD,aAAa,EAAE;QACb,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE;YAC5B,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,UAAU;YACpB,IAAI,EAAE,KAAK;YACX,SAAS,EAAE,qBAAqB;SACjC;KACF;IACD,IAAI,EAAE;QACJ,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE;YAC5B,QAAQ,EAAE,OAAO;SAClB;KACF;CACF,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/PageTopBar/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAA;AAEzE,eAAe,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAS,EAAE,EAAE,CAC7D,YAAY,CAAC;IACX,IAAI,EAAE;QACJ,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,OAAO;QACjB,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB;IACD,KAAK,EAAE;QACL,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK;QACrC,SAAS,EAAE,aAAa,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE;KAChD;IACD,IAAI,EAAE;QACJ,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM;KACrC;IACD,IAAI,EAAE;QACJ,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM;KACrC;IACD,OAAO,EAAE;QACP,SAAS,EAAE,YAAY;QACvB,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,QAAQ;QAChB,cAAc,EAAE,eAAe;QAC/B,QAAQ,EAAE,MAAM,CAAC,YAAY;QAC7B,OAAO,EAAE,KAAK,MAAM,CAAC,wBAAwB,EAAE;QAC/C,MAAM,EAAE,YAAY,CAAC,OAAO;QAC5B,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE;YAC5B,MAAM,EAAE,YAAY,CAAC,cAAc;SACpC;KACF;IACD,OAAO,EAAE;QACP,MAAM,EAAE,YAAY,CAAC,OAAO;QAC5B,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE;YAC5B,MAAM,EAAE,YAAY,CAAC,cAAc;SACpC;KACF;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,MAAM,CAAC,gBAAgB;KAClC;IACD,SAAS,EAAE;QACT,QAAQ,EAAE,MAAM;KACjB;IACD,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,QAAQ;KACrB;IACD,KAAK,EAAE;QACL,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,QAAQ;KACrB;IACD,OAAO,EAAE;QACP,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,OAAO;QACf,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK;QACrC,OAAO,EAAE,GAAG;KACb;IACD,WAAW,EAAE;QACX,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM;KACrC;IACD,aAAa,EAAE;QACb,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE;YAC5B,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,UAAU;YACpB,IAAI,EAAE,KAAK;YACX,SAAS,EAAE,qBAAqB;SACjC;KACF;IACD,IAAI,EAAE;QACJ,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE;YAC5B,QAAQ,EAAE,OAAO;SAClB;KACF;CACF,CAAC,CAAA"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const PageTopBarCompound: import("react").ForwardRefExoticComponent<import("../PageTopBar/PageTopBar").Props & import("react").RefAttributes<HTMLElement>> & {
|
|
2
|
+
Menu: import("react").ForwardRefExoticComponent<import("../TopBarMenu").TopBarMenuProps & import("react").RefAttributes<HTMLUListElement>>;
|
|
3
|
+
Item: import("@toptal/picasso-shared/src").OverridableComponent<import("../TopBarItem/TopBarItem").Props>;
|
|
4
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import PageTopBar from '../PageTopBar';
|
|
2
|
+
import TopBarMenu from '../TopBarMenu';
|
|
3
|
+
import TopBarItem from '../TopBarItem';
|
|
4
|
+
export const PageTopBarCompound = Object.assign(PageTopBar, {
|
|
5
|
+
Menu: TopBarMenu,
|
|
6
|
+
Item: TopBarItem,
|
|
7
|
+
});
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/PageTopBarCompound/index.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,eAAe,CAAA;AACtC,OAAO,UAAU,MAAM,eAAe,CAAA;AACtC,OAAO,UAAU,MAAM,eAAe,CAAA;AAEtC,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE;IAC1D,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,UAAU;CACjB,CAAC,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { BaseProps, TextLabelProps, OverridableComponent } from '@toptal/picasso-shared';
|
|
2
|
+
import React, { ElementType, ReactElement } from 'react';
|
|
3
|
+
import { MenuItemProps } from '@material-ui/core/MenuItem';
|
|
4
|
+
export interface Props extends BaseProps, TextLabelProps {
|
|
5
|
+
/** Pass icon to be used as part of item */
|
|
6
|
+
icon?: ReactElement;
|
|
7
|
+
/** Highlights the item as selected */
|
|
8
|
+
selected?: boolean;
|
|
9
|
+
/** Component name to render the menu item as */
|
|
10
|
+
as?: ElementType<MenuItemProps>;
|
|
11
|
+
/** Callback when item is clicked */
|
|
12
|
+
onClick?: (event: React.MouseEvent<HTMLElement, MouseEvent>) => void;
|
|
13
|
+
/** Callback when item is hovered */
|
|
14
|
+
onMouseEnter?: (event: React.MouseEvent<HTMLElement, MouseEvent>) => void;
|
|
15
|
+
}
|
|
16
|
+
export declare const TopBarItem: OverridableComponent<Props>;
|
|
17
|
+
export default TopBarItem;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
+
var t = {};
|
|
3
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
+
t[p] = s[p];
|
|
5
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
+
t[p[i]] = s[p[i]];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
12
|
+
import React, { forwardRef, memo } from 'react';
|
|
13
|
+
import { makeStyles } from '@material-ui/core/styles';
|
|
14
|
+
import cx from 'classnames';
|
|
15
|
+
import MenuItem from '../MenuItem';
|
|
16
|
+
import SidebarItem from '../SidebarItem';
|
|
17
|
+
import Typography from '../Typography';
|
|
18
|
+
import { useBreakpoint, noop } from '../utils';
|
|
19
|
+
import styles from './styles';
|
|
20
|
+
const useStyles = makeStyles(styles, { name: 'PicassoTopBarMenuItem' });
|
|
21
|
+
export const TopBarItem = memo(forwardRef(function TopBarItem(props, ref) {
|
|
22
|
+
const { className, icon, children } = props, rest = __rest(props, ["className", "icon", "children"]);
|
|
23
|
+
const classes = useStyles();
|
|
24
|
+
const isCompactLayout = useBreakpoint(['small', 'medium']);
|
|
25
|
+
return isCompactLayout ? (React.createElement(SidebarItem, Object.assign({}, props, { ref: ref }))) : (React.createElement(MenuItem, Object.assign({}, rest, { className: cx(classes.root, className, classes.dark, {
|
|
26
|
+
[classes.selected]: props.selected,
|
|
27
|
+
}), ref: ref }),
|
|
28
|
+
icon && React.createElement("div", { className: classes.icon }, icon),
|
|
29
|
+
React.createElement(Typography, { size: 'small', color: 'inherit' }, children)));
|
|
30
|
+
}));
|
|
31
|
+
TopBarItem.defaultProps = {
|
|
32
|
+
onClick: noop,
|
|
33
|
+
selected: false,
|
|
34
|
+
};
|
|
35
|
+
TopBarItem.displayName = 'TopBarItem';
|
|
36
|
+
export default TopBarItem;
|
|
37
|
+
//# sourceMappingURL=TopBarItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TopBarItem.js","sourceRoot":"","sources":["../../src/TopBarItem/TopBarItem.tsx"],"names":[],"mappings":";;;;;;;;;;;AAKA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAA6B,MAAM,OAAO,CAAA;AAE1E,OAAO,EAAS,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3B,OAAO,QAAQ,MAAM,aAAa,CAAA;AAClC,OAAO,WAAW,MAAM,gBAAgB,CAAA;AACxC,OAAO,UAAU,MAAM,eAAe,CAAA;AACtC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,MAAM,MAAM,UAAU,CAAA;AAe7B,MAAM,SAAS,GAAG,UAAU,CAAQ,MAAM,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAA;AAE9E,MAAM,CAAC,MAAM,UAAU,GAAgC,IAAI,CACzD,UAAU,CAAqB,SAAS,UAAU,CAAC,KAAK,EAAE,GAAG;IAC3D,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,KAAc,KAAK,EAAd,IAAI,UAAK,KAAK,EAA9C,iCAAsC,CAAQ,CAAA;IACpD,MAAM,OAAO,GAAG,SAAS,EAAE,CAAA;IAC3B,MAAM,eAAe,GAAG,aAAa,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAA;IAE1D,OAAO,eAAe,CAAC,CAAC,CAAC,CACvB,oBAAC,WAAW,oBAAK,KAAK,IAAE,GAAG,EAAE,GAAG,IAAI,CACrC,CAAC,CAAC,CAAC,CACF,oBAAC,QAAQ,oBACH,IAAI,IACR,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE;YACnD,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,QAAQ;SACnC,CAAC,EACF,GAAG,EAAE,GAAG;QAEP,IAAI,IAAI,6BAAK,SAAS,EAAE,OAAO,CAAC,IAAI,IAAG,IAAI,CAAO;QACnD,oBAAC,UAAU,IAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,SAAS,IACrC,QAAQ,CACE,CACJ,CACZ,CAAA;AACH,CAAC,CAAC,CACH,CAAA;AAED,UAAU,CAAC,YAAY,GAAG;IACxB,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,KAAK;CAChB,CAAA;AAED,UAAU,CAAC,WAAW,GAAG,YAAY,CAAA;AAErC,eAAe,UAAU,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './TopBarItem';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/TopBarItem/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { createStyles } from '@material-ui/core/styles';
|
|
2
|
+
export default ({ spacing, palette }) => createStyles({
|
|
3
|
+
root: {
|
|
4
|
+
color: palette.grey.main2,
|
|
5
|
+
minWidth: 0,
|
|
6
|
+
padding: 0,
|
|
7
|
+
'& + &:before': {
|
|
8
|
+
backgroundColor: palette.grey.main2,
|
|
9
|
+
content: '""',
|
|
10
|
+
display: 'inline-block',
|
|
11
|
+
height: spacing(1),
|
|
12
|
+
marginLeft: spacing(1),
|
|
13
|
+
marginRight: spacing(1),
|
|
14
|
+
width: 1,
|
|
15
|
+
},
|
|
16
|
+
'&:hover': {
|
|
17
|
+
backgroundColor: 'transparent',
|
|
18
|
+
color: palette.grey.light2,
|
|
19
|
+
},
|
|
20
|
+
'&:focus, &$selected$dark': {
|
|
21
|
+
backgroundColor: 'transparent',
|
|
22
|
+
color: palette.common.white,
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
icon: {
|
|
26
|
+
marginRight: '0.875em',
|
|
27
|
+
width: '1em',
|
|
28
|
+
},
|
|
29
|
+
selected: {},
|
|
30
|
+
dark: {},
|
|
31
|
+
});
|
|
32
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/TopBarItem/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAE9D,eAAe,CAAC,EAAE,OAAO,EAAE,OAAO,EAAS,EAAE,EAAE,CAC7C,YAAY,CAAC;IACX,IAAI,EAAE;QACJ,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK;QACzB,QAAQ,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;QACV,cAAc,EAAE;YACd,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK;YACnC,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,cAAc;YACvB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;YAClB,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;YACtB,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;YACvB,KAAK,EAAE,CAAC;SACT;QACD,SAAS,EAAE;YACT,eAAe,EAAE,aAAa;YAC9B,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM;SAC3B;QACD,0BAA0B,EAAE;YAC1B,eAAe,EAAE,aAAa;YAC9B,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK;SAC5B;KACF;IACD,IAAI,EAAE;QACJ,WAAW,EAAE,SAAS;QACtB,KAAK,EAAE,KAAK;KACb;IACD,QAAQ,EAAE,EAAE;IACZ,IAAI,EAAE,EAAE;CACT,CAAC,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { BaseProps } from '@toptal/picasso-shared';
|
|
2
|
+
import React, { HTMLAttributes, ReactNode } from 'react';
|
|
3
|
+
export interface Props extends BaseProps, HTMLAttributes<HTMLUListElement> {
|
|
4
|
+
/** Menu content */
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
}
|
|
7
|
+
export declare const TopBarMenu: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLUListElement>>;
|
|
8
|
+
export default TopBarMenu;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
+
var t = {};
|
|
3
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
+
t[p] = s[p];
|
|
5
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
+
t[p[i]] = s[p[i]];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
12
|
+
import React, { forwardRef } from 'react';
|
|
13
|
+
import { makeStyles } from '@material-ui/core/styles';
|
|
14
|
+
import Menu from '../Menu';
|
|
15
|
+
import { usePortalToHamburger } from '../PageHamburger';
|
|
16
|
+
import styles from './styles';
|
|
17
|
+
const useStyles = makeStyles(styles, { name: 'PicassoTopBarMenu' });
|
|
18
|
+
export const TopBarMenu = forwardRef(function TopBarMenu(props, ref) {
|
|
19
|
+
const { children } = props, rest = __rest(props, ["children"]);
|
|
20
|
+
const classes = useStyles();
|
|
21
|
+
// not more than 6 menu items are allowed by BASE design
|
|
22
|
+
const items = React.Children.toArray(children).slice(0, 6);
|
|
23
|
+
usePortalToHamburger();
|
|
24
|
+
return (React.createElement(Menu, Object.assign({}, rest, { allowNestedNavigation: false, ref: ref, className: classes.root }), items));
|
|
25
|
+
});
|
|
26
|
+
TopBarMenu.displayName = 'TopBarMenu';
|
|
27
|
+
export default TopBarMenu;
|
|
28
|
+
//# sourceMappingURL=TopBarMenu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TopBarMenu.js","sourceRoot":"","sources":["../../src/TopBarMenu/TopBarMenu.tsx"],"names":[],"mappings":";;;;;;;;;;;AACA,OAAO,KAAK,EAAE,EAAE,UAAU,EAA6B,MAAM,OAAO,CAAA;AACpE,OAAO,EAAS,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAE5D,OAAO,IAAI,MAAM,SAAS,CAAA;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,MAAM,MAAM,UAAU,CAAA;AAO7B,MAAM,SAAS,GAAG,UAAU,CAAQ,MAAM,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAA;AAE1E,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAClC,SAAS,UAAU,CAAC,KAAK,EAAE,GAAG;IAC5B,MAAM,EAAE,QAAQ,KAAc,KAAK,EAAd,IAAI,UAAK,KAAK,EAA7B,YAAqB,CAAQ,CAAA;IACnC,MAAM,OAAO,GAAG,SAAS,EAAE,CAAA;IAE3B,wDAAwD;IACxD,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAE1D,oBAAoB,EAAE,CAAA;IAEtB,OAAO,CACL,oBAAC,IAAI,oBACC,IAAI,IACR,qBAAqB,EAAE,KAAK,EAC5B,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,OAAO,CAAC,IAAI,KAEtB,KAAK,CACD,CACR,CAAA;AACH,CAAC,CACF,CAAA;AAED,UAAU,CAAC,WAAW,GAAG,YAAY,CAAA;AAErC,eAAe,UAAU,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/TopBarMenu/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/TopBarMenu/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAE9D,eAAe,CAAC,EAAE,OAAO,EAAS,EAAE,EAAE,CACpC,YAAY,CAAC;IACX,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM;QAEf,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE;YAC5B,OAAO,EAAE,OAAO;SACjB;KACF;CACF,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@toptal/picasso",
|
|
3
|
-
"version": "28.
|
|
3
|
+
"version": "28.11.0",
|
|
4
4
|
"description": "Toptal UI components library",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"typescript": "~4.7.0"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@toptal/picasso-shared": "11.
|
|
34
|
+
"@toptal/picasso-shared": "11.2.0",
|
|
35
35
|
"ap-style-title-case": "^1.1.2",
|
|
36
36
|
"classnames": "^2.3.1",
|
|
37
37
|
"d3": "^6.7.0",
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
"@testing-library/jest-dom": "^5.16.5",
|
|
60
60
|
"@testing-library/react": "^13.3.0",
|
|
61
61
|
"@testing-library/react-hooks": "^8.0.1",
|
|
62
|
-
"@toptal/picasso-provider": "2.
|
|
62
|
+
"@toptal/picasso-provider": "2.1.0",
|
|
63
63
|
"@types/classnames": "^2.3.1",
|
|
64
64
|
"@types/d3": "^6.7.4",
|
|
65
65
|
"@types/quill": "^1.3.10",
|
|
@@ -78,6 +78,5 @@
|
|
|
78
78
|
"sideEffects": [
|
|
79
79
|
"**/styles.ts",
|
|
80
80
|
"**/styles.js"
|
|
81
|
-
]
|
|
82
|
-
"gitHead": "e4aa2912df52accf1fa137c5a02d492ac80ee0d7"
|
|
81
|
+
]
|
|
83
82
|
}
|