@toptal/picasso-button 1.0.10-alpha-FX-5195-fix-button-css-precedence-d506658ee.19 → 1.0.10-alpha-feature-migrate-buttons-d11d10471.27

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 (84) hide show
  1. package/dist-package/src/Button/Button.d.ts +1 -0
  2. package/dist-package/src/Button/Button.d.ts.map +1 -1
  3. package/dist-package/src/Button/Button.js +42 -48
  4. package/dist-package/src/Button/Button.js.map +1 -1
  5. package/dist-package/src/Button/styles.d.ts +19 -45
  6. package/dist-package/src/Button/styles.d.ts.map +1 -1
  7. package/dist-package/src/Button/styles.js +160 -178
  8. package/dist-package/src/Button/styles.js.map +1 -1
  9. package/dist-package/src/ButtonAction/ButtonAction.d.ts.map +1 -1
  10. package/dist-package/src/ButtonAction/ButtonAction.js +20 -28
  11. package/dist-package/src/ButtonAction/ButtonAction.js.map +1 -1
  12. package/dist-package/src/ButtonAction/styles.d.ts +11 -3
  13. package/dist-package/src/ButtonAction/styles.d.ts.map +1 -1
  14. package/dist-package/src/ButtonAction/styles.js +36 -55
  15. package/dist-package/src/ButtonAction/styles.js.map +1 -1
  16. package/dist-package/src/ButtonBase/ButtonBase.d.ts +29 -0
  17. package/dist-package/src/ButtonBase/ButtonBase.d.ts.map +1 -0
  18. package/dist-package/src/ButtonBase/ButtonBase.js +78 -0
  19. package/dist-package/src/ButtonBase/ButtonBase.js.map +1 -0
  20. package/dist-package/src/ButtonBase/index.d.ts +5 -0
  21. package/dist-package/src/ButtonBase/index.d.ts.map +1 -0
  22. package/dist-package/src/ButtonBase/index.js +2 -0
  23. package/dist-package/src/ButtonBase/index.js.map +1 -0
  24. package/dist-package/src/ButtonBase/styles.d.ts +6 -0
  25. package/dist-package/src/ButtonBase/styles.d.ts.map +1 -0
  26. package/dist-package/src/ButtonBase/styles.js +29 -0
  27. package/dist-package/src/ButtonBase/styles.js.map +1 -0
  28. package/dist-package/src/ButtonCircular/ButtonCircular.d.ts.map +1 -1
  29. package/dist-package/src/ButtonCircular/ButtonCircular.js +12 -26
  30. package/dist-package/src/ButtonCircular/ButtonCircular.js.map +1 -1
  31. package/dist-package/src/ButtonCircular/styles.d.ts +15 -3
  32. package/dist-package/src/ButtonCircular/styles.d.ts.map +1 -1
  33. package/dist-package/src/ButtonCircular/styles.js +92 -57
  34. package/dist-package/src/ButtonCircular/styles.js.map +1 -1
  35. package/dist-package/src/ButtonCompound/index.d.ts +1 -1
  36. package/dist-package/src/ButtonControlLabel/ButtonControlLabel.js +1 -1
  37. package/dist-package/src/ButtonControlLabel/ButtonControlLabel.js.map +1 -1
  38. package/dist-package/src/ButtonControlLabel/styles.d.ts +1 -1
  39. package/dist-package/src/ButtonGroup/ButtonGroup.d.ts +1 -1
  40. package/dist-package/src/ButtonGroup/ButtonGroup.d.ts.map +1 -1
  41. package/dist-package/src/ButtonGroup/ButtonGroup.js +5 -27
  42. package/dist-package/src/ButtonGroup/ButtonGroup.js.map +1 -1
  43. package/dist-package/src/ButtonGroup/styles.d.ts +1 -2
  44. package/dist-package/src/ButtonGroup/styles.d.ts.map +1 -1
  45. package/dist-package/src/ButtonGroup/styles.js +20 -47
  46. package/dist-package/src/ButtonGroup/styles.js.map +1 -1
  47. package/dist-package/src/ButtonGroupItem/ButtonGroupItem.d.ts +1 -1
  48. package/dist-package/src/ButtonGroupItem/ButtonGroupItem.d.ts.map +1 -1
  49. package/dist-package/src/ButtonGroupItem/ButtonGroupItem.js +17 -12
  50. package/dist-package/src/ButtonGroupItem/ButtonGroupItem.js.map +1 -1
  51. package/dist-package/src/ButtonGroupItem/styles.d.ts +13 -3
  52. package/dist-package/src/ButtonGroupItem/styles.d.ts.map +1 -1
  53. package/dist-package/src/ButtonGroupItem/styles.js +39 -17
  54. package/dist-package/src/ButtonGroupItem/styles.js.map +1 -1
  55. package/dist-package/src/ButtonSplit/ButtonSplit.d.ts.map +1 -1
  56. package/dist-package/src/ButtonSplit/ButtonSplit.js +28 -24
  57. package/dist-package/src/ButtonSplit/ButtonSplit.js.map +1 -1
  58. package/dist-package/src/ButtonSplit/styles.d.ts +9 -3
  59. package/dist-package/src/ButtonSplit/styles.d.ts.map +1 -1
  60. package/dist-package/src/ButtonSplit/styles.js +13 -50
  61. package/dist-package/src/ButtonSplit/styles.js.map +1 -1
  62. package/package.json +19 -14
  63. package/src/Button/Button.tsx +73 -102
  64. package/src/Button/__snapshots__/test.tsx.snap +6 -5
  65. package/src/Button/styles.ts +213 -221
  66. package/src/Button/test.tsx +3 -1
  67. package/src/ButtonAction/ButtonAction.tsx +36 -48
  68. package/src/ButtonAction/styles.ts +57 -57
  69. package/src/ButtonBase/ButtonBase.tsx +182 -0
  70. package/src/ButtonBase/index.ts +5 -0
  71. package/src/ButtonBase/styles.ts +36 -0
  72. package/src/ButtonCheckbox/__snapshots__/test.tsx.snap +3 -3
  73. package/src/ButtonCircular/ButtonCircular.tsx +22 -37
  74. package/src/ButtonCircular/styles.ts +127 -75
  75. package/src/ButtonControlLabel/ButtonControlLabel.tsx +1 -1
  76. package/src/ButtonGroup/ButtonGroup.tsx +9 -44
  77. package/src/ButtonGroup/__snapshots__/test.tsx.snap +7 -7
  78. package/src/ButtonGroup/styles.ts +21 -63
  79. package/src/ButtonGroupItem/ButtonGroupItem.tsx +24 -15
  80. package/src/ButtonGroupItem/styles.ts +62 -28
  81. package/src/ButtonRadio/__snapshots__/test.tsx.snap +3 -3
  82. package/src/ButtonSplit/ButtonSplit.tsx +46 -42
  83. package/src/ButtonSplit/__snapshots__/test.tsx.snap +9 -9
  84. package/src/ButtonSplit/styles.ts +37 -56
