@toptal/picasso-button 1.0.10-alpha-FX-5195-fix-update-problems-bc0b556bf.16 → 1.0.10-alpha-feature-migrate-buttons-876f8c430.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/dist-package/src/Button/Button.d.ts.map +1 -1
  2. package/dist-package/src/Button/Button.js +39 -47
  3. package/dist-package/src/Button/Button.js.map +1 -1
  4. package/dist-package/src/Button/styles.d.ts +19 -45
  5. package/dist-package/src/Button/styles.d.ts.map +1 -1
  6. package/dist-package/src/Button/styles.js +160 -178
  7. package/dist-package/src/Button/styles.js.map +1 -1
  8. package/dist-package/src/ButtonAction/ButtonAction.d.ts.map +1 -1
  9. package/dist-package/src/ButtonAction/ButtonAction.js +20 -28
  10. package/dist-package/src/ButtonAction/ButtonAction.js.map +1 -1
  11. package/dist-package/src/ButtonAction/styles.d.ts +11 -3
  12. package/dist-package/src/ButtonAction/styles.d.ts.map +1 -1
  13. package/dist-package/src/ButtonAction/styles.js +36 -55
  14. package/dist-package/src/ButtonAction/styles.js.map +1 -1
  15. package/dist-package/src/ButtonBase/ButtonBase.d.ts +29 -0
  16. package/dist-package/src/ButtonBase/ButtonBase.d.ts.map +1 -0
  17. package/dist-package/src/ButtonBase/ButtonBase.js +78 -0
  18. package/dist-package/src/ButtonBase/ButtonBase.js.map +1 -0
  19. package/dist-package/src/ButtonBase/index.d.ts +5 -0
  20. package/dist-package/src/ButtonBase/index.d.ts.map +1 -0
  21. package/dist-package/src/ButtonBase/index.js +2 -0
  22. package/dist-package/src/ButtonBase/index.js.map +1 -0
  23. package/dist-package/src/ButtonBase/styles.d.ts +6 -0
  24. package/dist-package/src/ButtonBase/styles.d.ts.map +1 -0
  25. package/dist-package/src/ButtonBase/styles.js +29 -0
  26. package/dist-package/src/ButtonBase/styles.js.map +1 -0
  27. package/dist-package/src/ButtonCircular/ButtonCircular.d.ts.map +1 -1
  28. package/dist-package/src/ButtonCircular/ButtonCircular.js +12 -26
  29. package/dist-package/src/ButtonCircular/ButtonCircular.js.map +1 -1
  30. package/dist-package/src/ButtonCircular/styles.d.ts +15 -3
  31. package/dist-package/src/ButtonCircular/styles.d.ts.map +1 -1
  32. package/dist-package/src/ButtonCircular/styles.js +92 -57
  33. package/dist-package/src/ButtonCircular/styles.js.map +1 -1
  34. package/dist-package/src/ButtonCompound/index.d.ts +1 -1
  35. package/dist-package/src/ButtonControlLabel/styles.d.ts +1 -1
  36. package/dist-package/src/ButtonGroup/ButtonGroup.d.ts +1 -1
  37. package/dist-package/src/ButtonGroup/ButtonGroup.d.ts.map +1 -1
  38. package/dist-package/src/ButtonGroup/ButtonGroup.js +5 -27
  39. package/dist-package/src/ButtonGroup/ButtonGroup.js.map +1 -1
  40. package/dist-package/src/ButtonGroup/styles.d.ts +1 -2
  41. package/dist-package/src/ButtonGroup/styles.d.ts.map +1 -1
  42. package/dist-package/src/ButtonGroup/styles.js +20 -47
  43. package/dist-package/src/ButtonGroup/styles.js.map +1 -1
  44. package/dist-package/src/ButtonGroupItem/ButtonGroupItem.d.ts +1 -1
  45. package/dist-package/src/ButtonGroupItem/ButtonGroupItem.d.ts.map +1 -1
  46. package/dist-package/src/ButtonGroupItem/ButtonGroupItem.js +17 -12
  47. package/dist-package/src/ButtonGroupItem/ButtonGroupItem.js.map +1 -1
  48. package/dist-package/src/ButtonGroupItem/styles.d.ts +13 -3
  49. package/dist-package/src/ButtonGroupItem/styles.d.ts.map +1 -1
  50. package/dist-package/src/ButtonGroupItem/styles.js +39 -17
  51. package/dist-package/src/ButtonGroupItem/styles.js.map +1 -1
  52. package/dist-package/src/ButtonSplit/ButtonSplit.d.ts.map +1 -1
  53. package/dist-package/src/ButtonSplit/ButtonSplit.js +28 -24
  54. package/dist-package/src/ButtonSplit/ButtonSplit.js.map +1 -1
  55. package/dist-package/src/ButtonSplit/styles.d.ts +9 -3
  56. package/dist-package/src/ButtonSplit/styles.d.ts.map +1 -1
  57. package/dist-package/src/ButtonSplit/styles.js +13 -50
  58. package/dist-package/src/ButtonSplit/styles.js.map +1 -1
  59. package/package.json +19 -15
  60. package/src/Button/Button.tsx +69 -100
  61. package/src/Button/__snapshots__/test.tsx.snap +6 -5
  62. package/src/Button/styles.ts +213 -221
  63. package/src/Button/test.tsx +3 -1
  64. package/src/ButtonAction/ButtonAction.tsx +36 -48
  65. package/src/ButtonAction/styles.ts +57 -57
  66. package/src/ButtonBase/ButtonBase.tsx +182 -0
  67. package/src/ButtonBase/index.ts +5 -0
  68. package/src/ButtonBase/styles.ts +36 -0
  69. package/src/ButtonCheckbox/__snapshots__/test.tsx.snap +3 -3
  70. package/src/ButtonCircular/ButtonCircular.tsx +22 -37
  71. package/src/ButtonCircular/styles.ts +127 -75
  72. package/src/ButtonGroup/ButtonGroup.tsx +9 -44
  73. package/src/ButtonGroup/__snapshots__/test.tsx.snap +7 -7
  74. package/src/ButtonGroup/styles.ts +21 -63
  75. package/src/ButtonGroupItem/ButtonGroupItem.tsx +24 -15
  76. package/src/ButtonGroupItem/styles.ts +62 -28
  77. package/src/ButtonRadio/__snapshots__/test.tsx.snap +3 -3
  78. package/src/ButtonSplit/ButtonSplit.tsx +46 -42
  79. package/src/ButtonSplit/__snapshots__/test.tsx.snap +9 -9
  80. package/src/ButtonSplit/styles.ts +37 -56
