@toptal/picasso 26.15.0 → 26.15.2

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/Tab/Tab.js CHANGED
@@ -9,20 +9,26 @@ 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, { forwardRef, useContext, } from 'react';
13
13
  import { makeStyles } from '@material-ui/core/styles';
14
14
  import MUITab from '@material-ui/core/Tab';
15
15
  import { useTitleCase } from '@toptal/picasso-shared';
16
16
  import Typography from '../Typography';
17
17
  import styles from './styles';
18
18
  import toTitleCase from '../utils/to-title-case';
19
+ import { TabsOrientationContext } from '../Tabs/Tabs';
19
20
  const useStyles = makeStyles(styles, { name: 'PicassoTab' });
20
21
  export const Tab = forwardRef(function Tab(props, ref) {
21
22
  const { disabled, value, label, icon, selected, onChange, onClick, titleCase: propsTitleCase } = props, rest = __rest(props, ["disabled", "value", "label", "icon", "selected", "onChange", "onClick", "titleCase"]);
22
23
  const classes = useStyles();
23
24
  const titleCase = useTitleCase(propsTitleCase);
24
25
  const labelComponent = (React.createElement(Typography, { as: 'div', size: 'small', weight: 'semibold', color: 'inherit' }, titleCase ? toTitleCase(label) : label));
25
- return (React.createElement(MUITab, Object.assign({}, rest, { ref: ref, tabIndex: 0, disabled: disabled, label: labelComponent, icon: icon, value: value, selected: selected, onChange: onChange, onClick: onClick, classes: classes })));
26
+ const orientation = useContext(TabsOrientationContext);
27
+ return (React.createElement(MUITab, Object.assign({}, rest, { ref: ref, tabIndex: 0, disabled: disabled, label: labelComponent, icon: icon, value: value, selected: selected, onChange: onChange, onClick: onClick, classes: {
28
+ root: classes[orientation],
29
+ selected: classes.selected,
30
+ wrapper: classes.wrapper,
31
+ } })));
26
32
  });
27
33
  Tab.defaultProps = {};
28
34
  Tab.displayName = 'Tab';