@@ -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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"}
@@ -1,4 +1,10 @@
1
- import type { Theme } from '@material-ui/core/styles';
2
- declare const _default: ({ palette }: Theme) => import("@material-ui/styles").StyleRules<{}, "disabled" | "actionButton" | "menuButton" | "primaryVariant" | "smallSize" | "mediumSize" | "largeSize" | "dropdown" | "rotated">;
3
- export default _default;
1
+ import type { SizeType } from '@toptal/picasso-shared';
2
+ export declare const createActionButtonClassNames: ({ variant, }: {
3
+ variant?: "primary" | "secondary" | undefined;
4
+ }) => string;
5
+ export declare const createMenuButtonClassNames: ({ variant, size, disabled, }: {
6
+ variant?: "primary" | "secondary" | undefined;
7
+ size: SizeType<'small' | 'medium' | 'large'>;
8
+ disabled?: boolean | undefined;
9
+ }) => string;
4
10
  //# sourceMappingURL=styles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/ButtonSplit/styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;sCAGxB,KAAK;AAAlC,wBAuDI"}
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/ButtonSplit/styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAGtD,eAAO,MAAM,4BAA4B;;YAUxC,CAAA;AAWD,eAAO,MAAM,0BAA0B;;UAM/B,SAAS,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;;YAS7C,CAAA"}
@@ -1,51 +1,14 @@
1
- import { createStyles } from '@material-ui/core/styles';
2
- export default ({ palette }) => createStyles({
3
- actionButton: {
4
- borderTopRightRadius: 0,
5
- borderBottomRightRadius: 0,
6
- },
7
- menuButton: {
8
- minWidth: '2em',
9
- paddingLeft: '0.5em',
10
- paddingRight: '0.5em',
11
- borderTopLeftRadius: 0,
12
- borderBottomLeftRadius: 0,
13
- marginLeft: 0,
14
- },
15
- primaryVariant: {
16
- '&$actionButton': {
17
- borderRight: `1px solid ${palette.blue.darker}`,
18
- },
19
- '&$menuButton': {
20
- borderLeft: `1px solid ${palette.blue.darker}`,
21
- '&$disabled': {
22
- borderLeftColor: palette.grey.main,
23
- },
24
- },
25
- },
26
- smallSize: {
27
- minWidth: '1.5em',
28
- paddingLeft: '0.25em',
29
- paddingRight: '0.25em',
30
- },
31
- mediumSize: {},
32
- largeSize: {
33
- minWidth: '3em',
34
- paddingLeft: '0.75em',
35
- paddingRight: '0.75em',
36
- },
37
- dropdown: {
38
- display: 'block',
39
- cursor: 'pointer',
40
- },
41
- disabled: {
42
- // override dropdown anchor styles
43
- '& > div': {
44
- cursor: 'auto',
45
- },
46
- },
47
- rotated: {
48
- transform: 'rotate(180deg)',
49
- },
50
- });
1
+ import { twMerge } from 'tailwind-merge';
2
+ export const createActionButtonClassNames = ({ variant, }) => {
3
+ return twMerge('transition-[color,background]', variant === 'primary' &&
4
+ 'border-r border-l-0 border-y-0 border-solid border-blue-700');
5
+ };
6
+ const menuButtonSizeClassNames = {
7
+ small: 'min-w-[1.5em] px-[0.25em]',
8
+ medium: 'min-w-[2em] px-[0.5em]',
9
+ large: 'min-w-[3em] px-[0.75em]',
10
+ };
11
+ export const createMenuButtonClassNames = ({ variant, size, disabled, }) => {
12
+ return twMerge(menuButtonSizeClassNames[size], variant === 'primary' && 'border-l border-r-0 border-y-0 border-solid', variant === 'primary' && disabled && 'border-gray-500', variant === 'primary' && !disabled && 'border-blue-700');
13
+ };
51
14
  //# sourceMappingURL=styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/ButtonSplit/styles.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAEvD,eAAe,CAAC,EAAE,OAAO,EAAS,EAAE,EAAE,CACpC,YAAY,CAAC;IACX,YAAY,EAAE;QACZ,oBAAoB,EAAE,CAAC;QACvB,uBAAuB,EAAE,CAAC;KAC3B;IACD,UAAU,EAAE;QACV,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,OAAO;QACpB,YAAY,EAAE,OAAO;QACrB,mBAAmB,EAAE,CAAC;QACtB,sBAAsB,EAAE,CAAC;QACzB,UAAU,EAAE,CAAC;KACd;IAED,cAAc,EAAE;QACd,gBAAgB,EAAE;YAChB,WAAW,EAAE,aAAa,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE;SAChD;QACD,cAAc,EAAE;YACd,UAAU,EAAE,aAAa,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE;YAE9C,YAAY,EAAE;gBACZ,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI;aACnC;SACF;KACF;IAED,SAAS,EAAE;QACT,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,QAAQ;QACrB,YAAY,EAAE,QAAQ;KACvB;IACD,UAAU,EAAE,EAAE;IACd,SAAS,EAAE;QACT,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,QAAQ;QACrB,YAAY,EAAE,QAAQ;KACvB;IAED,QAAQ,EAAE;QACR,OAAO,EAAE,OAAO;QAChB,MAAM,EAAE,SAAS;KAClB;IAED,QAAQ,EAAE;QACR,kCAAkC;QAClC,SAAS,EAAE;YACT,MAAM,EAAE,MAAM;SACf;KACF;IAED,OAAO,EAAE;QACP,SAAS,EAAE,gBAAgB;KAC5B;CACF,CAAC,CAAA"}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/ButtonSplit/styles.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAExC,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,EAC3C,OAAO,GAGR,EAAE,EAAE;IACH,OAAO,OAAO,CACZ,+BAA+B,EAC/B,OAAO,KAAK,SAAS;QACnB,6DAA6D,CAChE,CAAA;AACH,CAAC,CAAA;AAED,MAAM,wBAAwB,GAG1B;IACF,KAAK,EAAE,2BAA2B;IAClC,MAAM,EAAE,wBAAwB;IAChC,KAAK,EAAE,yBAAyB;CACjC,CAAA;AAED,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,EACzC,OAAO,EACP,IAAI,EACJ,QAAQ,GAKT,EAAE,EAAE;IACH,OAAO,OAAO,CACZ,wBAAwB,CAAC,IAAI,CAAC,EAC9B,OAAO,KAAK,SAAS,IAAI,6CAA6C,EACtE,OAAO,KAAK,SAAS,IAAI,QAAQ,IAAI,iBAAiB,EACtD,OAAO,KAAK,SAAS,IAAI,CAAC,QAAQ,IAAI,iBAAiB,CACxD,CAAA;AACH,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@toptal/picasso-button",
