@toptal/picasso-page 5.1.7 → 5.1.9

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.
@@ -1 +1 @@
1
- {"version":3,"file":"PageContent.d.ts","sourceRoot":"","sources":["../../../src/PageContent/PageContent.tsx"],"names":[],"mappings":"AAAA,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;AAOvD,MAAM,WAAW,KAAM,SAAQ,SAAS,EAAE,cAAc,CAAC,cAAc,CAAC;IACtE,oDAAoD;IACpD,QAAQ,EAAE,SAAS,CAAA;IACnB,kBAAkB;IAClB,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAMD,eAAO,MAAM,WAAW,8EAgCvB,CAAA;AAQD,eAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"PageContent.d.ts","sourceRoot":"","sources":["../../../src/PageContent/PageContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AACtD,OAAO,KAAiC,MAAM,OAAO,CAAA;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAQvD,MAAM,WAAW,KAAM,SAAQ,SAAS,EAAE,cAAc,CAAC,cAAc,CAAC;IACtE,oDAAoD;IACpD,QAAQ,EAAE,SAAS,CAAA;IACnB,kBAAkB;IAClB,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAED,eAAO,MAAM,WAAW,8EA6BvB,CAAA;AAQD,eAAe,WAAW,CAAA"}
@@ -10,25 +10,17 @@ var __rest = (this && this.__rest) || function (s, e) {
10
10
  return t;
11
11
  };
12
12
  import React, { useContext, forwardRef } from 'react';
13
- import { makeStyles } from '@material-ui/core/styles';
14
- import cx from 'classnames';
15
13
  import { useSidebar } from '@toptal/picasso-provider';
14
+ import { twJoin, twMerge } from '@toptal/picasso-tailwind-merge';
16
15
  import { PageContext } from '../Page';
17
- import styles from './styles';
18
- const useStyles = makeStyles(styles, {
19
- name: 'PicassoPageContent',
20
- });
16
+ import { getMaxWidthClass } from './styles';
21
17
  export const PageContent = forwardRef(function PageContent(props, ref) {
22
18
  const { children, className, style, flex } = props, rest = __rest(props, ["children", "className", "style", "flex"]);
23
- const classes = useStyles();
24
19
  const { width, fullWidth } = useContext(PageContext);
25
20
  const { hasSidebar } = useSidebar();
26
- const innerClassName = cx({
27
- [classes.fullWidth]: fullWidth || width === 'full',
28
- [classes.wide]: width === 'wide',
29
- [classes.flex]: flex,
30
- }, classes.content);
31
- return (React.createElement("div", Object.assign({}, rest, { ref: ref, className: cx(classes.root, { [classes.hasSidebar]: hasSidebar }, className), style: style }),
21
+ const innerClassName = twJoin('h-full grow bg-[#fcfcfc] bg-clip-content', getMaxWidthClass({ fullWidth, width }), flex && 'flex');
22
+ return (React.createElement("div", Object.assign({}, rest, { ref: ref, className: twMerge('flex flex-[1] w-full justify-center', hasSidebar &&
23
+ 'bg-[linear-gradient(90deg,rgb(243,244,246)50%,rgb(252,252,252)50%)]', className), style: style }),
32
24
  React.createElement("div", { className: innerClassName }, children)));
33
25
  });
34
26
  PageContent.defaultProps = {
@@ -1 +1 @@
1
- {"version":3,"file":"PageContent.js","sourceRoot":"","sources":["../../../src/PageContent/PageContent.tsx"],"names":[],"mappings":";;;;;;;;;;;AACA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3B,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAErC,OAAO,MAAM,MAAM,UAAU,CAAA;AAS7B,MAAM,SAAS,GAAG,UAAU,CAAQ,MAAM,EAAE;IAC1C,IAAI,EAAE,oBAAoB;CAC3B,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CACnC,SAAS,WAAW,CAAC,KAAK,EAAE,GAAG;IAC7B,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,KAAc,KAAK,EAAd,IAAI,UAAK,KAAK,EAArD,0CAA6C,CAAQ,CAAA;IAE3D,MAAM,OAAO,GAAG,SAAS,EAAE,CAAA;IAC3B,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,UAAU,CAAmB,WAAW,CAAC,CAAA;IACtE,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAAA;IAEnC,MAAM,cAAc,GAAG,EAAE,CACvB;QACE,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,SAAS,IAAI,KAAK,KAAK,MAAM;QAClD,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,MAAM;QAChC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI;KACrB,EACD,OAAO,CAAC,OAAO,CAChB,CAAA;IAED,OAAO,CACL,6CACM,IAAI,IACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,OAAO,CAAC,IAAI,EACZ,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,EACpC,SAAS,CACV,EACD,KAAK,EAAE,KAAK;QAEZ,6BAAK,SAAS,EAAE,cAAc,IAAG,QAAQ,CAAO,CAC5C,CACP,CAAA;AACH,CAAC,CACF,CAAA;AAED,WAAW,CAAC,YAAY,GAAG;IACzB,IAAI,EAAE,IAAI;CACX,CAAA;AAED,WAAW,CAAC,WAAW,GAAG,aAAa,CAAA;AAEvC,eAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"PageContent.js","sourceRoot":"","sources":["../../../src/PageContent/PageContent.tsx"],"names":[],"mappings":";;;;;;;;;;;AACA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AAEhE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAErC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAS3C,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CACnC,SAAS,WAAW,CAAC,KAAK,EAAE,GAAG;IAC7B,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,KAAc,KAAK,EAAd,IAAI,UAAK,KAAK,EAArD,0CAA6C,CAAQ,CAAA;IAE3D,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,UAAU,CAAmB,WAAW,CAAC,CAAA;IACtE,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAAA;IAEnC,MAAM,cAAc,GAAG,MAAM,CAC3B,0CAA0C,EAC1C,gBAAgB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EACtC,IAAI,IAAI,MAAM,CACf,CAAA;IAED,OAAO,CACL,6CACM,IAAI,IACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,OAAO,CAChB,qCAAqC,EACrC,UAAU;YACR,qEAAqE,EACvE,SAAS,CACV,EACD,KAAK,EAAE,KAAK;QAEZ,6BAAK,SAAS,EAAE,cAAc,IAAG,QAAQ,CAAO,CAC5C,CACP,CAAA;AACH,CAAC,CACF,CAAA;AAED,WAAW,CAAC,YAAY,GAAG;IACzB,IAAI,EAAE,IAAI;CACX,CAAA;AAED,WAAW,CAAC,WAAW,GAAG,aAAa,CAAA;AAEvC,eAAe,WAAW,CAAA"}
@@ -1,4 +1,3 @@
1
- import type { Theme } from '@material-ui/core/styles';
2
- declare const _default: ({ layout, palette }: Theme) => import("@material-ui/styles").StyleRules<{}, "root" | "content" | "flex" | "wide" | "fullWidth" | "hasSidebar">;
3
- export default _default;
1
+ import type { PageContextProps } from '../Page/types';
2
+ export declare const getMaxWidthClass: ({ fullWidth, width }: PageContextProps) => "max-w-full" | "max-w-[90em]" | "max-w-[75em]";
4
3
  //# sourceMappingURL=styles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/PageContent/styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;8CAGhB,KAAK;AAA1C,wBA2BI"}
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/PageContent/styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAErD,eAAO,MAAM,gBAAgB,yBAA0B,gBAAgB,mDAUtE,CAAA"}
@@ -1,29 +1,10 @@
1
- import { createStyles } from '@material-ui/core/styles';
2
- export default ({ layout, palette }) => createStyles({
3
- root: {
4
- flex: 1,
5
- width: '100%',
6
- display: 'flex',
7
- justifyContent: 'center',
8
- },
9
- content: {
10
- height: '100%',
11
- flexGrow: 1,
12
- maxWidth: layout.contentWidth,
13
- backgroundColor: palette.grey.lightest,
14
- backgroundClip: 'content-box',
15
- },
16
- hasSidebar: {
17
- background: `linear-gradient(90deg, ${palette.grey.lighter} 50%, ${palette.grey.lightest} 50%)`,
18
- },
19
- wide: {
20
- maxWidth: layout.contentWidthWide,
21
- },
22
- fullWidth: {
23
- maxWidth: '100%',
24
- },
25
- flex: {
26
- display: 'flex',
27
- },
28
- });
1
+ export const getMaxWidthClass = ({ fullWidth, width }) => {
2
+ if (fullWidth || width === 'full') {
3
+ return 'max-w-full';
4
+ }
5
+ if (width === 'wide') {
6
+ return 'max-w-[90em]';
7
+ }
8
+ return 'max-w-[75em]';
9
+ };
29
10
  //# sourceMappingURL=styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/PageContent/styles.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAEvD,eAAe,CAAC,EAAE,MAAM,EAAE,OAAO,EAAS,EAAE,EAAE,CAC5C,YAAY,CAAC;IACX,IAAI,EAAE;QACJ,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,MAAM;QACb,OAAO,EAAE,MAAM;QACf,cAAc,EAAE,QAAQ;KACzB;IACD,OAAO,EAAE;QACP,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,MAAM,CAAC,YAAY;QAC7B,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ;QACtC,cAAc,EAAE,aAAa;KAC9B;IACD,UAAU,EAAE;QACV,UAAU,EAAE,0BAA0B,OAAO,CAAC,IAAI,CAAC,OAAO,SAAS,OAAO,CAAC,IAAI,CAAC,QAAQ,OAAO;KAChG;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;KAChB;CACF,CAAC,CAAA"}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/PageContent/styles.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAAE,SAAS,EAAE,KAAK,EAAoB,EAAE,EAAE;IACzE,IAAI,SAAS,IAAI,KAAK,KAAK,MAAM,EAAE;QACjC,OAAO,YAAY,CAAA;KACpB;IAED,IAAI,KAAK,KAAK,MAAM,EAAE;QACpB,OAAO,cAAc,CAAA;KACtB;IAED,OAAO,cAAc,CAAA;AACvB,CAAC,CAAA"}
@@ -1,4 +1,4 @@
1
1
  import type { Theme } from '@material-ui/core/styles';
2
- declare const _default: ({ palette, screens, layout }: Theme) => import("@material-ui/styles").StyleRules<{}, "root" | "content" | "left" | "right" | "wide" | "fullWidth" | "centered">;
2
+ declare const _default: ({ palette, screens, layout }: Theme) => import("@material-ui/styles").StyleRules<{}, "content" | "left" | "right" | "wide" | "root" | "fullWidth" | "centered">;
3
3
  export default _default;
4
4
  //# sourceMappingURL=styles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PageHamburger.d.ts","sourceRoot":"","sources":["../../../src/PageHamburger/PageHamburger.tsx"],"names":[],"mappings":";AAWA,UAAU,KAAK;IACb,EAAE,EAAE,MAAM,CAAA;IACV,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAMD,QAAA,MAAM,aAAa,sCAAuC,KAAK,gBAkD9D,CAAA;AAED,eAAe,aAAa,CAAA"}
1
+ {"version":3,"file":"PageHamburger.d.ts","sourceRoot":"","sources":["../../../src/PageHamburger/PageHamburger.tsx"],"names":[],"mappings":";AAOA,UAAU,KAAK;IACb,EAAE,EAAE,MAAM,CAAA;IACV,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,QAAA,MAAM,aAAa,sCAAuC,KAAK,gBA+C9D,CAAA;AAED,eAAe,aAAa,CAAA"}
@@ -1,25 +1,16 @@
1
1
  import React, { useState } from 'react';
2
- import { makeStyles } from '@material-ui/core/styles';
3
- import cx from 'classnames';
4
2
  import { ButtonCircular } from '@toptal/picasso-button';
5
3
  import { Dropdown } from '@toptal/picasso-dropdown';
6
4
  import { Close24, Overview24 } from '@toptal/picasso-icons';
7
5
  import { useHamburgerContext } from './PageHamburgerContext';
8
- import styles from './styles';
9
- const useStyles = makeStyles(styles, {
10
- name: 'PageHamburger',
11
- });
12
6
  const PageHamburger = ({ id, 'data-testid': dataTestId }) => {
13
7
  const { showSidebarMenu, hamburgerRef } = useHamburgerContext();
14
8
  const [showContent, setShowContent] = useState(false);
15
- const classes = useStyles();
16
9
  const handleShowContent = () => setShowContent(true);
17
10
  const handleHideContent = () => setShowContent(false);
18
- return (React.createElement(Dropdown, { content: React.createElement("div", { id: id, ref: hamburgerRef }), className: cx(classes.root, {
19
- [classes.hidden]: !showSidebarMenu,
20
- }), classes: {
11
+ return (React.createElement(Dropdown, { content: React.createElement("div", { id: id, ref: hamburgerRef }), className: !showSidebarMenu ? 'hidden' : 'min-[1280px]:hidden', classes: {
21
12
  content: `!shadow-[inset_-1px_0px_0px_0px] !shadow-gray-200 max-h-[calc(100vh-var(--header-height,3.5rem))] !bg-gray-100`,
22
- popper: classes.popper,
13
+ popper: 'mt-4',
23
14
  },
24
15
  // The "disablePortal" is needed for testing the dropdown hamburger menu in Cypress.
25
16
  // Without it, React fails to create portal inside of portal (via `createPortal()`), so
@@ -34,7 +25,7 @@ const PageHamburger = ({ id, 'data-testid': dataTestId }) => {
34
25
  }, popperProps: {
35
26
  role: 'navigation',
36
27
  }, onOpen: handleShowContent, onClose: handleHideContent, keepMounted: true },
37
- React.createElement(ButtonCircular, { icon: showContent ? (React.createElement(Close24, null)) : (React.createElement(Overview24, { className: classes.hamburger })), "data-testid": dataTestId, variant: 'transparent' })));
28
+ React.createElement(ButtonCircular, { icon: showContent ? (React.createElement(Close24, null)) : (React.createElement(Overview24, { className: 'pointer-events-none' })), "data-testid": dataTestId, variant: 'transparent' })));
38
29
  };
39
30
  export default PageHamburger;
40
31
  //# sourceMappingURL=PageHamburger.js.map
@@ -1 +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;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAE3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,MAAM,MAAM,UAAU,CAAA;AAO7B,MAAM,SAAS,GAAG,UAAU,CAAQ,MAAM,EAAE;IAC1C,IAAI,EAAE,eAAe;CACtB,CAAC,CAAA;AAEF,MAAM,aAAa,GAAG,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,UAAU,EAAS,EAAE,EAAE;IACjE,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,GAAG,mBAAmB,EAAE,CAAA;IAC/D,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAA;IAC9D,MAAM,OAAO,GAAG,SAAS,EAAE,CAAA;IAE3B,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,EAAE,GAAG,EAAE,YAAY,GAAI,EAC3C,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE;YAC1B,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,eAAe;SACnC,CAAC,EACF,OAAO,EAAE;YACP,OAAO,EAAE,gHAAgH;YACzH,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB;QACD,oFAAoF;QACpF,uFAAuF;QACvF,gEAAgE;QAChE,aAAa,QACb,aAAa,EAAE;YACb,SAAS,EAAE;gBACT,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;gBACxB,eAAe,EAAE;oBACf,OAAO,EAAE,CAAC;iBACX;aACF;SACF,EACD,WAAW,EAAE;YACX,IAAI,EAAE,YAAY;SACnB,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,iBAEU,UAAU,EACvB,OAAO,EAAC,aAAa,GACrB,CACO,CACZ,CAAA;AACH,CAAC,CAAA;AAED,eAAe,aAAa,CAAA"}
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,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAE3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAO5D,MAAM,aAAa,GAAG,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,UAAU,EAAS,EAAE,EAAE;IACjE,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,GAAG,mBAAmB,EAAE,CAAA;IAC/D,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAA;IAE9D,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,EAAE,GAAG,EAAE,YAAY,GAAI,EAC3C,SAAS,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,qBAAqB,EAC9D,OAAO,EAAE;YACP,OAAO,EAAE,gHAAgH;YACzH,MAAM,EAAE,MAAM;SACf;QACD,oFAAoF;QACpF,uFAAuF;QACvF,gEAAgE;QAChE,aAAa,QACb,aAAa,EAAE;YACb,SAAS,EAAE;gBACT,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;gBACxB,eAAe,EAAE;oBACf,OAAO,EAAE,CAAC;iBACX;aACF;SACF,EACD,WAAW,EAAE;YACX,IAAI,EAAE,YAAY;SACnB,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,EAAC,qBAAqB,GAAG,CAC/C,iBAEU,UAAU,EACvB,OAAO,EAAC,aAAa,GACrB,CACO,CACZ,CAAA;AACH,CAAC,CAAA;AAED,eAAe,aAAa,CAAA"}
@@ -1,4 +1,4 @@
1
1
  import type { Theme } from '@material-ui/core/styles';
2
- declare const _default: ({ palette, screens, transitions }: Theme) => import("@material-ui/styles").StyleRules<{}, "small" | "root" | "medium" | "dark" | "light" | "large" | "sticky" | "wrapper" | "hamburgerNotAvailable" | "scrollableContent" | "spacer" | "rootCollapsed">;
2
+ declare const _default: ({ palette, screens, transitions }: Theme) => import("@material-ui/styles").StyleRules<{}, "small" | "root" | "large" | "medium" | "dark" | "light" | "sticky" | "wrapper" | "hamburgerNotAvailable" | "scrollableContent" | "spacer" | "rootCollapsed">;
3
3
  export default _default;
4
4
  //# sourceMappingURL=styles.d.ts.map
@@ -1,4 +1,4 @@
1
1
  import type { Theme } from '@material-ui/core/styles';
2
- declare const _default: ({ palette, layout, zIndex, screens }: Theme) => import("@material-ui/styles").StyleRules<{}, "title" | "root" | "content" | "left" | "right" | "grey" | "dark" | "light" | "wide" | "fullWidth" | "preventPageWidthChangeOnScrollbar" | "wrapper" | "centerContent" | "centerContentPortal" | "divider" | "dividerBlue" | "logo" | "logoEmblem">;
2
+ declare const _default: ({ palette, layout, zIndex, screens }: Theme) => import("@material-ui/styles").StyleRules<{}, "title" | "content" | "left" | "right" | "wide" | "root" | "grey" | "dark" | "light" | "fullWidth" | "preventPageWidthChangeOnScrollbar" | "wrapper" | "centerContent" | "centerContentPortal" | "divider" | "dividerBlue" | "logo" | "logoEmblem">;
3
3
  export default _default;
4
4
  //# sourceMappingURL=styles.d.ts.map
@@ -1,4 +1,4 @@
1
1
  import type { Theme } from '@material-ui/core/styles';
2
- declare const _default: ({ palette }: Theme) => import("@material-ui/styles").StyleRules<{}, "root" | "content" | "collapsibleWrapper" | "expandIcon" | "compactDropdown" | "lightExpandIcon" | "darkExpandIcon" | "expandIconDisabled">;
2
+ declare const _default: ({ palette }: Theme) => import("@material-ui/styles").StyleRules<{}, "content" | "root" | "collapsibleWrapper" | "expandIcon" | "compactDropdown" | "lightExpandIcon" | "darkExpandIcon" | "expandIconDisabled">;
3
3
  export default _default;
4
4
  //# sourceMappingURL=styles.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@toptal/picasso-page",
3
- "version": "5.1.7",
3
+ "version": "5.1.9",
4
4
  "description": "Toptal UI components library - Page",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -1,14 +1,12 @@
1
1
  import type { ReactNode, HTMLAttributes } from 'react'
2
2
  import React, { useContext, forwardRef } from 'react'
3
- import type { Theme } from '@material-ui/core/styles'
4
- import { makeStyles } from '@material-ui/core/styles'
5
- import cx from 'classnames'
6
3
  import type { BaseProps } from '@toptal/picasso-shared'
7
4
  import { useSidebar } from '@toptal/picasso-provider'
5
+ import { twJoin, twMerge } from '@toptal/picasso-tailwind-merge'
8
6
 
9
7
  import { PageContext } from '../Page'
10
8
  import type { PageContextProps } from '../Page/types'
11
- import styles from './styles'
9
+ import { getMaxWidthClass } from './styles'
12
10
 
13
11
  export interface Props extends BaseProps, HTMLAttributes<HTMLDivElement> {
14
12
  /** Custom components that render content of page */
@@ -17,34 +15,27 @@ export interface Props extends BaseProps, HTMLAttributes<HTMLDivElement> {
17
15
  flex?: boolean
18
16
  }
19
17
 
20
- const useStyles = makeStyles<Theme>(styles, {
21
- name: 'PicassoPageContent',
22
- })
23
-
24
18
  export const PageContent = forwardRef<HTMLDivElement, Props>(
25
19
  function PageContent(props, ref) {
26
20
  const { children, className, style, flex, ...rest } = props
27
21
 
28
- const classes = useStyles()
29
22
  const { width, fullWidth } = useContext<PageContextProps>(PageContext)
30
23
  const { hasSidebar } = useSidebar()
31
24
 
32
- const innerClassName = cx(
33
- {
34
- [classes.fullWidth]: fullWidth || width === 'full',
35
- [classes.wide]: width === 'wide',
36
- [classes.flex]: flex,
37
- },
38
- classes.content
25
+ const innerClassName = twJoin(
26
+ 'h-full grow bg-[#fcfcfc] bg-clip-content',
27
+ getMaxWidthClass({ fullWidth, width }),
28
+ flex && 'flex'
39
29
  )
40
30
 
41
31
  return (
42
32
  <div
43
33
  {...rest}
44
34
  ref={ref}
45
- className={cx(
46
- classes.root,
47
- { [classes.hasSidebar]: hasSidebar },
35
+ className={twMerge(
36
+ 'flex flex-[1] w-full justify-center',
37
+ hasSidebar &&
38
+ 'bg-[linear-gradient(90deg,rgb(243,244,246)50%,rgb(252,252,252)50%)]',
48
39
  className
49
40
  )}
50
41
  style={style}
@@ -1,31 +1,13 @@
1
- import type { Theme } from '@material-ui/core/styles'
2
- import { createStyles } from '@material-ui/core/styles'
1
+ import type { PageContextProps } from '../Page/types'
3
2
 
4
- export default ({ layout, palette }: Theme) =>
5
- createStyles({
6
- root: {
7
- flex: 1,
8
- width: '100%',
9
- display: 'flex',
10
- justifyContent: 'center',
11
- },
12
- content: {
13
- height: '100%',
14
- flexGrow: 1,
15
- maxWidth: layout.contentWidth,
16
- backgroundColor: palette.grey.lightest,
17
- backgroundClip: 'content-box',
18
- },
19
- hasSidebar: {
20
- background: `linear-gradient(90deg, ${palette.grey.lighter} 50%, ${palette.grey.lightest} 50%)`,
21
- },
22
- wide: {
23
- maxWidth: layout.contentWidthWide,
24
- },
25
- fullWidth: {
26
- maxWidth: '100%',
27
- },
28
- flex: {
29
- display: 'flex',
30
- },
31
- })
3
+ export const getMaxWidthClass = ({ fullWidth, width }: PageContextProps) => {
4
+ if (fullWidth || width === 'full') {
5
+ return 'max-w-full'
6
+ }
7
+
8
+ if (width === 'wide') {
9
+ return 'max-w-[90em]'
10
+ }
11
+
12
+ return 'max-w-[75em]'
13
+ }
@@ -1,27 +1,18 @@
1
1
  import React, { useState } from 'react'
2
- import type { Theme } from '@material-ui/core/styles'
3
- import { makeStyles } from '@material-ui/core/styles'
4
- import cx from 'classnames'
5
2
  import { ButtonCircular } from '@toptal/picasso-button'
6
3
  import { Dropdown } from '@toptal/picasso-dropdown'
7
4
  import { Close24, Overview24 } from '@toptal/picasso-icons'
8
5
 
9
6
  import { useHamburgerContext } from './PageHamburgerContext'
10
- import styles from './styles'
11
7
 
12
8
  interface Props {
13
9
  id: string
14
10
  'data-testid'?: string
15
11
  }
16
12
 
17
- const useStyles = makeStyles<Theme>(styles, {
18
- name: 'PageHamburger',
19
- })
20
-
21
13
  const PageHamburger = ({ id, 'data-testid': dataTestId }: Props) => {
22
14
  const { showSidebarMenu, hamburgerRef } = useHamburgerContext()
23
15
  const [showContent, setShowContent] = useState<boolean>(false)
24
- const classes = useStyles()
25
16
 
26
17
  const handleShowContent = () => setShowContent(true)
27
18
  const handleHideContent = () => setShowContent(false)
@@ -29,12 +20,10 @@ const PageHamburger = ({ id, 'data-testid': dataTestId }: Props) => {
29
20
  return (
30
21
  <Dropdown
31
22
  content={<div id={id} ref={hamburgerRef} />}
32
- className={cx(classes.root, {
33
- [classes.hidden]: !showSidebarMenu,
34
- })}
23
+ className={!showSidebarMenu ? 'hidden' : 'min-[1280px]:hidden'}
35
24
  classes={{
36
25
  content: `!shadow-[inset_-1px_0px_0px_0px] !shadow-gray-200 max-h-[calc(100vh-var(--header-height,3.5rem))] !bg-gray-100`,
37
- popper: classes.popper,
26
+ popper: 'mt-4',
38
27
  }}
39
28
  // The "disablePortal" is needed for testing the dropdown hamburger menu in Cypress.
40
29
  // Without it, React fails to create portal inside of portal (via `createPortal()`), so
@@ -60,7 +49,7 @@ const PageHamburger = ({ id, 'data-testid': dataTestId }: Props) => {
60
49
  showContent ? (
61
50
  <Close24 />
62
51
  ) : (
63
- <Overview24 className={classes.hamburger} />
52
+ <Overview24 className='pointer-events-none' />
64
53
  )
65
54
  }
66
55
  data-testid={dataTestId}
@@ -21,7 +21,7 @@ exports[`Page.TopBar render with custom logo 1`] = `
21
21
  class="gap-4 items-center flex"
22
22
  >
23
23
  <div
24
- class="flex items-center PageHamburger-root PageHamburger-hidden"
24
+ class="items-center hidden"
25
25
  >
26
26
  <div
27
27
  class="inline-flex items-center cursor-pointer"
@@ -38,7 +38,7 @@ exports[`Page.TopBar render with custom logo 1`] = `
38
38
  class="items-center inline-flex font-semibold whitespace-nowrap text-button"
39
39
  >
40
40
  <svg
41
- class="PicassoSvgOverview24-root text-[1.2em] flex-1 PageHamburger-hamburger"
41
+ class="PicassoSvgOverview24-root text-[1.2em] flex-1 pointer-events"
42
42
  style="min-width: 24px; min-height: 24px;"
43
43
  viewBox="0 0 24 24"
44
44
  >
@@ -50,7 +50,7 @@ exports[`Page.TopBar render with custom logo 1`] = `
50
50
  </button>
51
51
  </div>
52
52
  <div
53
- class="PicassoPopper-root shadow-2 PageHamburger-popper"
53
+ class="PicassoPopper-root shadow-2 mt-4"
54
54
  role="navigation"
55
55
  style="position: fixed; top: 0px; left: 0px; display: none;"
56
56
  >
@@ -120,7 +120,7 @@ exports[`Page.TopBar render with link 1`] = `
120
120
  class="gap-4 items-center flex"
121
121
  >
122
122
  <div
123
- class="flex items-center PageHamburger-root PageHamburger-hidden"
123
+ class="items-center hidden"
124
124
  >
125
125
  <div
126
126
  class="inline-flex items-center cursor-pointer"
@@ -137,7 +137,7 @@ exports[`Page.TopBar render with link 1`] = `
137
137
  class="items-center inline-flex font-semibold whitespace-nowrap text-button"
138
138
  >
139
139
  <svg
140
- class="PicassoSvgOverview24-root text-[1.2em] flex-1 PageHamburger-hamburger"
140
+ class="PicassoSvgOverview24-root text-[1.2em] flex-1 pointer-events"
141
141
  style="min-width: 24px; min-height: 24px;"
142
142
  viewBox="0 0 24 24"
143
143
  >
@@ -149,7 +149,7 @@ exports[`Page.TopBar render with link 1`] = `
149
149
  </button>
150
150
  </div>
151
151
  <div
152
- class="PicassoPopper-root shadow-2 PageHamburger-popper"
152
+ class="PicassoPopper-root shadow-2 mt-4"
153
153
  role="navigation"
154
154
  style="position: fixed; top: 0px; left: 0px; display: none;"
155
155
  >
@@ -245,7 +245,7 @@ exports[`Page.TopBar renders 1`] = `
245
245
  class="gap-4 items-center flex"
246
246
  >
247
247
  <div
248
- class="flex items-center PageHamburger-root PageHamburger-hidden"
248
+ class="items-center hidden"
249
249
  >
250
250
  <div
251
251
  class="inline-flex items-center cursor-pointer"
@@ -262,7 +262,7 @@ exports[`Page.TopBar renders 1`] = `
262
262
  class="items-center inline-flex font-semibold whitespace-nowrap text-button"
263
263
  >
264
264
  <svg
265
- class="PicassoSvgOverview24-root text-[1.2em] flex-1 PageHamburger-hamburger"
265
+ class="PicassoSvgOverview24-root text-[1.2em] flex-1 pointer-events"
266
266
  style="min-width: 24px; min-height: 24px;"
267
267
  viewBox="0 0 24 24"
268
268
  >
@@ -274,7 +274,7 @@ exports[`Page.TopBar renders 1`] = `
274
274
  </button>
275
275
  </div>
276
276
  <div
277
- class="PicassoPopper-root shadow-2 PageHamburger-popper"
277
+ class="PicassoPopper-root shadow-2 mt-4"
278
278
  role="navigation"
279
279
  style="position: fixed; top: 0px; left: 0px; display: none;"
280
280
  >
@@ -1,3 +0,0 @@
1
- declare const _default: () => import("@material-ui/styles").StyleRules<{}, "hamburger" | "root" | "hidden" | "popper">;
2
- export default _default;
3
- //# sourceMappingURL=styles.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/PageHamburger/styles.ts"],"names":[],"mappings":";AAIA,wBAmBC"}
@@ -1,23 +0,0 @@
1
- import { createStyles } from '@material-ui/core/styles';
2
- import { headerBreakingPointXL } from '../PageTopBar/constants';
3
- export default () => {
4
- return createStyles({
5
- root: {
6
- [headerBreakingPointXL]: {
7
- //TODO: add important property here to overwrite the styles in Dropdown component. Should be removed after migrating to TailwindCSS in task https://toptal-core.atlassian.net/browse/FX-5688
8
- display: 'none !important',
9
- },
10
- },
11
- popper: {
12
- marginTop: '1rem',
13
- },
14
- hamburger: {
15
- pointerEvents: 'none',
16
- },
17
- hidden: {
18
- //TODO: add important property here to overwrite the styles in Dropdown component. Should be removed after migrating to TailwindCSS in task https://toptal-core.atlassian.net/browse/FX-5688
19
- display: 'none !important',
20
- },
21
- });
22
- };
23
- //# sourceMappingURL=styles.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/PageHamburger/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAEvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAE/D,eAAe,GAAG,EAAE;IAClB,OAAO,YAAY,CAAC;QAClB,IAAI,EAAE;YACJ,CAAC,qBAAqB,CAAC,EAAE;gBACvB,4LAA4L;gBAC5L,OAAO,EAAE,iBAAiB;aAC3B;SACF;QACD,MAAM,EAAE;YACN,SAAS,EAAE,MAAM;SAClB;QACD,SAAS,EAAE;YACT,aAAa,EAAE,MAAM;SACtB;QACD,MAAM,EAAE;YACN,4LAA4L;YAC5L,OAAO,EAAE,iBAAiB;SAC3B;KACF,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -1,24 +0,0 @@
1
- import { createStyles } from '@material-ui/core/styles'
2
-
3
- import { headerBreakingPointXL } from '../PageTopBar/constants'
4
-
5
- export default () => {
6
- return createStyles({
7
- root: {
8
- [headerBreakingPointXL]: {
9
- //TODO: add important property here to overwrite the styles in Dropdown component. Should be removed after migrating to TailwindCSS in task https://toptal-core.atlassian.net/browse/FX-5688
10
- display: 'none !important',
11
- },
12
- },
13
- popper: {
14
- marginTop: '1rem',
15
- },
16
- hamburger: {
17
- pointerEvents: 'none',
18
- },
19
- hidden: {
20
- //TODO: add important property here to overwrite the styles in Dropdown component. Should be removed after migrating to TailwindCSS in task https://toptal-core.atlassian.net/browse/FX-5688
21
- display: 'none !important',
22
- },
23
- })
24
- }