@@ -1,58 +1,93 @@
1
- import { createStyles } from '@material-ui/core/styles';
2
- import { alpha, outline } from '@toptal/picasso-shared';
3
- import { screens } from '@toptal/picasso-provider';
4
- export default ({ palette }) => createStyles({
5
- root: {
6
- borderRadius: '50%',
7
- padding: 0,
8
- minWidth: 'initial',
9
- width: '1.5em',
10
- },
11
- primary: {},
12
- responsive: {
13
- width: '2.5em',
14
- height: '2.5em',
15
- [screens('xl')]: {
16
- width: '1.5em',
17
- height: '1.5em',
18
- },
19
- },
20
- flat: {
21
- color: palette.grey.dark,
22
- backgroundColor: 'initial',
23
- '&:hover, &$hovered': {
24
- backgroundColor: palette.grey.lighter2,
25
- },
26
- '&:active, &$active': {
27
- backgroundColor: palette.grey.light2,
28
- },
29
- '&$disabled': {
30
- opacity: 0.48,
31
- color: palette.grey.dark,
32
- backgroundColor: 'initial',
33
- },
34
- border: 'none',
35
- },
36
- transparent: {
37
- border: 'none',
38
- color: palette.common.white,
39
- backgroundColor: 'initial',
40
- '&$focusVisible, &$focused': Object.assign({}, outline(palette.common.white)),
41
- '&:hover, &$hovered': {
42
- backgroundColor: alpha(palette.common.white, 0.08),
43
- },
44
- '&:active, &$active': {
45
- backgroundColor: alpha(palette.common.white, 0.16),
46
- },
47
- '&$disabled': {
48
- color: alpha(palette.common.white, 0.48),
49
- backgroundColor: 'initial',
50
- },
51
- },
52
- disabled: {},
53
- hovered: {},
54
- focused: {},
55
- active: {},
56
- focusVisible: {},
57
- });
1
+ export const createRootClassNames = ({ responsive, }) => {
2
+ const classNames = ['rounded-full', 'p-0'];
3
+ if (responsive) {
4
+ classNames.push('w-[2.5em] h-[2.5em] xl:w-[1.5em] xl:h-[1.5em]');
5
+ }
6
+ else {
7
+ classNames.push('w-[1.5em] h-[1.5em]');
8
+ }
9
+ return classNames;
10
+ };
11
+ export const createVariantClassNames = (variant, { disabled, focused, hovered, active, }) => {
12
+ const variantClassNames = [];
13
+ switch (variant) {
14
+ case 'primary':
15
+ variantClassNames.push('border-none');
16
+ variantClassNames.push('text-white');
17
+ variantClassNames.push('visited:text-white');
18
+ if (disabled) {
19
+ variantClassNames.push('bg-gray-400');
20
+ }
21
+ else {
22
+ variantClassNames.push('hover:bg-[#4269D6]');
23
+ variantClassNames.push('active:bg-[#1A41AB]');
24
+ variantClassNames.push('focus-visible:shadow-[0_0_0_3px_rgba(32,78,207,0.48)]');
25
+ if (focused) {
26
+ variantClassNames.push('shadow-[0_0_0_3px_rgba(32,78,207,0.48)]');
27
+ }
28
+ if (hovered) {
29
+ variantClassNames.push('bg-[#4269D6]');
30
+ }
31
+ else if (active) {
32
+ variantClassNames.push('bg-[#1A41AB]');
33
+ }
34
+ else {
35
+ variantClassNames.push('bg-blue-500');
36
+ }
37
+ }
38
+ break;
39
+ case 'flat':
40
+ variantClassNames.push('border-none');
41
+ variantClassNames.push('text-graphite-700');
42
+ if (disabled) {
43
+ variantClassNames.push('text-graphite-700');
44
+ variantClassNames.push('opacity-[0.48]');
45
+ variantClassNames.push('bg-transparent');
46
+ }
47
+ else {
48
+ variantClassNames.push('hover:bg-gray-200');
49
+ variantClassNames.push('active:bg-gray-400');
50
+ variantClassNames.push('focus-visible:shadow-[0_0_0_3px_rgba(32,78,207,0.48)]');
51
+ if (focused) {
52
+ variantClassNames.push('shadow-[0_0_0_3px_rgba(32,78,207,0.48)]');
53
+ }
54
+ if (hovered) {
55
+ variantClassNames.push('bg-gray-200');
56
+ }
57
+ else if (active) {
58
+ variantClassNames.push('bg-gray-400');
59
+ }
60
+ else {
61
+ variantClassNames.push('bg-transparent');
62
+ }
63
+ }
64
+ break;
65
+ case 'transparent':
66
+ variantClassNames.push('border-none');
67
+ variantClassNames.push('text-white');
68
+ if (disabled) {
69
+ variantClassNames.push('text-white/[0.48]');
70
+ variantClassNames.push('bg-transparent');
71
+ }
72
+ else {
73
+ variantClassNames.push('hover:bg-white/[0.08]');
74
+ variantClassNames.push('active:bg-white/[0.16]');
75
+ variantClassNames.push('focus-visible:shadow-[0_0_0_3px_rgba(255,255,255,0.48)]');
76
+ if (focused) {
77
+ variantClassNames.push('shadow-[0_0_0_3px_rgba(255,255,255,0.48)]');
78
+ }
79
+ if (hovered) {
80
+ variantClassNames.push('bg-white/[0.08]');
81
+ }
82
+ else if (active) {
83
+ variantClassNames.push('bg-white/[0.16]');
84
+ }
85
+ else {
86
+ variantClassNames.push('bg-transparent');
87
+ }
88
+ }
89
+ break;
90
+ }
91
+ return variantClassNames;
92
+ };
58
93
  //# sourceMappingURL=styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/ButtonCircular/styles.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAElD,eAAe,CAAC,EAAE,OAAO,EAAS,EAAE,EAAE,CACpC,YAAY,CAAC;IACX,IAAI,EAAE;QACJ,YAAY,EAAE,KAAK;QACnB,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,OAAO;KACf;IAED,OAAO,EAAE,EAAE;IAEX,UAAU,EAAE;QACV,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,OAAO;QACf,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE;YACf,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,OAAO;SAChB;KACF;IAED,IAAI,EAAE;QACJ,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI;QACxB,eAAe,EAAE,SAAS;QAE1B,oBAAoB,EAAE;YACpB,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ;SACvC;QAED,oBAAoB,EAAE;YACpB,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM;SACrC;QAED,YAAY,EAAE;YACZ,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI;YACxB,eAAe,EAAE,SAAS;SAC3B;QAED,MAAM,EAAE,MAAM;KACf;IAED,WAAW,EAAE;QACX,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK;QAC3B,eAAe,EAAE,SAAS;QAE1B,2BAA2B,oBACtB,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CACjC;QAED,oBAAoB,EAAE;YACpB,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC;SACnD;QAED,oBAAoB,EAAE;YACpB,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC;SACnD;QAED,YAAY,EAAE;YACZ,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC;YACxC,eAAe,EAAE,SAAS;SAC3B;KACF;IAED,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,MAAM,EAAE,EAAE;IACV,YAAY,EAAE,EAAE;CACjB,CAAC,CAAA"}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/ButtonCircular/styles.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  export declare const ButtonCompound: import("packages/shared/dist-package/src").OverridableComponent<import("../Button").Props> & {