3
- "version": "1.0.10-alpha-FX-5195-fix-button-css-precedence-d506658ee.19+d506658ee",
3
+ "version": "1.0.10-alpha-feature-migrate-buttons-d11d10471.27+d11d10471",
4
4
  "description": "Toptal UI components library - Button",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -22,16 +22,19 @@
22
22
  },
23
23
  "homepage": "https://github.com/toptal/picasso/tree/master/packages/picasso#readme",
24
24
  "dependencies": {
25
- "@toptal/picasso-checkbox": "1.0.7-alpha-FX-5195-fix-button-css-precedence-d506658ee.27+d506658ee",
26
- "@toptal/picasso-container": "1.0.3-alpha-FX-5195-fix-button-css-precedence-d506658ee.56+d506658ee",
27
- "@toptal/picasso-dropdown": "2.0.1-alpha-FX-5195-fix-button-css-precedence-d506658ee.30+d506658ee",
28
- "@toptal/picasso-icons": "1.0.3-alpha-FX-5195-fix-button-css-precedence-d506658ee.56+d506658ee",
29
- "@toptal/picasso-loader": "1.0.3-alpha-FX-5195-fix-button-css-precedence-d506658ee.56+d506658ee",
30
- "@toptal/picasso-radio": "1.0.7-alpha-FX-5195-fix-button-css-precedence-d506658ee.27+d506658ee",
31
- "@toptal/picasso-shared": "14.0.2-alpha-FX-5195-fix-button-css-precedence-d506658ee.56+d506658ee",
32
- "@toptal/picasso-utils": "1.0.3-alpha-FX-5195-fix-button-css-precedence-d506658ee.56+d506658ee",
25
+ "@mui/base": "5.0.0-beta.40",
26
+ "@toptal/picasso-checkbox": "1.0.7-alpha-feature-migrate-buttons-d11d10471.35+d11d10471",
27
+ "@toptal/picasso-container": "1.0.3-alpha-feature-migrate-buttons-d11d10471.64+d11d10471",
28
+ "@toptal/picasso-dropdown": "2.0.1-alpha-feature-migrate-buttons-d11d10471.38+d11d10471",
29
+ "@toptal/picasso-icons": "1.0.3-alpha-feature-migrate-buttons-d11d10471.64+d11d10471",
30
+ "@toptal/picasso-link": "1.0.3-alpha-feature-migrate-buttons-d11d10471.64+d11d10471",
31
+ "@toptal/picasso-loader": "1.0.3-alpha-feature-migrate-buttons-d11d10471.64+d11d10471",
32
+ "@toptal/picasso-radio": "1.0.7-alpha-feature-migrate-buttons-d11d10471.35+d11d10471",
33
+ "@toptal/picasso-shared": "14.0.2-alpha-feature-migrate-buttons-d11d10471.64+d11d10471",
34
+ "@toptal/picasso-utils": "1.0.3-alpha-feature-migrate-buttons-d11d10471.64+d11d10471",
33
35
  "ap-style-title-case": "^1.1.2",
34
- "classnames": "^2.5.1"
36
+ "classnames": "^2.5.1",
37
+ "tailwind-merge": "^2.2.2"
35
38
  },