package/Tab/Tab.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Tab.js","sourceRoot":"","sources":["../../src/Tab/Tab.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EACZ,UAAU,GAIX,MAAM,OAAO,CAAA;AACd,OAAO,EAAE,UAAU,EAAS,MAAM,0BAA0B,CAAA;AAC5D,OAAO,MAAoB,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAA6B,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAEhF,OAAO,UAAU,MAAM,eAAe,CAAA;AACtC,OAAO,MAAM,MAAM,UAAU,CAAA;AAC7B,OAAO,WAAW,MAAM,wBAAwB,CAAA;AA4BhD,MAAM,SAAS,GAAG,UAAU,CAAQ,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAA;AAEnE,MAAM,CAAC,MAAM,GAAG,GAAG,UAAU,CAAwB,SAAS,GAAG,CAAC,KAAK,EAAE,GAAG;IAC1E,MAAM,EACJ,QAAQ,EACR,KAAK,EACL,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,SAAS,EAAE,cAAc,KAEvB,KAAK,EADJ,IAAI,UACL,KAAK,EAVH,sFAUL,CAAQ,CAAA;IACT,MAAM,OAAO,GAAG,SAAS,EAAE,CAAA;IAC3B,MAAM,SAAS,GAAG,YAAY,CAAC,cAAc,CAAC,CAAA;IAC9C,MAAM,cAAc,GAAG,CACrB,oBAAC,UAAU,IAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,OAAO,EAAC,MAAM,EAAC,UAAU,EAAC,KAAK,EAAC,SAAS,IAChE,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAC5B,CACd,CAAA;IAED,OAAO,CACL,oBAAC,MAAM,oBACD,IAAI,IACR,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,CAAC,EACX,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,IAChB,CACH,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,GAAG,CAAC,YAAY,GAAG,EAAE,CAAA;AAErB,GAAG,CAAC,WAAW,GAAG,KAAK,CAAA;AAEvB,eAAe,GAAG,CAAA"}
1
+ {"version":3,"file":"Tab.js","sourceRoot":"","sources":["../../src/Tab/Tab.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EACZ,UAAU,EAIV,UAAU,GACX,MAAM,OAAO,CAAA;AACd,OAAO,EAAE,UAAU,EAAS,MAAM,0BAA0B,CAAA;AAC5D,OAAO,MAAoB,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAA6B,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAEhF,OAAO,UAAU,MAAM,eAAe,CAAA;AACtC,OAAO,MAAM,MAAM,UAAU,CAAA;AAC7B,OAAO,WAAW,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AA4BrD,MAAM,SAAS,GAAG,UAAU,CAAQ,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAA;AAEnE,MAAM,CAAC,MAAM,GAAG,GAAG,UAAU,CAAwB,SAAS,GAAG,CAAC,KAAK,EAAE,GAAG;IAC1E,MAAM,EACJ,QAAQ,EACR,KAAK,EACL,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,SAAS,EAAE,cAAc,KAEvB,KAAK,EADJ,IAAI,UACL,KAAK,EAVH,sFAUL,CAAQ,CAAA;IACT,MAAM,OAAO,GAAG,SAAS,EAAE,CAAA;IAC3B,MAAM,SAAS,GAAG,YAAY,CAAC,cAAc,CAAC,CAAA;IAC9C,MAAM,cAAc,GAAG,CACrB,oBAAC,UAAU,IAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,OAAO,EAAC,MAAM,EAAC,UAAU,EAAC,KAAK,EAAC,SAAS,IAChE,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAC5B,CACd,CAAA;IACD,MAAM,WAAW,GAAG,UAAU,CAAC,sBAAsB,CAAC,CAAA;IAEtD,OAAO,CACL,oBAAC,MAAM,oBACD,IAAI,IACR,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,CAAC,EACX,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE;YACP,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC;YAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,IACD,CACH,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,GAAG,CAAC,YAAY,GAAG,EAAE,CAAA;AAErB,GAAG,CAAC,WAAW,GAAG,KAAK,CAAA;AAEvB,eAAe,GAAG,CAAA"}
package/Tab/styles.d.ts CHANGED
@@ -1,2 +1,3 @@
1
- declare const _default: () => import("@material-ui/styles").StyleRules<{}, never>;
1
+ import { Theme } from '@material-ui/core/styles';
2
+ declare const _default: ({ sizes, palette, shadows }: Theme) => import("@material-ui/styles").StyleRules<{}, "horizontal" | "vertical" | "selected" | "wrapper">;
2
3
  export default _default;
package/Tab/styles.js CHANGED
@@ -14,9 +14,6 @@ PicassoProvider.override(({ breakpoints, palette }) => ({
14
14
  padding: undefined,
15
15
  },
16
16
  color: palette.grey.dark,
17
- '&:not(:last-child)': {
18
- marginRight: '2em',
19
- },
20
17
  [breakpoints.up('md')]: {
21
18
  minWidth: 'auto',
22
19
  fontSize: '1rem',
@@ -41,10 +38,47 @@ PicassoProvider.override(({ breakpoints, palette }) => ({
41
38
  },
42
39
  },
43
40
  disabled: {},
44
- wrapper: {
45
- width: 'auto',
46
- },
47
41
  },
48
42
  }));
49
- export default () => createStyles({});
43
+ export default ({ sizes, palette, shadows }) => createStyles({
44
+ horizontal: {
45
+ '&:not(:last-child)': {
46
+ marginRight: '2em',
47
+ },
48
+ },
49
+ vertical: {
50
+ borderRadius: `${sizes.borderRadius.medium} 0 0 ${sizes.borderRadius.medium}`,
51
+ margin: '0.5em 0',
52
+ overflow: 'hidden',
53
+ padding: '0.5625em 0 0.5625em',
54
+ '&:first-child': {
55
+ marginTop: '0.125em',
56
+ },
57
+ '&:last-child': {
58
+ marginBottom: '0.125em',
59
+ },
60
+ '&:hover:not($selected)': {
61
+ backgroundColor: palette.grey.lighter2,
62
+ },
63
+ '& $wrapper': {
64
+ marginLeft: '1em',
65
+ marginRight: '2em',
66
+ },
67
+ },
68
+ selected: {
69
+ '&$vertical': {
70
+ boxShadow: shadows[1],
71
+ '&::before': {
72
+ content: '""',
73
+ background: palette.blue.main,
74
+ position: 'absolute',
75
+ left: 0,
76
+ top: 0,
77
+ bottom: 0,
78
+ width: '3px',
79
+ },
80
+ },
81
+ },
82
+ wrapper: {},
83
+ });
50
84
  //# sourceMappingURL=styles.js.map
package/Tab/styles.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/Tab/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAE1D,eAAe,CAAC,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,EAAS,EAAE,EAAE,CAAC,CAAC;IAC7D,MAAM,EAAE;QACN,IAAI,EAAE;YACJ,SAAS,EAAE,CAAC;YACZ,QAAQ,EAAE,CAAC;YACX,UAAU,EAAE,CAAC;YACb,aAAa,EAAE,MAAM;YACrB,OAAO,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;YACxC,QAAQ,EAAE,SAAS;YAEnB,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE;gBACtB,OAAO,EAAE,SAAS;aACnB;YAED,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI;YAExB,oBAAoB,EAAE;gBACpB,WAAW,EAAE,KAAK;aACnB;YAED,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE;gBACtB,QAAQ,EAAE,MAAM;gBAChB,QAAQ,EAAE,MAAM;aACjB;SACF;QACD,SAAS,EAAE;YACT,SAAS,EAAE,CAAC;YACZ,YAAY,EAAE,QAAQ;YACtB,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC;YACtB,4BAA4B,EAAE;gBAC5B,QAAQ,EAAE,UAAU;gBACpB,KAAK,EAAE,CAAC;gBACR,YAAY,EAAE,CAAC;aAChB;SACF;QACD,QAAQ,EAAE;YACR,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK;SAC5B;QACD,gBAAgB,EAAE;YAChB,YAAY,EAAE;gBACZ,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI;aACzB;SACF;QACD,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE;YACP,KAAK,EAAE,MAAM;SACd;KACF;CACF,CAAC,CAAC,CAAA;AAEH,eAAe,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA"}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/Tab/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAE1D,eAAe,CAAC,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,EAAS,EAAE,EAAE,CAAC,CAAC;IAC7D,MAAM,EAAE;QACN,IAAI,EAAE;YACJ,SAAS,EAAE,CAAC;YACZ,QAAQ,EAAE,CAAC;YACX,UAAU,EAAE,CAAC;YACb,aAAa,EAAE,MAAM;YACrB,OAAO,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;YACxC,QAAQ,EAAE,SAAS;YAEnB,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE;gBACtB,OAAO,EAAE,SAAS;aACnB;YAED,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI;YAExB,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE;gBACtB,QAAQ,EAAE,MAAM;gBAChB,QAAQ,EAAE,MAAM;aACjB;SACF;QACD,SAAS,EAAE;YACT,SAAS,EAAE,CAAC;YACZ,YAAY,EAAE,QAAQ;YACtB,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC;YACtB,4BAA4B,EAAE;gBAC5B,QAAQ,EAAE,UAAU;gBACpB,KAAK,EAAE,CAAC;gBACR,YAAY,EAAE,CAAC;aAChB;SACF;QACD,QAAQ,EAAE;YACR,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK;SAC5B;QACD,gBAAgB,EAAE;YAChB,YAAY,EAAE;gBACZ,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI;aACzB;SACF;QACD,QAAQ,EAAE,EAAE;KACb;CACF,CAAC,CAAC,CAAA;AAEH,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAS,EAAE,EAAE,CACpD,YAAY,CAAC;IACX,UAAU,EAAE;QACV,oBAAoB,EAAE;YACpB,WAAW,EAAE,KAAK;SACnB;KACF;IACD,QAAQ,EAAE;QACR,YAAY,EAAE,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,QAAQ,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE;QAC7E,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,qBAAqB;QAE9B,eAAe,EAAE;YACf,SAAS,EAAE,SAAS;SACrB;QAED,cAAc,EAAE;YACd,YAAY,EAAE,SAAS;SACxB;QAED,wBAAwB,EAAE;YACxB,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ;SACvC;QAED,YAAY,EAAE;YACZ,UAAU,EAAE,KAAK;YACjB,WAAW,EAAE,KAAK;SACnB;KACF;IACD,QAAQ,EAAE;QACR,YAAY,EAAE;YACZ,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;YAErB,WAAW,EAAE;gBACX,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI;gBAC7B,QAAQ,EAAE,UAAU;gBACpB,IAAI,EAAE,CAAC;gBACP,GAAG,EAAE,CAAC;gBACN,MAAM,EAAE,CAAC;gBACT,KAAK,EAAE,KAAK;aACb;SACF;KACF;IACD,OAAO,EAAE,EAAE;CACZ,CAAC,CAAA"}
package/Tabs/Tabs.d.ts CHANGED
@@ -8,6 +8,9 @@ export interface Props extends BaseProps, Omit<ButtonOrAnchorProps, 'onChange'>
8
8
  onChange?: (event: React.ChangeEvent<{}>, value: number) => void;