3
3
  Group: import("react").ForwardRefExoticComponent<import("../ButtonGroup/ButtonGroup").Props & import("react").RefAttributes<HTMLDivElement>> & {
4
- Item: (props: import("../ButtonGroupItem/ButtonGroupItem").Props) => JSX.Element;
4
+ Item: ({ active, disabled, focused, hovered, className, ...rest }: import("../ButtonGroupItem/ButtonGroupItem").Props) => JSX.Element;
5
5
  };
6
6
  Circular: import("packages/shared/dist-package/src").OverridableComponent<import("../ButtonCircular/ButtonCircular").Props>;
7
7
  Action: import("packages/shared/dist-package/src").OverridableComponent<import("../ButtonAction/ButtonAction").Props>;
@@ -1,3 +1,3 @@
1
- declare const _default: () => import("@material-ui/styles").StyleRules<{}, "root" | "content" | "medium" | "large" | "small">;
1
+ declare const _default: () => import("@material-ui/styles").StyleRules<{}, "small" | "content" | "root" | "medium" | "large">;
2
2
  export default _default;
3
3
  //# sourceMappingURL=styles.d.ts.map
@@ -7,7 +7,7 @@ export interface Props extends BaseProps, HTMLAttributes<HTMLDivElement> {
7
7
  }
8
8
  export declare const ButtonGroup: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLDivElement>>;
9
9
  declare const _default: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLDivElement>> & {
10
- Item: (props: import("../ButtonGroupItem/ButtonGroupItem").Props) => JSX.Element;
10
+ Item: ({ active, disabled, focused, hovered, className, ...rest }: import("../ButtonGroupItem/ButtonGroupItem").Props) => JSX.Element;
11
11
  };
12
12
  export default _default;
13
13
  //# sourceMappingURL=ButtonGroup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonGroup.d.ts","sourceRoot":"","sources":["../../../src/ButtonGroup/ButtonGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAe,MAAM,OAAO,CAAA;AACnE,OAAO,KAA8B,MAAM,OAAO,CAAA;AAIlD,OAAO,KAAK,EAAE,SAAS,EAAW,MAAM,wBAAwB,CAAA;AAOhE,MAAM,WAAW,KAAM,SAAQ,SAAS,EAAE,cAAc,CAAC,cAAc,CAAC;IACtE,4EAA4E;IAC5E,QAAQ,EAAE,SAAS,CAAA;CACpB;AAoBD,eAAO,MAAM,WAAW,8EAyBvB,CAAA;;;;AAMD,wBAAoE"}
1
+ {"version":3,"file":"ButtonGroup.d.ts","sourceRoot":"","sources":["../../../src/ButtonGroup/ButtonGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AACtD,OAAO,KAAqB,MAAM,OAAO,CAAA;AAEzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAKvD,MAAM,WAAW,KAAM,SAAQ,SAAS,EAAE,cAAc,CAAC,cAAc,CAAC;IACtE,4EAA4E;IAC5E,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED,eAAO,MAAM,WAAW,8EAYvB,CAAA;;;;AAMD,wBAAoE"}
@@ -9,36 +9,14 @@ var __rest = (this && this.__rest) || function (s, e) {
9
9
  }
10
10
  return t;
11
11
  };
12
- import React, { forwardRef, useMemo } from 'react';
13
- import { makeStyles } from '@material-ui/core/styles';
14
- import cx from 'classnames';
15
- import { addClassesToChildren } from '@toptal/picasso-shared';
16
- import { Button } from '../Button';
12
+ import React, { forwardRef } from 'react';
13
+ import { twMerge } from 'tailwind-merge';
17
14
  import { ButtonGroupItem } from '../ButtonGroupItem';