36
39
  "sideEffects": [
37
40
  "**/styles.ts",
@@ -40,19 +43,21 @@
40
43
  "peerDependencies": {
41
44
  "@material-ui/core": "4.12.4",
42
45
  "@toptal/picasso-provider": "*",
43
- "react": ">=16.12.0 < 19.0.0"
46
+ "@toptal/picasso-tailwind": ">=2.0.1",
47
+ "react": ">=16.12.0 < 19.0.0",
48
+ "tailwindcss": ">=3"
44
49
  },
45
50
  "exports": {
46
51
  ".": "./dist-package/src/index.js"
47
52
  },
48
53
  "devDependencies": {
49
- "@toptal/picasso-provider": "4.2.1-alpha-FX-5195-fix-button-css-precedence-d506658ee.27+d506658ee",
50
- "@toptal/picasso-test-utils": "1.1.1-alpha-FX-5195-fix-button-css-precedence-d506658ee.48+d506658ee"
54
+ "@toptal/picasso-provider": "4.2.1-alpha-feature-migrate-buttons-d11d10471.35+d11d10471",
55
+ "@toptal/picasso-test-utils": "1.1.1-alpha-feature-migrate-buttons-d11d10471.56+d11d10471"
51
56
  },
52
57
  "files": [
53
58
  "dist-package/**",
54
59
  "!dist-package/tsconfig.tsbuildinfo",
55
60
  "src"
56
61
  ],
57
- "gitHead": "d506658ee4c9b1708da9f1d5ca1ac1abfceb8a9f"
62
+ "gitHead": "d11d1047100fb9cfe39e7d0f98884130f8d07543"
58
63
  }
