@toptal/picasso-button 1.0.13 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) 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 +161 -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 +82 -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/ButtonControlLabel.d.ts.map +1 -1
  36. package/dist-package/src/ButtonControlLabel/ButtonControlLabel.js +4 -13
  37. package/dist-package/src/ButtonControlLabel/ButtonControlLabel.js.map +1 -1
  38. package/dist-package/src/ButtonControlLabel/styles.d.ts +2 -2
  39. package/dist-package/src/ButtonControlLabel/styles.d.ts.map +1 -1
  40. package/dist-package/src/ButtonControlLabel/styles.js +16 -25
  41. package/dist-package/src/ButtonControlLabel/styles.js.map +1 -1
  42. package/dist-package/src/ButtonGroup/ButtonGroup.d.ts +1 -1
  43. package/dist-package/src/ButtonGroup/ButtonGroup.d.ts.map +1 -1
  44. package/dist-package/src/ButtonGroup/ButtonGroup.js +5 -27
  45. package/dist-package/src/ButtonGroup/ButtonGroup.js.map +1 -1
  46. package/dist-package/src/ButtonGroup/styles.d.ts +1 -2
  47. package/dist-package/src/ButtonGroup/styles.d.ts.map +1 -1
  48. package/dist-package/src/ButtonGroup/styles.js +20 -47
  49. package/dist-package/src/ButtonGroup/styles.js.map +1 -1
  50. package/dist-package/src/ButtonGroupItem/ButtonGroupItem.d.ts +1 -1
  51. package/dist-package/src/ButtonGroupItem/ButtonGroupItem.d.ts.map +1 -1
  52. package/dist-package/src/ButtonGroupItem/ButtonGroupItem.js +17 -12
  53. package/dist-package/src/ButtonGroupItem/ButtonGroupItem.js.map +1 -1
  54. package/dist-package/src/ButtonGroupItem/styles.d.ts +13 -3
  55. package/dist-package/src/ButtonGroupItem/styles.d.ts.map +1 -1
  56. package/dist-package/src/ButtonGroupItem/styles.js +39 -17
  57. package/dist-package/src/ButtonGroupItem/styles.js.map +1 -1
  58. package/dist-package/src/ButtonSplit/ButtonSplit.d.ts.map +1 -1
  59. package/dist-package/src/ButtonSplit/ButtonSplit.js +28 -24
  60. package/dist-package/src/ButtonSplit/ButtonSplit.js.map +1 -1
  61. package/dist-package/src/ButtonSplit/styles.d.ts +9 -3
  62. package/dist-package/src/ButtonSplit/styles.d.ts.map +1 -1
  63. package/dist-package/src/ButtonSplit/styles.js +13 -50
  64. package/dist-package/src/ButtonSplit/styles.js.map +1 -1
  65. package/package.json +17 -13
  66. package/src/Button/Button.tsx +69 -100
  67. package/src/Button/__snapshots__/test.tsx.snap +8 -4
  68. package/src/Button/styles.ts +214 -221
  69. package/src/Button/test.tsx +3 -1
  70. package/src/ButtonAction/ButtonAction.tsx +36 -48
  71. package/src/ButtonAction/styles.ts +57 -57
  72. package/src/ButtonBase/ButtonBase.tsx +186 -0
  73. package/src/ButtonBase/__snapshots__/test.tsx.snap +286 -0
  74. package/src/ButtonBase/index.ts +5 -0
  75. package/src/ButtonBase/styles.ts +36 -0
  76. package/src/ButtonBase/test.tsx +230 -0
  77. package/src/ButtonCheckbox/__snapshots__/test.tsx.snap +4 -3
  78. package/src/ButtonCircular/ButtonCircular.tsx +22 -37
  79. package/src/ButtonCircular/styles.ts +127 -75
  80. package/src/ButtonControlLabel/ButtonControlLabel.tsx +7 -16
  81. package/src/ButtonControlLabel/styles.ts +30 -26
  82. package/src/ButtonGroup/ButtonGroup.tsx +9 -44
  83. package/src/ButtonGroup/__snapshots__/test.tsx.snap +13 -7
  84. package/src/ButtonGroup/styles.ts +21 -63
  85. package/src/ButtonGroupItem/ButtonGroupItem.tsx +24 -15
  86. package/src/ButtonGroupItem/styles.ts +62 -28
  87. package/src/ButtonRadio/__snapshots__/test.tsx.snap +4 -3
  88. package/src/ButtonSplit/ButtonSplit.tsx +46 -42
  89. package/src/ButtonSplit/__snapshots__/test.tsx.snap +13 -9
  90. 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 +1 @@