18
- import styles from './styles';
19
- const useStyles = makeStyles(styles, {
20
- name: 'PicassoButtonGroup',
21
- });
22
- const getChildrenClassesConfig = (classes) => [
23
- [
24
- Button,
25
- {
26
- root: classes.button,
27
- active: classes.active,
28
- focused: classes.focused,
29
- hovered: classes.hovered,
30
- },
31
- ],
32
- ];
15
+ import { createRootClassNames } from './styles';
33
16
  export const ButtonGroup = forwardRef(function ButtonGroup(props, ref) {
34
17
  const { children, className, style } = props, rest = __rest(props, ["children", "className", "style"]);
35
- const classes = useStyles();
36
- const childrenWithClasses = useMemo(() => addClassesToChildren({
37
- children,
38
- classes,
39
- config: getChildrenClassesConfig,
40
- }), [children, classes]);
41
- return (React.createElement("div", Object.assign({}, rest, { ref: ref, className: cx(classes.root, className), style: style }), childrenWithClasses));
18
+ const finalClassName = twMerge(createRootClassNames(), className);
19
+ return (React.createElement("div", Object.assign({}, rest, { ref: ref, className: finalClassName, style: style }), children));
42
20
  });
43
21
  ButtonGroup.defaultProps = {};
44
22
  ButtonGroup.displayName = 'ButtonGroup';
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonGroup.js","sourceRoot":"","sources":["../../../src/ButtonGroup/ButtonGroup.tsx"],"names":[],"mappings":";;;;;;;;;;;AACA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAElD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAE7D,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,MAAM,MAAM,UAAU,CAAA;AAO7B,MAAM,SAAS,GAAG,UAAU,CAAQ,MAAM,EAAE;IAC1C,IAAI,EAAE,oBAAoB;CAC3B,CAAC,CAAA;AAEF,MAAM,wBAAwB,GAAG,CAC/B,OAAgB,EACU,EAAE,CAAC;IAC7B;QACE,MAAM;QACN;YACE,IAAI,EAAE,OAAO,CAAC,MAAM;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB;KACF;CACF,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CACnC,SAAS,WAAW,CAAC,KAAK,EAAE,GAAG;IAC7B,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,KAAc,KAAK,EAAd,IAAI,UAAK,KAAK,EAA/C,kCAAuC,CAAQ,CAAA;IACrD,MAAM,OAAO,GAAG,SAAS,EAAE,CAAA;IAC3B,MAAM,mBAAmB,GAAG,OAAO,CACjC,GAAG,EAAE,CACH,oBAAoB,CAAC;QACnB,QAAQ;QACR,OAAO;QACP,MAAM,EAAE,wBAAwB;KACjC,CAAC,EACJ,CAAC,QAAQ,EAAE,OAAO,CAAC,CACpB,CAAA;IAED,OAAO,CACL,6CACM,IAAI,IACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,EACtC,KAAK,EAAE,KAAK,KAEX,mBAAmB,CAChB,CACP,CAAA;AACH,CAAC,CACF,CAAA;AAED,WAAW,CAAC,YAAY,GAAG,EAAE,CAAA;AAE7B,WAAW,CAAC,WAAW,GAAG,aAAa,CAAA;AAEvC,eAAe,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAA"}
1
+ {"version":3,"file":"ButtonGroup.js","sourceRoot":"","sources":["../../../src/ButtonGroup/ButtonGroup.tsx"],"names":[],"mappings":";;;;;;;;;;;AACA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAGxC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAO/C,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CACnC,SAAS,WAAW,CAAC,KAAK,EAAE,GAAG;IAC7B,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,KAAc,KAAK,EAAd,IAAI,UAAK,KAAK,EAA/C,kCAAuC,CAAQ,CAAA;IAErD,MAAM,cAAc,GAAG,OAAO,CAAC,oBAAoB,EAAE,EAAE,SAAS,CAAC,CAAA;IAEjE,OAAO,CACL,6CAAS,IAAI,IAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,KAC7D,QAAQ,CACL,CACP,CAAA;AACH,CAAC,CACF,CAAA;AAED,WAAW,CAAC,YAAY,GAAG,EAAE,CAAA;AAE7B,WAAW,CAAC,WAAW,GAAG,aAAa,CAAA;AAEvC,eAAe,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAA"}
@@ -1,3 +1,2 @@
1
- declare const _default: () => import("@material-ui/styles").StyleRules<{}, "root" | "active" | "hovered" | "focused">;
2
- export default _default;
1
+ export declare const createRootClassNames: () => string[];
3
2
  //# sourceMappingURL=styles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/ButtonGroup/styles.ts"],"names":[],"mappings":";AA+BA,wBAuCI"}
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/ButtonGroup/styles.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,gBA4BhC,CAAA"}
@@ -1,49 +1,22 @@
1
- import { createStyles } from '@material-ui/core/styles';
2
- const baseButtonProps = {
3
- transitionProperty: 'color, background',
4
- '&:active, &$active, &:hover, &$hovered, &:focus, &$focused': {
5
- // border overlap to keep proper border width, but on state change
6
- // we need to move up overlapped border
7
- zIndex: 1,
8
- },
1
+ export const createRootClassNames = () => {
2
+ const classNames = [
3
+ 'flex',
4
+ 'justify-start',
5
+ '[&>[data-component-type="button"]:hover]:z-[1]',
6
+ '[&>[data-component-type="button"]:first-child:not(:last-child)]:rounded-r-none',
7
+ '[&>[data-component-type="button"]:first-child:not(:last-child)]:ml-0',
8
+ '[&>[data-component-type="button"]:not(:first-child):not(:last-child)]:rounded-none',
9
+ '[&>[data-component-type="button"]:not(:first-child):not(:last-child)]:ml-[-1px]',
10
+ '[&>[data-component-type="button"]:last-child:not(:first-child)]:rounded-l-none',
11
+ '[&>[data-component-type="button"]:last-child:not(:first-child)]:ml-[-1px]',
12
+ // nested buttons
13
+ '[&_:first-child:not(:last-child)_[data-component-type="button"]]:rounded-r-none',
14
+ '[&_:first-child:not(:last-child)_[data-component-type="button"]]:ml-0',
15
+ '[&_:not(:first-child):not(:last-child)_[data-component-type="button"]]:rounded-none',
16
+ '[&_:not(:first-child):not(:last-child)_[data-component-type="button"]]:ml-[-1px]',
17
+ '[&_:last-child:not(:first-child)_[data-component-type="button"]]:rounded-l-none',
18
+ '[&_:last-child:not(:first-child)_[data-component-type="button"]]:ml-[-1px]',
19
+ ];
20
+ return classNames;
9
21
  };
10
- const firstButtonProps = {
11
- borderTopRightRadius: 0,
12
- borderBottomRightRadius: 0,
13
- marginLeft: '0rem',
14
- };
15
- const middleButtonProps = {
16
- borderRadius: 0,
17
- // prevents border between 2 buttons to be wider then specified
18
- marginLeft: '-1px',
19
- };
20
- const lastButtonProps = {
21
- borderTopLeftRadius: 0,
22
- borderBottomLeftRadius: 0,
23
- // prevents border between 2 buttons to be wider then specified
24
- marginLeft: '-1px',
25
- };
26
- export default () => createStyles({
27
- root: {
28
- display: 'flex',
29
- justifyContent: 'flex-start',
30
- // default case
31
- '& [data-component-type="button"]': Object.assign(Object.assign({}, baseButtonProps), {
32
- // first item
33
- '&:first-child:not(:last-child)': firstButtonProps,
34
- // middle item
35
- '&:not(:first-child):not(:last-child)': middleButtonProps,
36
- // last item
37
- '&:last-child:not(:first-child)': lastButtonProps }),
38
- // nested case when button is nested in first item in ButtonGroup
39
- '& :first-child:not(:last-child) [data-component-type="button"]': Object.assign(Object.assign({}, baseButtonProps), firstButtonProps),
40
- // nested case when button is nested in middle item in ButtonGroup
41
- '& :not(:first-child):not(:last-child) [data-component-type="button"]': Object.assign(Object.assign({}, baseButtonProps), middleButtonProps),
42
- // nested case when button is nested in last item in ButtonGroup
43
- '& :last-child:not(:first-child) [data-component-type="button"]': Object.assign(Object.assign({}, baseButtonProps), lastButtonProps),
44
- },
45
- active: {},
46
- focused: {},
47
- hovered: {},
48
- });
49
22
  //# sourceMappingURL=styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/ButtonGroup/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAEvD,MAAM,eAAe,GAAG;IACtB,kBAAkB,EAAE,mBAAmB;IAEvC,4DAA4D,EAAE;QAC5D,kEAAkE;QAClE,uCAAuC;QACvC,MAAM,EAAE,CAAC;KACV;CACF,CAAA;AAED,MAAM,gBAAgB,GAAG;IACvB,oBAAoB,EAAE,CAAC;IACvB,uBAAuB,EAAE,CAAC;IAC1B,UAAU,EAAE,MAAM;CACnB,CAAA;AAED,MAAM,iBAAiB,GAAG;IACxB,YAAY,EAAE,CAAC;IACf,+DAA+D;IAC/D,UAAU,EAAE,MAAM;CACnB,CAAA;AAED,MAAM,eAAe,GAAG;IACtB,mBAAmB,EAAE,CAAC;IACtB,sBAAsB,EAAE,CAAC;IACzB,+DAA+D;IAC/D,UAAU,EAAE,MAAM;CACnB,CAAA;AAED,eAAe,GAAG,EAAE,CAClB,YAAY,CAAC;IACX,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM;QACf,cAAc,EAAE,YAAY;QAE5B,eAAe;QACf,kCAAkC,kCAC7B,eAAe;YAElB,aAAa;YACb,gCAAgC,EAAE,gBAAgB;YAClD,cAAc;YACd,sCAAsC,EAAE,iBAAiB;YACzD,YAAY;YACZ,gCAAgC,EAAE,eAAe,GAClD;QAED,iEAAiE;QACjE,gEAAgE,kCAC3D,eAAe,GACf,gBAAgB,CACpB;QAED,kEAAkE;QAClE,sEAAsE,kCACjE,eAAe,GACf,iBAAiB,CACrB;QAED,gEAAgE;QAChE,gEAAgE,kCAC3D,eAAe,GACf,eAAe,CACnB;KACF;IACD,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;CACZ,CAAC,CAAA"}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/ButtonGroup/styles.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,EAAE;IACvC,MAAM,UAAU,GAAa;QAC3B,MAAM;QACN,eAAe;QAEf,gDAAgD;QAEhD,gFAAgF;QAChF,sEAAsE;QAEtE,oFAAoF;QACpF,iFAAiF;QAEjF,gFAAgF;QAChF,2EAA2E;QAE3E,iBAAiB;QACjB,iFAAiF;QACjF,uEAAuE;QAEvE,qFAAqF;QACrF,kFAAkF;QAElF,iFAAiF;QACjF,4EAA4E;KAC7E,CAAA;IAED,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA"}
@@ -2,6 +2,6 @@
2
2
  import type { ButtonProps } from '../Button';
3
3
  export interface Props extends ButtonProps {
4
4
  }
5
- declare const ButtonGroupItem: (props: Props) => JSX.Element;
5
+ declare const ButtonGroupItem: ({ active, disabled, focused, hovered, className, ...rest }: Props) => JSX.Element;
6
6
  export default ButtonGroupItem;
7
7
  //# sourceMappingURL=ButtonGroupItem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonGroupItem.d.ts","sourceRoot":"","sources":["../../../src/ButtonGroupItem/ButtonGroupItem.tsx"],"names":[],"mappings":";AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAQ5C,MAAM,WAAW,KAAM,SAAQ,WAAW;CAAG;AAE7C,QAAA,MAAM,eAAe,UAAW,KAAK,gBAapC,CAAA;AAED,eAAe,eAAe,CAAA"}
1
+ {"version":3,"file":"ButtonGroupItem.d.ts","sourceRoot":"","sources":["../../../src/ButtonGroupItem/ButtonGroupItem.tsx"],"names":[],"mappings":";AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAO5C,MAAM,WAAW,KAAM,SAAQ,WAAW;CAAG;AAE7C,QAAA,MAAM,eAAe,+DAOlB,KAAK,gBAkBP,CAAA;AAED,eAAe,eAAe,CAAA"}
@@ -1,17 +1,22 @@
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
+ };
1
12
  import React from 'react';