@@ -1,27 +1,26 @@
1
1
  import type { ReactNode, ReactElement, MouseEvent, ElementType } from 'react'
2
2
  import React, { forwardRef } from 'react'
3
3
  import cx from 'classnames'
4
+ import { twMerge } from 'tailwind-merge'
4
5
  import type {
5
6
  StandardProps,
6
7
  SizeType,
7
8
  ButtonOrAnchorProps,
8
9
  OverridableComponent,
9
10
  TextLabelProps,
10
- Classes,
11
11
  } from '@toptal/picasso-shared'
12
- import { useTitleCase } from '@toptal/picasso-shared'
13
- import type { Theme } from '@material-ui/core'
14
- import { makeStyles, ButtonBase } from '@material-ui/core'
15
- import { Loader } from '@toptal/picasso-loader'
16
- import { Container } from '@toptal/picasso-container'
17
- import { noop, toTitleCase } from '@toptal/picasso-utils'
18
-
19
- import styles from './styles'
20
-
21
- const useStyles = makeStyles<Theme, Props>(styles, {
22
- name: 'PicassoButton',
23
- index: 10,
24
- })
12
+ import { noop } from '@toptal/picasso-utils'
13
+ // we need to ensure the correct order of styles import
14
+ // @TODO: to be removed when the component is migrated in FX-4614
15
+ import '@toptal/picasso-link'
16
+
17
+ import { ButtonBase } from '../ButtonBase'
18
+ import {
19
+ createVariantClassNames,
20
+ createCoreClassNames,
21
+ createSizeClassNames,
22
+ createIconClassNames,
23
+ } from './styles'
25
24
 
26
25
  export type VariantType =
27
26
  | 'primary'
@@ -68,31 +67,28 @@ export interface Props
68
67
  type?: 'button' | 'reset' | 'submit'
69
68
  }
70
69
 