9
9
  /** The value of the currently selected Tab. If you don't want any selected Tab, you can set this property to false. */
10
10
  value: TabsProps['value'];
11
+ /** The tabs orientation (layout flow direction). */
12
+ orientation?: 'horizontal' | 'vertical';
11
13
  }
14
+ export declare const TabsOrientationContext: React.Context<"horizontal" | "vertical">;
12
15
  export declare const Tabs: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLButtonElement>>;
13
16
  export default Tabs;
package/Tabs/Tabs.js CHANGED
@@ -18,13 +18,18 @@ import useTabAction from './use-tab-action';
18
18
  const useStyles = makeStyles(styles, {
19
19
  name: 'Tabs',
20
20
  });
21
+ export const TabsOrientationContext = React.createContext('horizontal');
21
22
  // eslint-disable-next-line react/display-name
22
23
  export const Tabs = forwardRef(function Tabs(props, ref) {
23
- const { children, onChange, value } = props, rest = __rest(props, ["children", "onChange", "value"]);
24
- const classes = useStyles();
24
+ const { children, orientation, onChange, value } = props, rest = __rest(props, ["children", "orientation", "onChange", "value"]);
25
+ const classes = useStyles(props);
25
26
  const action = useTabAction();
26
- return (React.createElement(MUITabs, Object.assign({}, rest, { classes: classes, ref: ref, onChange: onChange, value: value, variant: 'scrollable', action: action, scrollButtons: 'auto', ScrollButtonComponent: TabScrollButton }), children));
27
+ return (React.createElement(TabsOrientationContext.Provider, { value: orientation },
28
+ React.createElement(MUITabs, Object.assign({}, rest, { classes: { root: classes[orientation] }, ref: ref, onChange: onChange, value: value, variant: 'scrollable', action: action, scrollButtons: 'auto', ScrollButtonComponent: TabScrollButton, orientation: orientation }), children)));
27
29
  });