1
- {"version":3,"file":"ButtonControlLabel.d.ts","sourceRoot":"","sources":["../../../src/ButtonControlLabel/ButtonControlLabel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACpD,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AASjE,MAAM,WAAW,KAAM,SAAQ,SAAS;IACtC,4CAA4C;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,uCAAuC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,uCAAuC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,wCAAwC;IACxC,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC,CAAA;IAC7C,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,CACT,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAC1C,OAAO,EAAE,OAAO,KACb,IAAI,CAAA;IACT,kBAAkB;IAClB,QAAQ,EAAE,SAAS,CAAA;IACnB,kCAAkC;IAClC,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,0EAA0E;IAC1E,OAAO,EAAE,YAAY,CAAA;CACtB;AAUD,QAAA,MAAM,kBAAkB;+FAWrB,KAAK;;;;CAqBP,CAAA;AAMD,eAAe,kBAAkB,CAAA"}
1
+ {"version":3,"file":"ButtonControlLabel.d.ts","sourceRoot":"","sources":["../../../src/ButtonControlLabel/ButtonControlLabel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACpD,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAOjE,MAAM,WAAW,KAAM,SAAQ,SAAS;IACtC,4CAA4C;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,uCAAuC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,uCAAuC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,wCAAwC;IACxC,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC,CAAA;IAC7C,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,CACT,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAC1C,OAAO,EAAE,OAAO,KACb,IAAI,CAAA;IACT,kBAAkB;IAClB,QAAQ,EAAE,SAAS,CAAA;IACnB,kCAAkC;IAClC,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,0EAA0E;IAC1E,OAAO,EAAE,YAAY,CAAA;CACtB;AAED,QAAA,MAAM,kBAAkB;+FAWrB,KAAK;;;;CAsBP,CAAA;AAMD,eAAe,kBAAkB,CAAA"}
@@ -10,25 +10,16 @@ var __rest = (this && this.__rest) || function (s, e) {
10
10
  return t;
11
11
  };
12
12
  import React from 'react';
13
- import { makeStyles } from '@material-ui/core';
14
- import cx from 'classnames';
13
+ import { twMerge } from 'tailwind-merge';
15
14
  import { Container } from '@toptal/picasso-container';
16
15
  import { Button } from '../Button';
17
- import styles from './styles';
18
- // Using { index: -1 } to inject CSS link to the bottom of the head
19
- // in order to prevent Button's styles to override ButtonAction's ones
20
- // Related Jira issue: https://toptal-core.atlassian.net/browse/FX-1520
21
- const useStyles = makeStyles(styles, {
22
- name: 'PicassoButtonControlLabel',
23
- index: -1,
24
- });
16
+ import { createSizeClassNames, createContentSizeClassNames } from './styles';
25
17
  const ButtonControlLabel = (_a) => {
26
18
  var { children, size = 'medium', className, checked, onChange, id, control, value, disabled } = _a, props = __rest(_a, ["children", "size", "className", "checked", "onChange", "id", "control", "value", "disabled"]);
27
- const classes = useStyles();
28
19
  const contentLeftSpacing = size === 'large' ? 1 : 0.5;
29
- return (React.createElement(Button, Object.assign({}, props, { className: cx(className, classes.root, classes[size]), variant: 'secondary', size: size, as: 'label', htmlFor: id, disabled: disabled }),
20
+ return (React.createElement(Button, Object.assign({}, props, { className: twMerge('text-center', createSizeClassNames(size), className), variant: 'secondary', size: size, as: 'label', htmlFor: id, disabled: disabled }),
30
21
  React.cloneElement(control, { id, checked, value, onChange, disabled }),
31
- React.createElement(Container, { className: classes.content, left: contentLeftSpacing }, children)));
22
+ React.createElement(Container, { className: createContentSizeClassNames(size), left: contentLeftSpacing }, children)));
32
23
  };
33
24
  ButtonControlLabel.defaultProps = {
34
25
  size: 'medium',
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonControlLabel.js","sourceRoot":"","sources":["../../../src/ButtonControlLabel/ButtonControlLabel.tsx"],"names":[],"mappings":";;;;;;;;;;;AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAErD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,MAAM,MAAM,UAAU,CAAA;AA8B7B,mEAAmE;AACnE,sEAAsE;AACtE,uEAAuE;AACvE,MAAM,SAAS,GAAG,UAAU,CAAQ,MAAM,EAAE;IAC1C,IAAI,EAAE,2BAA2B;IACjC,KAAK,EAAE,CAAC,CAAC;CACV,CAAC,CAAA;AAEF,MAAM,kBAAkB,GAAG,CAAC,EAWpB,EAAE,EAAE;QAXgB,EAC1B,QAAQ,EACR,IAAI,GAAG,QAAQ,EACf,SAAS,EACT,OAAO,EACP,QAAQ,EACR,EAAE,EACF,OAAO,EACP,KAAK,EACL,QAAQ,OAEF,EADH,KAAK,cAVkB,8FAW3B,CADS;IAER,MAAM,OAAO,GAAG,SAAS,EAAE,CAAA;IAE3B,MAAM,kBAAkB,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;IAErD,OAAO,CACL,oBAAC,MAAM,oBACD,KAAK,IACT,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,EACrD,OAAO,EAAC,WAAW,EACnB,IAAI,EAAE,IAAI,EACV,EAAE,EAAC,OAAO,EACV,OAAO,EAAE,EAAE,EACX,QAAQ,EAAE,QAAQ;QAEjB,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;QACxE,oBAAC,SAAS,IAAC,SAAS,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,kBAAkB,IAC5D,QAAQ,CACC,CACL,CACV,CAAA;AACH,CAAC,CAAA;AAED,kBAAkB,CAAC,YAAY,GAAG;IAChC,IAAI,EAAE,QAAQ;CACf,CAAA;AAED,eAAe,kBAAkB,CAAA"}
1
+ {"version":3,"file":"ButtonControlLabel.js","sourceRoot":"","sources":["../../../src/ButtonControlLabel/ButtonControlLabel.tsx"],"names":[],"mappings":";;;;;;;;;;;AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAErD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAA;AA8B5E,MAAM,kBAAkB,GAAG,CAAC,EAWpB,EAAE,EAAE;QAXgB,EAC1B,QAAQ,EACR,IAAI,GAAG,QAAQ,EACf,SAAS,EACT,OAAO,EACP,QAAQ,EACR,EAAE,EACF,OAAO,EACP,KAAK,EACL,QAAQ,OAEF,EADH,KAAK,cAVkB,8FAW3B,CADS;IAER,MAAM,kBAAkB,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;IAErD,OAAO,CACL,oBAAC,MAAM,oBACD,KAAK,IACT,SAAS,EAAE,OAAO,CAAC,aAAa,EAAE,oBAAoB,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,EACxE,OAAO,EAAC,WAAW,EACnB,IAAI,EAAE,IAAI,EACV,EAAE,EAAC,OAAO,EACV,OAAO,EAAE,EAAE,EACX,QAAQ,EAAE,QAAQ;QAEjB,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;QACxE,oBAAC,SAAS,IACR,SAAS,EAAE,2BAA2B,CAAC,IAAI,CAAC,EAC5C,IAAI,EAAE,kBAAkB,IAEvB,QAAQ,CACC,CACL,CACV,CAAA;AACH,CAAC,CAAA;AAED,kBAAkB,CAAC,YAAY,GAAG;IAChC,IAAI,EAAE,QAAQ;CACf,CAAA;AAED,eAAe,kBAAkB,CAAA"}
@@ -1,3 +1,3 @@
1
- declare const _default: () => import("@material-ui/styles").StyleRules<{}, "root" | "content" | "medium" | "large" | "small">;
2
- export default _default;
1
+ export declare const createSizeClassNames: (size: 'small' | 'medium' | 'large') => string;
2
+ export declare const createContentSizeClassNames: (size: 'small' | 'medium' | 'large') => string;
3
3
  //# sourceMappingURL=styles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/ButtonControlLabel/styles.ts"],"names":[],"mappings":";AAEA,wBAwBI"}
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/ButtonControlLabel/styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,oBAAoB,SACzB,OAAO,GAAG,QAAQ,GAAG,OAAO,KACjC,MAWF,CAAA;AAED,eAAO,MAAM,2BAA2B,SAChC,OAAO,GAAG,QAAQ,GAAG,OAAO,KACjC,MAWF,CAAA"}
@@ -1,26 +1,17 @@
1
- import { createStyles } from '@material-ui/core/styles';
2
- export default () => createStyles({
3
- root: {
4
- textAlign: 'center',
5
- padding: '0.5rem 1.5rem 0.5rem 1rem',
6
- '&$small': {
7
- padding: '0.25rem 1rem 0.25rem 0.5rem',
8
- },
9
- '&$large': {
10
- padding: '1rem 2rem 1rem 1rem',
11
- },
12
- },
13
- content: {
14
- minWidth: 64,
15
- '$small &': {
16
- minWidth: 48,
17
- },
18
- '$large &': {
19
- minWidth: 84,
20
- },
21
- },
22
- small: {},
23
- medium: {},
24
- large: {},
25
- });
1
+ export const createSizeClassNames = (size) => {
2
+ const sizeClassNames = {
3
+ small: 'py-1 pr-4 pl-2',
4
+ medium: 'py-2 pr-6 pl-4',
5
+ large: 'py-4 pr-8 pl-4',
6
+ };
7
+ return sizeClassNames[size];
8
+ };
9
+ export const createContentSizeClassNames = (size) => {
10
+ const sizeClassNames = {
11
+ small: 'min-w-12',
12
+ medium: 'min-w-16',
13
+ large: 'min-w-[5.25rem]',
14
+ };
15
+ return sizeClassNames[size];
16
+ };
26
17
  //# sourceMappingURL=styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/ButtonControlLabel/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAEvD,eAAe,GAAG,EAAE,CAClB,YAAY,CAAC;IACX,IAAI,EAAE;QACJ,SAAS,EAAE,QAAQ;QACnB,OAAO,EAAE,2BAA2B;QACpC,SAAS,EAAE;YACT,OAAO,EAAE,6BAA6B;SACvC;QACD,SAAS,EAAE;YACT,OAAO,EAAE,qBAAqB;SAC/B;KACF;IACD,OAAO,EAAE;QACP,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE;YACV,QAAQ,EAAE,EAAE;SACb;QACD,UAAU,EAAE;YACV,QAAQ,EAAE,EAAE;SACb;KACF;IACD,KAAK,EAAE,EAAE;IACT,MAAM,EAAE,EAAE;IACV,KAAK,EAAE,EAAE;CACV,CAAC,CAAA"}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/ButtonControlLabel/styles.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,IAAkC,EAC1B,EAAE;IACV,MAAM,cAAc,GAGhB;QACF,KAAK,EAAE,gBAAgB;QACvB,MAAM,EAAE,gBAAgB;QACxB,KAAK,EAAE,gBAAgB;KACxB,CAAA;IAED,OAAO,cAAc,CAAC,IAAI,CAAC,CAAA;AAC7B,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACzC,IAAkC,EAC1B,EAAE;IACV,MAAM,cAAc,GAGhB;QACF,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,UAAU;QAClB,KAAK,EAAE,iBAAiB;KACzB,CAAA;IAED,OAAO,cAAc,CAAC,IAAI,CAAC,CAAA;AAC7B,CAAC,CAAA"}
@@ -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