71
- const getClickHandler = (loading?: boolean, handler?: Props['onClick']) =>
72
- loading ? noop : handler
73
-
74
- const getIcon = (
75
- classes: Classes,
76
- children: ReactNode,
77
- icon?: ReactElement,
70
+ const getIcon = ({
71
+ children,
72
+ icon,
73
+ iconPosition,
74
+ size,
75
+ }: {
76
+ children: ReactNode
77
+ icon?: ReactElement
78
78
  iconPosition?: IconPositionType
79
- ) => {
79
+ size: SizeType<'small' | 'medium' | 'large'>
80
+ }) => {
80
81
  if (!icon) {
81
- return null
82
+ return undefined
82
83
  }
83
84
 
84
- const {
85
- icon: iconClass,
86
- iconLeft: iconLeftClass,
87
- iconRight: iconRightClass,
88
- } = classes
85
+ const iconClassNames = createIconClassNames({
86
+ size,
87
+ iconPosition: children && iconPosition ? iconPosition : undefined,
88
+ })
89
89
 
90
90
  return React.cloneElement(icon, {
91
- className: cx(iconClass, icon.props.className, {
92
- [iconLeftClass]: children && iconPosition === 'left',
93
- [iconRightClass]: children && iconPosition === 'right',
94
- }),
95
- key: 'button-icon',
91
+ className: twMerge(iconClassNames, icon.props.className),
96
92
  })
97
93
  }
98
94
 
@@ -104,9 +100,7 @@ export const Button: OverridableComponent<Props> = forwardRef<
104
100
  icon,
105
101
  iconPosition,
106
102
  loading,
107
- children,
108
103
  className,
109
- style,
110
104
  fullWidth,
111
105
  variant = 'primary',
112
106
  size = 'medium',
@@ -114,86 +108,63 @@ export const Button: OverridableComponent<Props> = forwardRef<
114
108
  hovered,
115
109
  disabled,
116
110
  active,
117
- onClick,
118
- title,
119
- value,
120
- type,
121
- as = 'button',
122
- titleCase: propsTitleCase,
123
111
  ...rest
124
112
  } = props
125
- const classes = useStyles(props)
126
-
127
- const {
128
- root: rootClass,
129
- hidden: hiddenClass,
130
- loader: loaderClass,
131
- content: contentClass,
132
- } = classes
133
-
134
- const titleCase = useTitleCase(propsTitleCase)
135
-
136
- const finalChildren = [titleCase ? toTitleCase(children) : children]
137
113
 
138
- if (icon) {
139
- const iconComponent = getIcon(classes, children, icon, iconPosition)
114
+ const iconComponent = getIcon({
115
+ children: rest.children,
116
+ icon,
117
+ iconPosition,
118
+ size,
119
+ })
120
+ const coreClassNames = createCoreClassNames({
121
+ disabled,
122
+ focused,
123
+ hovered,
124
+ active,
125
+ })
126
+ const variantClassNames = createVariantClassNames(variant, {
127
+ disabled,
128
+ focused,
129
+ hovered,
130
+ active,
131
+ })
132
+ const sizeClassNames = createSizeClassNames(size)
133
+
134
+ const finalClassName = twMerge(
135
+ coreClassNames,
136
+ variantClassNames,
137
+ sizeClassNames,
138
+ fullWidth ? 'w-full' : '',
139
+ className
140
+ )
140
141
 
141
- if (iconPosition === 'left') {
142
- finalChildren.unshift(iconComponent)
143
- } else {
144
- finalChildren.push(iconComponent)
145
- }
142
+ const contentSizeClassNames: Record<
143
+ SizeType<'small' | 'medium' | 'large'>,
144
+ string[]
145
+ > = {
146
+ small: ['text-button-small'],
147
+ medium: ['text-button-medium'],
148
+ large: ['text-button-large'],
146
149
  }
147
150
 
148
- const variantClassName = classes[variant]
149
- const sizeClassName = classes[size]
150
-
151
- const rootClassName = cx(
152
- {
153
- [classes.fullWidth]: fullWidth,
154
- [classes.active]: active,
155
- [classes.focused]: focused,
156
- [classes.hovered]: hovered,
157
- [classes.disabled]: disabled,
158
- },
159
- sizeClassName,
160
- variantClassName,
161
- rootClass
151
+ const contentClassName = cx(
152
+ 'font-semibold whitespace-nowrap',
153
+ contentSizeClassNames[size],
154
+ loading ? 'opacity-0' : ''
162
155
  )
163
156
 
164
157
  return (
165
158
  <ButtonBase
166
159
  {...rest}
167
160
  ref={ref}
168
- classes={{
169
- root: rootClassName,
170
- focusVisible: cx(classes.focusVisible),
171
- }}
172
- onClick={getClickHandler(loading, onClick)}
173
- className={className}
174
- style={style}
161
+ className={finalClassName}
162
+ contentClassName={contentClassName}
163
+ icon={iconComponent}
164
+ iconPosition={iconPosition}
165
+ loading={loading}
175
166
  disabled={disabled}
176
- title={title}
177
- value={value}
178
- type={type}
179
- component={as}
180
- data-component-type='button'
181
- >
182
- <Container
183
- as='span'
184
- inline
185
- flex
186
- direction='row'
187
- alignItems='center'
188
- className={cx({ [hiddenClass]: loading }, contentClass)}
189
- >
190
- {finalChildren}
191
- </Container>
192
-
193
- {loading && (
194
- <Loader variant='inherit' className={loaderClass} inline size='small' />
195
- )}
196
- </ButtonBase>
167
+ />
197
168
  )
198
169
  })