28
30
  Tabs.displayName = 'Tabs';
31
+ Tabs.defaultProps = {
32
+ orientation: 'horizontal',
33
+ };
29
34
  export default Tabs;
30
35
  //# sourceMappingURL=Tabs.js.map
package/Tabs/Tabs.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.js","sourceRoot":"","sources":["../../src/Tabs/Tabs.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAa,MAAM,OAAO,CAAA;AACpD,OAAO,EAAE,UAAU,EAAS,MAAM,0BAA0B,CAAA;AAC5D,OAAO,OAAsB,MAAM,wBAAwB,CAAA;AAG3D,OAAO,eAAe,MAAM,oBAAoB,CAAA;AAChD,OAAO,MAAM,MAAM,UAAU,CAAA;AAC7B,OAAO,YAAY,MAAM,kBAAkB,CAAA;AAe3C,MAAM,SAAS,GAAG,UAAU,CAAQ,MAAM,EAAE;IAC1C,IAAI,EAAE,MAAM;CACb,CAAC,CAAA;AAEF,8CAA8C;AAC9C,MAAM,CAAC,MAAM,IAAI,GAAG,UAAU,CAA2B,SAAS,IAAI,CACpE,KAAK,EACL,GAAG;IAEH,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,KAAc,KAAK,EAAd,IAAI,UAAK,KAAK,EAA9C,iCAAsC,CAAQ,CAAA;IACpD,MAAM,OAAO,GAAG,SAAS,EAAE,CAAA;IAC3B,MAAM,MAAM,GAAG,YAAY,EAAE,CAAA;IAE7B,OAAO,CACL,oBAAC,OAAO,oBACF,IAAI,IACR,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAC,YAAY,EACpB,MAAM,EAAE,MAAM,EACd,aAAa,EAAC,MAAM,EACpB,qBAAqB,EAAE,eAAe,KAErC,QAAQ,CACD,CACX,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,WAAW,GAAG,MAAM,CAAA;AAEzB,eAAe,IAAI,CAAA"}
1
+ {"version":3,"file":"Tabs.js","sourceRoot":"","sources":["../../src/Tabs/Tabs.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAa,MAAM,OAAO,CAAA;AACpD,OAAO,EAAE,UAAU,EAAS,MAAM,0BAA0B,CAAA;AAC5D,OAAO,OAAsB,MAAM,wBAAwB,CAAA;AAG3D,OAAO,eAAe,MAAM,oBAAoB,CAAA;AAChD,OAAO,MAAM,MAAM,UAAU,CAAA;AAC7B,OAAO,YAAY,MAAM,kBAAkB,CAAA;AAkB3C,MAAM,SAAS,GAAG,UAAU,CAAQ,MAAM,EAAE;IAC1C,IAAI,EAAE,MAAM;CACb,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,CAAC,aAAa,CAEvD,YAAY,CAAC,CAAA;AAEf,8CAA8C;AAC9C,MAAM,CAAC,MAAM,IAAI,GAAG,UAAU,CAA2B,SAAS,IAAI,CACpE,KAAK,EACL,GAAG;IAEH,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,KAAc,KAAK,EAAd,IAAI,UAAK,KAAK,EAA3D,gDAAmD,CAAQ,CAAA;IACjE,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;IAChC,MAAM,MAAM,GAAG,YAAY,EAAE,CAAA;IAE7B,OAAO,CACL,oBAAC,sBAAsB,CAAC,QAAQ,IAAC,KAAK,EAAE,WAAY;QAClD,oBAAC,OAAO,oBACF,IAAI,IACR,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,WAAY,CAAC,EAAE,EACxC,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAC,YAAY,EACpB,MAAM,EAAE,MAAM,EACd,aAAa,EAAC,MAAM,EACpB,qBAAqB,EAAE,eAAe,EACtC,WAAW,EAAE,WAAW,KAEvB,QAAQ,CACD,CACsB,CACnC,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,WAAW,GAAG,MAAM,CAAA;AACzB,IAAI,CAAC,YAAY,GAAG;IAClB,WAAW,EAAE,YAAY;CAC1B,CAAA;AAED,eAAe,IAAI,CAAA"}
package/Tabs/styles.d.ts CHANGED
@@ -1,2 +1,3 @@
1
- declare const _default: () => import("@material-ui/styles").StyleRules<{}, never>;
1
+ import { Theme } from '@material-ui/core/styles';
2
+ declare const _default: ({ palette }: Theme) => import("@material-ui/styles").StyleRules<{}, "horizontal" | "vertical">;
2
3
  export default _default;
package/Tabs/styles.js CHANGED
@@ -5,15 +5,10 @@ PicassoProvider.override(({ palette }) => ({
5
5
  root: {
6
6
  position: 'relative',
7
7
  minHeight: 0,
8
- '&::after': {
9
- position: 'absolute',
10
- content: '""',
11
- bottom: 0,
12
- left: 0,
13
- right: 0,
14
- height: 1,
15
- backgroundColor: palette.grey.main,
16
- zIndex: 0,
8
+ },
9
+ vertical: {
10
+ '& $indicator': {
11
+ display: 'none',
17
12
  },
18
13
  },
19
14
  indicator: {
@@ -22,5 +17,19 @@ PicassoProvider.override(({ palette }) => ({
22
17
  },
23
18
  },
24
19
  }));
25
- export default () => createStyles({});
20
+ export default ({ palette }) => createStyles({
21
+ horizontal: {
22
+ '&::after': {
23
+ position: 'absolute',
24
+ content: '""',
25
+ bottom: 0,
26
+ left: 0,
27
+ right: 0,
28
+ height: 1,
29
+ backgroundColor: palette.grey.main,
30
+ zIndex: 0,
31
+ },
32
+ },
33
+ vertical: {},
34
+ });
26
35
  //# sourceMappingURL=styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/Tabs/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAE1D,eAAe,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAS,EAAE,EAAE,CAAC,CAAC;IAChD,OAAO,EAAE;QACP,IAAI,EAAE;YACJ,QAAQ,EAAE,UAAU;YACpB,SAAS,EAAE,CAAC;YAEZ,UAAU,EAAE;gBACV,QAAQ,EAAE,UAAU;gBACpB,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,CAAC;gBACT,IAAI,EAAE,CAAC;gBACP,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,CAAC;gBACT,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI;gBAClC,MAAM,EAAE,CAAC;aACV;SACF;QACD,SAAS,EAAE;YACT,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI;YAClC,MAAM,EAAE,CAAC;SACV;KACF;CACF,CAAC,CAAC,CAAA;AAEH,eAAe,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA"}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/Tabs/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAE1D,eAAe,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAS,EAAE,EAAE,CAAC,CAAC;IAChD,OAAO,EAAE;QACP,IAAI,EAAE;YACJ,QAAQ,EAAE,UAAU;YACpB,SAAS,EAAE,CAAC;SACb;QACD,QAAQ,EAAE;YACR,cAAc,EAAE;gBACd,OAAO,EAAE,MAAM;aAChB;SACF;QACD,SAAS,EAAE;YACT,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI;YAClC,MAAM,EAAE,CAAC;SACV;KACF;CACF,CAAC,CAAC,CAAA;AAEH,eAAe,CAAC,EAAE,OAAO,EAAS,EAAE,EAAE,CACpC,YAAY,CAAC;IACX,UAAU,EAAE;QACV,UAAU,EAAE;YACV,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,CAAC;YACT,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI;YAClC,MAAM,EAAE,CAAC;SACV;KACF;IACD,QAAQ,EAAE,EAAE;CACb,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@toptal/picasso",
3
- "version": "26.15.0",
3
+ "version": "26.15.2",
4
4
  "description": "Toptal UI components library",
5
5
  "publishConfig": {
6
6
  "access": "public",
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,94 @@
1
+ import { htmlToHast } from '..';
2
+ describe('html-to-hast', () => {
3
+ describe('valid HTML string', () => {
4
+ it('returns valid Picasso components', () => {
5
+ const html = '<h3>heading</h3><p>normal</p>';
6
+ const result = htmlToHast(html);
7
+ expect(result).toEqual({
8
+ type: 'root',
9
+ children: [
10
+ {
11
+ type: 'element',
12
+ tagName: 'h3',
13
+ properties: {},
14
+ children: [{ type: 'text', value: 'heading' }],
15
+ },
16
+ {
17
+ type: 'element',
18
+ tagName: 'p',
19
+ properties: {},
20
+ children: [{ type: 'text', value: 'normal' }],
21
+ },
22
+ ],
23
+ });
24
+ });
25
+ it('strips script tags', () => {
26
+ const html = `
27
+ <script>alert(2)</script>
28
+ <p><em>Foo</em></p>`;
29
+ const ast = htmlToHast(html);
30
+ expect(ast).toEqual({
31
+ type: 'root',
32
+ children: [
33
+ {
34
+ type: 'element',
35
+ tagName: 'p',
36
+ properties: {},
37
+ children: [
38
+ {
39
+ type: 'element',
40
+ tagName: 'em',
41
+ properties: {},
42
+ children: [{ type: 'text', value: 'Foo' }],
43
+ },
44
+ ],
45
+ },
46
+ ],
47
+ });
48
+ });
49
+ });
50
+ describe('when parsing HTML with a single container', () => {
51
+ it('returns an single starting node AST for a single paragraph', () => {
52
+ const html = '<p>Container</p>';
53
+ expect(htmlToHast(html)).toEqual({
54
+ type: 'root',
55
+ children: [
56
+ {
57
+ type: 'element',
58
+ tagName: 'p',
59
+ properties: {},
60
+ children: [{ type: 'text', value: 'Container' }],
61
+ },
62
+ ],
63
+ });
64
+ });
65
+ it('returns an single starting node AST for lists', () => {
66
+ const html = '<ul><li>Item 1</li><li>Item 2</li></ul>';
67
+ expect(htmlToHast(html)).toEqual({
68
+ type: 'root',
69
+ children: [
70
+ {
71
+ type: 'element',
72
+ tagName: 'ul',
73
+ properties: {},
74
+ children: [
75
+ {
76
+ type: 'element',
77
+ tagName: 'li',
78
+ properties: {},
79
+ children: [{ type: 'text', value: 'Item 1' }],
80
+ },
81
+ {
82
+ type: 'element',
83
+ tagName: 'li',
84
+ properties: {},
85
+ children: [{ type: 'text', value: 'Item 2' }],
86
+ },
87
+ ],
88
+ },
89
+ ],
90
+ });
91
+ });
92
+ });
93
+ });
94
+ //# sourceMappingURL=html-to-hast.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html-to-hast.test.js","sourceRoot":"","sources":["../../../src/utils/__tests__/html-to-hast.test.tsx"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@ const htmlToAst = (html) => {
18
18
  const domHast = hastSanitize(hastFromDom(dom.body), hastSanitizeSchema);
19
19
  const ast = {
20
20
  type: 'root',
21
- children: domHast.children,
21
+ children: domHast.type === 'root' ? domHast.children : [domHast],
22
22
  };
23
23
  return ast;
24
24
  };
@@ -1 +1 @@
1
- {"version":3,"file":"html-to-hast.js","sourceRoot":"","sources":["../../src/utils/html-to-hast.ts"],"names":[],"mappings":"AAAA,OAAO,YAAwB,MAAM,oBAAoB,CAAA;AACzD,OAAO,WAAW,MAAM,oBAAoB,CAAA;AAI5C,MAAM,CAAC,MAAM,kBAAkB,GAAW;IACxC,aAAa,EAAE,KAAK;IACpB,aAAa,EAAE,KAAK;IACpB,SAAS,EAAE;QACT,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;KACjB;IACD,UAAU,EAAE;QACV,GAAG,EAAE,EAAE;QACP,CAAC,EAAE,CAAC,MAAM,CAAC;KACZ;IACD,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC;IAClE,KAAK,EAAE,CAAC,QAAQ,CAAC;CAClB,CAAA;AAED,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAE;IACjC,MAAM,GAAG,GAAG,IAAI,SAAS,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;IAC9D,MAAM,OAAO,GAAG,YAAY,CAC1B,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EACrB,kBAAkB,CACJ,CAAA;IAEhB,MAAM,GAAG,GAAY;QACnB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAA;IAED,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAED,eAAe,SAAS,CAAA"}
1
+ {"version":3,"file":"html-to-hast.js","sourceRoot":"","sources":["../../src/utils/html-to-hast.ts"],"names":[],"mappings":"AAAA,OAAO,YAAwB,MAAM,oBAAoB,CAAA;AACzD,OAAO,WAAW,MAAM,oBAAoB,CAAA;AAI5C,MAAM,CAAC,MAAM,kBAAkB,GAAW;IACxC,aAAa,EAAE,KAAK;IACpB,aAAa,EAAE,KAAK;IACpB,SAAS,EAAE;QACT,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;KACjB;IACD,UAAU,EAAE;QACV,GAAG,EAAE,EAAE;QACP,CAAC,EAAE,CAAC,MAAM,CAAC;KACZ;IACD,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC;IAClE,KAAK,EAAE,CAAC,QAAQ,CAAC;CAClB,CAAA;AAED,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAE;IACjC,MAAM,GAAG,GAAG,IAAI,SAAS,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;IAC9D,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAEtD,CAAA;IAEhB,MAAM,GAAG,GAAY;QACnB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;KACjE,CAAA;IAED,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAED,eAAe,SAAS,CAAA"}