2
- import { makeStyles } from '@material-ui/core';
3
- import cx from 'classnames';
13
+ import { twMerge } from 'tailwind-merge';
4
14
  import { Button } from '../Button';
5
- import styles from './styles';
6
- const useStyles = makeStyles(styles, {
7
- name: 'PicassoButtonGroupItem',
8
- });
9
- const ButtonGroupItem = (props) => {
10
- const classes = useStyles();
11
- return (React.createElement(Button, Object.assign({}, props, { className: cx(props.className, classes.root, classes.group, {
12
- [classes.active]: props.active,
13
- [classes.disabled]: props.disabled,
14
- }), variant: 'secondary' })));
15
+ import { createButtonGroupItemClassNames, createGroupVariantClassNames, } from './styles';
16
+ const ButtonGroupItem = (_a) => {
17
+ var { active, disabled, focused, hovered, className } = _a, rest = __rest(_a, ["active", "disabled", "focused", "hovered", "className"]);
18
+ const finalClassName = twMerge(createButtonGroupItemClassNames({ active, disabled, focused, hovered }), createGroupVariantClassNames({ active, disabled, hovered }), className);
19
+ return (React.createElement(Button, Object.assign({}, rest, { active: active, disabled: disabled, focused: focused, hovered: hovered, className: finalClassName, variant: 'secondary' })));
15
20
  };
16
21
  export default ButtonGroupItem;
17
22
  //# sourceMappingURL=ButtonGroupItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonGroupItem.js","sourceRoot":"","sources":["../../../src/ButtonGroupItem/ButtonGroupItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,MAAM,YAAY,CAAA;AAG3B,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,MAAM,MAAM,UAAU,CAAA;AAE7B,MAAM,SAAS,GAAG,UAAU,CAAQ,MAAM,EAAE;IAC1C,IAAI,EAAE,wBAAwB;CAC/B,CAAC,CAAA;AAIF,MAAM,eAAe,GAAG,CAAC,KAAY,EAAE,EAAE;IACvC,MAAM,OAAO,GAAG,SAAS,EAAE,CAAA;IAE3B,OAAO,CACL,oBAAC,MAAM,oBACD,KAAK,IACT,SAAS,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE;YAC1D,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM;YAC9B,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,QAAQ;SACnC,CAAC,EACF,OAAO,EAAC,WAAW,IACnB,CACH,CAAA;AACH,CAAC,CAAA;AAED,eAAe,eAAe,CAAA"}
1
+ {"version":3,"file":"ButtonGroupItem.js","sourceRoot":"","sources":["../../../src/ButtonGroupItem/ButtonGroupItem.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAGxC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,EACL,+BAA+B,EAC/B,4BAA4B,GAC7B,MAAM,UAAU,CAAA;AAIjB,MAAM,eAAe,GAAG,CAAC,EAOjB,EAAE,EAAE;QAPa,EACvB,MAAM,EACN,QAAQ,EACR,OAAO,EACP,OAAO,EACP,SAAS,OAEH,EADH,IAAI,cANgB,yDAOxB,CADQ;IAEP,MAAM,cAAc,GAAG,OAAO,CAC5B,+BAA+B,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EACvE,4BAA4B,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAC3D,SAAS,CACV,CAAA;IAED,OAAO,CACL,oBAAC,MAAM,oBACD,IAAI,IACR,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,cAAc,EACzB,OAAO,EAAC,WAAW,IACnB,CACH,CAAA;AACH,CAAC,CAAA;AAED,eAAe,eAAe,CAAA"}
@@ -1,4 +1,14 @@
1
- import type { Theme } from '@material-ui/core/styles';
2
- declare const _default: (theme: Theme) => import("@material-ui/styles").StyleRules<{}, "root" | "active" | "disabled" | "hovered" | "focused" | "group">;
3
- export default _default;
1
+ export declare const createButtonGroupItemClassNames: ({ disabled, focused, hovered, active, }: {
2
+ disabled?: boolean | undefined;
3
+ focused?: boolean | undefined;
4
+ hovered?: boolean | undefined;
5
+ active?: boolean | undefined;
6
+ loading?: boolean | undefined;
7
+ }) => string[];
8
+ export declare const createGroupVariantClassNames: ({ disabled, hovered, active, }: {
9
+ disabled?: boolean | undefined;
10
+ hovered?: boolean | undefined;
11
+ active?: boolean | undefined;
12
+ loading?: boolean | undefined;
13
+ }) => string[];
4
14
  //# sourceMappingURL=styles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/ButtonGroupItem/styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;gCAS9B,KAAK;AAA5B,wBAoBI"}
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/ButtonGroupItem/styles.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,+BAA+B;;;;;;cAuB3C,CAAA;AAED,eAAO,MAAM,4BAA4B;;;;;MASrC,MAAM,EA6BT,CAAA"}
@@ -1,18 +1,40 @@
1
- import { createStyles } from '@material-ui/core/styles';
2
- import { createOutlineCommons, activeGroup, disabledGroup, } from '../Button/styles';
3
- export default (theme) => createStyles({
4
- root: {
5
- '&:active, &$active, &:hover, &$hovered, &:focus, &$focused, &:disabled, &$disabled': {
6
- // border overlap to keep proper border width, but on state change
7
- // we need to move up overlapped border
8
- zIndex: 1,
9
- },
10
- '&$group': Object.assign(Object.assign({}, createOutlineCommons(theme)), { '&:active, &$active': activeGroup(theme), '&:disabled, &$disabled': disabledGroup(theme) }),
11
- },
12
- active: {},
13
- hovered: {},
14
- focused: {},
15
- disabled: {},
16
- group: {},
17
- });
1
+ export const createButtonGroupItemClassNames = ({ disabled, focused, hovered, active, }) => {
2
+ const classNames = [
3
+ 'border-solid',
4
+ 'transition-[color,background]',
5
+ 'active:z-[1] hover:z-[1] focus-visible:z-[1] disabled:z-[1]',
6
+ ];
7
+ if (active || hovered || focused || disabled) {
8
+ classNames.push('z-[1]');
9
+ }
10
+ return classNames;
11
+ };
12
+ export const createGroupVariantClassNames = ({ disabled, hovered, active, }) => {
13
+ const classNames = ['visited:text-black', 'border-solid'];
14
+ if (disabled) {
15
+ classNames.push('cursor-not-allowed');
16
+ classNames.push('text-gray-500');
17
+ if (active) {
18
+ classNames.push('bg-graphite-700 border-graphite-700');
19
+ }
20
+ else {
21
+ classNames.push('border-gray-500');
22
+ }
23
+ }
24
+ else {
25
+ classNames.push('active:bg-graphite-700 active:border-graphite-700 active:text-white');
26
+ classNames.push('hover:border-black');
27
+ if (hovered) {
28
+ classNames.push('border-black text-black');
29
+ }
30
+ else if (active) {
31
+ classNames.push('bg-graphite-700 border-graphite-700 text-white');
32
+ classNames.push('shadow-none');
33
+ }
34
+ else {
35
+ classNames.push('border-gray-400 text-black');
36
+ }
37
+ }
38
+ return classNames;
39
+ };
18
40
  //# sourceMappingURL=styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/ButtonGroupItem/styles.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAEvD,OAAO,EACL,oBAAoB,EACpB,WAAW,EACX,aAAa,GACd,MAAM,kBAAkB,CAAA;AAEzB,eAAe,CAAC,KAAY,EAAE,EAAE,CAC9B,YAAY,CAAC;IACX,IAAI,EAAE;QACJ,oFAAoF,EAClF;YACE,kEAAkE;YAClE,uCAAuC;YACvC,MAAM,EAAE,CAAC;SACV;QACH,SAAS,kCACJ,oBAAoB,CAAC,KAAK,CAAC,KAC9B,oBAAoB,EAAE,WAAW,CAAC,KAAK,CAAC,EACxC,wBAAwB,EAAE,aAAa,CAAC,KAAK,CAAC,GAC/C;KACF;IACD,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,EAAE;IACX,QAAQ,EAAE,EAAE;IACZ,KAAK,EAAE,EAAE;CACV,CAAC,CAAA"}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/ButtonGroupItem/styles.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,EAC9C,QAAQ,EACR,OAAO,EACP,OAAO,EACP,MAAM,GAOP,EAAE,EAAE;IACH,MAAM,UAAU,GAAG;QACjB,cAAc;QACd,+BAA+B;QAC/B,6DAA6D;KAC9D,CAAA;IAED,IAAI,MAAM,IAAI,OAAO,IAAI,OAAO,IAAI,QAAQ,EAAE;QAC5C,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;KACzB;IAED,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,EAC3C,QAAQ,EACR,OAAO,EACP,MAAM,GAMP,EAAY,EAAE;IACb,MAAM,UAAU,GAAG,CAAC,oBAAoB,EAAE,cAAc,CAAC,CAAA;IAEzD,IAAI,QAAQ,EAAE;QACZ,UAAU,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;QACrC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QAEhC,IAAI,MAAM,EAAE;YACV,UAAU,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAA;SACvD;aAAM;YACL,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;SACnC;KACF;SAAM;QACL,UAAU,CAAC,IAAI,CACb,qEAAqE,CACtE,CAAA;QACD,UAAU,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;QAErC,IAAI,OAAO,EAAE;YACX,UAAU,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;SAC3C;aAAM,IAAI,MAAM,EAAE;YACjB,UAAU,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAA;YACjE,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;SAC/B;aAAM;YACL,UAAU,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAA;SAC9C;KACF;IAED,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonSplit.d.ts","sourceRoot":"","sources":["../../../src/ButtonSplit/ButtonSplit.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAc,cAAc,EAAE,MAAM,OAAO,CAAA;AAClE,OAAO,KAAqB,MAAM,OAAO,CAAA;AAGzC,OAAO,KAAK,EAAY,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAKjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAK5C,MAAM,WAAW,KACf,SAAQ,SAAS,EACf,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,SAAS,CAAC;IACjD,kCAAkC;IAClC,QAAQ,EAAE,SAAS,CAAA;IACnB,wDAAwD;IACxD,IAAI,EAAE,SAAS,CAAA;IACf,iDAAiD;IACjD,OAAO,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAA;IAChC,wCAAwC;IACxC,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IAC1B,yBAAyB;IACzB,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,CAAA;IACjC,kCAAkC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB,eAAe,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAA;IAC/C,iBAAiB,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAA;IACjD,OAAO,CAAC,EAAE;QACR,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,CAAA;CACF;AAiCD,eAAO,MAAM,WAAW,8EAmFvB,CAAA;AASD,eAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"ButtonSplit.d.ts","sourceRoot":"","sources":["../../../src/ButtonSplit/ButtonSplit.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAc,cAAc,EAAE,MAAM,OAAO,CAAA;AAClE,OAAO,KAAqB,MAAM,OAAO,CAAA;AACzC,OAAO,KAAK,EAAY,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAKjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAS5C,MAAM,WAAW,KACf,SAAQ,SAAS,EACf,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,SAAS,CAAC;IACjD,kCAAkC;IAClC,QAAQ,EAAE,SAAS,CAAA;IACnB,wDAAwD;IACxD,IAAI,EAAE,SAAS,CAAA;IACf,iDAAiD;IACjD,OAAO,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAA;IAChC,wCAAwC;IACxC,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IAC1B,yBAAyB;IACzB,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,CAAA;IACjC,kCAAkC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB,eAAe,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAA;IAC/C,iBAAiB,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAA;IACjD,OAAO,CAAC,EAAE;QACR,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,CAAA;CACF;AA0BD,eAAO,MAAM,WAAW,8EA4FvB,CAAA;AASD,eAAe,WAAW,CAAA"}
@@ -10,20 +10,13 @@ var __rest = (this && this.__rest) || function (s, e) {
10
10
  return t;
11
11
  };
12
12
  import React, { forwardRef } from 'react';
13
- import { makeStyles } from '@material-ui/core/styles';
14
- import cx from 'classnames';
13
+ import { twMerge } from 'tailwind-merge';
15
14
  import { ArrowDownMinor24, ArrowDownMinor16 } from '@toptal/picasso-icons';
16
15
  import { Dropdown } from '@toptal/picasso-dropdown';
17
16
  import { Button } from '../Button';
18
17
  import { ButtonGroup } from '../ButtonGroup';
19
- import styles from './styles';
20
- // Using { index: -1 } to inject CSS link to the bottom of the head
21
- // in order to prevent Button's styles to override ButtonSplit's ones
22
- // Related Jira issue: https://toptal-core.atlassian.net/browse/FX-1520
23
- const useStyles = makeStyles(styles, {
24
- name: 'PicassoButtonSplit',
25
- index: -1,
26
- });
18
+ import { createButtonGroupItemClassNames } from '../ButtonGroupItem/styles';
19
+ import { createActionButtonClassNames, createMenuButtonClassNames, } from './styles';
27
20
  const DropdownIcon = ({ size, className, }) => {
28
21
  if (size === 'large') {
29
22
  return React.createElement(ArrowDownMinor24, { className: className });
@@ -38,23 +31,34 @@ const EventStopPropagation = ({ children }) => {
38
31
  };
39
32
  export const ButtonSplit = forwardRef(function ButtonSplit(props, ref) {
40
33
  const { size = 'medium', menu, children, variant = 'primary', disabled, style, className, onClick, menuButtonProps, actionButtonProps, testIds = {} } = props, rest = __rest(props, ["size", "menu", "children", "variant", "disabled", "style", "className", "onClick", "menuButtonProps", "actionButtonProps", "testIds"]);
41
- const classes = useStyles();
42
- const commonClasses = cx(classes.button, {
43
- [classes.primaryVariant]: variant === 'primary',
44
- [classes.disabled]: disabled,
45
- });
46
- const renderMenuButton = ({ isOpen, disabled, }) => {
47
- const menuButton = (React.createElement(Button, Object.assign({}, menuButtonProps, { variant: variant, className: `${commonClasses} ${classes.menuButton} ${classes[`${size}Size`]}`, size: size, disabled: disabled, "data-testid": testIds.menuButton }),
48
- React.createElement(DropdownIcon, { className: cx({
49
- [classes.rotated]: isOpen,
50
- }), size: size })));
34
+ const renderMenuButton = ({ isOpen }) => {
35
+ const menuButtonClassName = twMerge(createButtonGroupItemClassNames({
36
+ active: menuButtonProps === null || menuButtonProps === void 0 ? void 0 : menuButtonProps.active,
37
+ hovered: menuButtonProps === null || menuButtonProps === void 0 ? void 0 : menuButtonProps.hovered,
38
+ disabled: (menuButtonProps === null || menuButtonProps === void 0 ? void 0 : menuButtonProps.disabled) || disabled,
39
+ focused: menuButtonProps === null || menuButtonProps === void 0 ? void 0 : menuButtonProps.focused,
40
+ }), createMenuButtonClassNames({
41
+ variant,
42
+ size,
43
+ disabled: (menuButtonProps === null || menuButtonProps === void 0 ? void 0 : menuButtonProps.disabled) || disabled,
44
+ }), menuButtonProps === null || menuButtonProps === void 0 ? void 0 : menuButtonProps.className);
45
+ const iconClassName = isOpen ? 'rotate-180' : '';
46
+ const menuButton = (React.createElement(Button, Object.assign({}, menuButtonProps, { variant: variant, className: menuButtonClassName, size: size, disabled: disabled, "data-testid": testIds.menuButton }),
47
+ React.createElement(DropdownIcon, { className: iconClassName, size: size })));
51
48
  return disabled ? (React.createElement(EventStopPropagation, null, menuButton)) : (menuButton);
52
49
  };
50
+ const actionButtonClassName = twMerge(createButtonGroupItemClassNames({
51
+ active: actionButtonProps === null || actionButtonProps === void 0 ? void 0 : actionButtonProps.active,
52
+ hovered: actionButtonProps === null || actionButtonProps === void 0 ? void 0 : actionButtonProps.hovered,
53
+ disabled: (actionButtonProps === null || actionButtonProps === void 0 ? void 0 : actionButtonProps.disabled) || disabled,
54
+ focused: actionButtonProps === null || actionButtonProps === void 0 ? void 0 : actionButtonProps.focused,
55
+ }), createActionButtonClassNames({
56
+ variant,
57
+ }), actionButtonProps === null || actionButtonProps === void 0 ? void 0 : actionButtonProps.className);
58
+ const dropdownClassName = twMerge('block cursor-pointer', disabled && '[&>div]:cursor-auto');
53
59
  return (React.createElement(ButtonGroup, Object.assign({}, rest, { ref: ref, style: style, className: className }),
54
- React.createElement(Button, Object.assign({}, actionButtonProps, { className: `${commonClasses} ${classes.actionButton}`, size: size, variant: variant, disabled: disabled, onClick: onClick, "data-testid": testIds.actionButton }), children),
55
- React.createElement(Dropdown, { content: menu, className: cx(classes.dropdown, {
56
- [classes.disabled]: disabled,
57
- }) }, ({ isOpen }) => renderMenuButton({ isOpen, disabled }))));
60
+ React.createElement(Button, Object.assign({}, actionButtonProps, { className: actionButtonClassName, size: size, variant: variant, disabled: disabled, onClick: onClick, "data-testid": testIds.actionButton }), children),
61
+ React.createElement(Dropdown, { content: menu, className: dropdownClassName }, ({ isOpen }) => renderMenuButton({ isOpen }))));
58
62
  });
59
63
  ButtonSplit.defaultProps = {
60
64
  size: 'medium',
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonSplit.js","sourceRoot":"","sources":["../../../src/ButtonSplit/ButtonSplit.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ButtonSplit.js","sourceRoot":"","sources":["../../../src/ButtonSplit/ButtonSplit.tsx"],"names":[],"mappings":"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"}