199
170
 
@@ -7,13 +7,14 @@ exports[`Button disabled button as link renders disabled version 1`] = `
7
7
  >
8
8
  <a
9
9
  aria-disabled="true"
10
- class="MuiTypography-root MuiLink-root MuiLink-underlineHover PicassoLink-root MuiButtonBase-root PicassoButton-disabled PicassoButton-medium PicassoButton-primary PicassoButton-root Mui-disabled PicassoLink-blue MuiTypography-colorPrimary"
10
+ class="MuiTypography-root MuiLink-root MuiLink-underlineHover PicassoLink-root base-Button base- text-lg inline-flex items-center justify-center select-none appearance-none m-0 relative normal-case align-middle transition-colors duration-350 ease-out shrink-0 outline-none [&+&]:ml-4 cursor-default pointer-events no-underline rounded-sm shadow-none border-none text-white visited:text-white bg-gray min-w h-8 py-0 px-4 PicassoLink-blue MuiTypography-colorPrimary"
11
11
  data-component-type="button"
12
- role="button"
12
+ href="URL"
13
13
  tabindex="-1"
14
+ type="button"
14
15
  >
15
16
  <span
16
- class="PicassoContainer-centerAlignItems PicassoContainer-flex PicassoContainer-inline PicassoButton-content"
17
+ class="PicassoContainer-centerAlignItems PicassoContainer-flex PicassoContainer-inline font-semibold whitespace-nowrap text-button"
17
18
  >
18
19
  Click me!
19
20
  </span>
@@ -28,14 +29,14 @@ exports[`Button disabled button renders disabled version 1`] = `
28
29
  class="Picasso-root"
29
30
  >
30
31
  <button
31
- class="MuiButtonBase-root PicassoButton-disabled PicassoButton-medium PicassoButton-primary PicassoButton-root Mui-disabled"
32
+ class="base-Button base- text-lg inline-flex items-center justify-center select-none appearance-none m-0 relative normal-case align-middle transition-colors duration-350 ease-out shrink-0 outline-none [&+&]:ml-4 cursor-default pointer-events no-underline rounded-sm shadow-none border-none text-white visited:text-white bg-gray min-w h-8 py-0 px-4"
32
33
  data-component-type="button"
33
34
  disabled=""
34
35
  tabindex="-1"
35
36
  type="button"
36
37
  >
37
38
  <span
38
- class="PicassoContainer-centerAlignItems PicassoContainer-flex PicassoContainer-inline PicassoButton-content"
39
+ class="PicassoContainer-centerAlignItems PicassoContainer-flex PicassoContainer-inline font-semibold whitespace-nowrap text-button"
39
40
  >
40
41
  Click me!
41
42
  </span>