@toptal/picasso-button 2.0.8-alpha-fx-null-fix-button-e862ee8b7.0 → 2.0.8-alpha-fix-picasso-tailwind-dep-on-merge-c2b204d90.8

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.
@@ -27,12 +27,7 @@ const getIcon = ({ children, icon, iconPosition, }) => {
27
27
  };
28
28
  const loaderIcon = React.createElement(Loader, { size: 'small', variant: 'inherit' });
29
29
  export const ButtonAction = forwardRef(function ButtonAction(props, ref) {
30
- const {
31
- /* eslint-disable @typescript-eslint/no-unused-vars */
32
- // We use these props only to determine styles
33
- active, focused, hovered,
34
- /* eslint-enable @typescript-eslint/no-unused-vars */
35
- className, disabled, loading, icon, iconPosition, onClick } = props, rest = __rest(props, ["active", "focused", "hovered", "className", "disabled", "loading", "icon", "iconPosition", "onClick"]);
30
+ const { className, active, focused, hovered, disabled, loading, icon, iconPosition, onClick } = props, rest = __rest(props, ["className", "active", "focused", "hovered", "disabled", "loading", "icon", "iconPosition", "onClick"]);
36
31
  const usedIcon = loading ? loaderIcon : icon;
37
32
  const usedIconPosition = icon ? iconPosition : 'right';
38
33
  const finalClassName = cx(createRootClassNames(props), className);
@@ -41,7 +36,7 @@ export const ButtonAction = forwardRef(function ButtonAction(props, ref) {
41
36
  icon: usedIcon,
42
37
  iconPosition: usedIconPosition,
43
38
  });
44
- return (React.createElement(ButtonBase, Object.assign({}, rest, { ref: ref, icon: finalIcon, iconPosition: usedIconPosition, onClick: loading ? undefined : onClick, className: finalClassName, contentClassName: 'font-semibold text-blue-500 text-md', disabled: disabled })));
39
+ return (React.createElement(ButtonBase, Object.assign({}, rest, { ref: ref, icon: finalIcon, iconPosition: usedIconPosition, onClick: loading ? undefined : onClick, className: finalClassName, contentClassName: 'font-semibold text-blue-500 text-md', active: active, hovered: hovered, focused: focused, disabled: disabled })));
45
40
  });
46
41
  ButtonAction.defaultProps = {
47
42
  iconPosition: 'left',
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonAction.js","sourceRoot":"","sources":["../../../src/ButtonAction/ButtonAction.tsx"],"names":[],"mappings":";;;;;;;;;;;AACA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,EAAE,MAAM,YAAY,CAAA;AAM3B,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAG/C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAErE,MAAM,OAAO,GAAG,CAAC,EACf,QAAQ,EACR,IAAI,EACJ,YAAY,GAKb,EAAE,EAAE;IACH,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,IAAI,CAAA;KACZ;IAED,MAAM,cAAc,GAAG,oBAAoB,CAAC;QAC1C,YAAY,EAAE,QAAQ,IAAI,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;KAClE,CAAC,CAAA;IAEF,OAAO,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE;QAC9B,SAAS,EAAE,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;KACpD,CAAC,CAAA;AACJ,CAAC,CAAA;AAyBD,MAAM,UAAU,GAAG,oBAAC,MAAM,IAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAC,SAAS,GAAG,CAAA;AAE5D,MAAM,CAAC,MAAM,YAAY,GAAgC,UAAU,CAGjE,SAAS,YAAY,CAAC,KAAK,EAAE,GAAG;IAChC,MAAM;IACJ,sDAAsD;IACtD,8CAA8C;IAC9C,MAAM,EACN,OAAO,EACP,OAAO;IACP,qDAAqD;IACrD,SAAS,EACT,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,OAAO,KAEL,KAAK,EADJ,IAAI,UACL,KAAK,EAdH,uGAcL,CAAQ,CAAA;IAET,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAA;IAC5C,MAAM,gBAAgB,GAAG,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAA;IAEtD,MAAM,cAAc,GAAG,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAA;IACjE,MAAM,SAAS,GAAG,OAAO,CAAC;QACxB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,gBAAgB;KAC/B,CAAC,CAAA;IAEF,OAAO,CACL,oBAAC,UAAU,oBACL,IAAI,IACR,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,SAAS,EACf,YAAY,EAAE,gBAAgB,EAC9B,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EACtC,SAAS,EAAE,cAAc,EACzB,gBAAgB,EAAC,qCAAqC,EACtD,QAAQ,EAAE,QAAQ,IAClB,CACH,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,YAAY,CAAC,YAAY,GAAG;IAC1B,YAAY,EAAE,MAAM;CACrB,CAAA;AAED,YAAY,CAAC,WAAW,GAAG,cAAc,CAAA;AAEzC,eAAe,YAAY,CAAA"}
1
+ {"version":3,"file":"ButtonAction.js","sourceRoot":"","sources":["../../../src/ButtonAction/ButtonAction.tsx"],"names":[],"mappings":";;;;;;;;;;;AACA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,EAAE,MAAM,YAAY,CAAA;AAM3B,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAG/C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAErE,MAAM,OAAO,GAAG,CAAC,EACf,QAAQ,EACR,IAAI,EACJ,YAAY,GAKb,EAAE,EAAE;IACH,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,IAAI,CAAA;KACZ;IAED,MAAM,cAAc,GAAG,oBAAoB,CAAC;QAC1C,YAAY,EAAE,QAAQ,IAAI,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;KAClE,CAAC,CAAA;IAEF,OAAO,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE;QAC9B,SAAS,EAAE,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;KACpD,CAAC,CAAA;AACJ,CAAC,CAAA;AAyBD,MAAM,UAAU,GAAG,oBAAC,MAAM,IAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAC,SAAS,GAAG,CAAA;AAE5D,MAAM,CAAC,MAAM,YAAY,GAAgC,UAAU,CAGjE,SAAS,YAAY,CAAC,KAAK,EAAE,GAAG;IAChC,MAAM,EACJ,SAAS,EACT,MAAM,EACN,OAAO,EACP,OAAO,EACP,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,OAAO,KAEL,KAAK,EADJ,IAAI,UACL,KAAK,EAXH,uGAWL,CAAQ,CAAA;IAET,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAA;IAC5C,MAAM,gBAAgB,GAAG,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAA;IAEtD,MAAM,cAAc,GAAG,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAA;IACjE,MAAM,SAAS,GAAG,OAAO,CAAC;QACxB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,gBAAgB;KAC/B,CAAC,CAAA;IAEF,OAAO,CACL,oBAAC,UAAU,oBACL,IAAI,IACR,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,SAAS,EACf,YAAY,EAAE,gBAAgB,EAC9B,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EACtC,SAAS,EAAE,cAAc,EACzB,gBAAgB,EAAC,qCAAqC,EACtD,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,IAClB,CACH,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,YAAY,CAAC,YAAY,GAAG;IAC1B,YAAY,EAAE,MAAM;CACrB,CAAA;AAED,YAAY,CAAC,WAAW,GAAG,cAAc,CAAA;AAEzC,eAAe,YAAY,CAAA"}
@@ -23,8 +23,6 @@ export interface Props extends StandardProps, TextLabelProps, ButtonOrAnchorProp
23
23
  title?: string;
24
24
  /** HTML type of Button component */
25
25
  type?: 'button' | 'reset' | 'submit';
26
- /** The HTML element that is ultimately rendered, for example 'button', 'a' or 'label */
27
- rootElementName?: keyof HTMLElementTagNameMap;
28
26
  }
29
27
  export declare const ButtonBase: OverridableComponent<Props>;
30
28
  export default ButtonBase;
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonBase.d.ts","sourceRoot":"","sources":["../../../src/ButtonBase/ButtonBase.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAG7E,OAAO,KAAK,EACV,aAAa,EACb,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACf,MAAM,wBAAwB,CAAA;AAU/B,oBAAY,gBAAgB,GAAG,MAAM,GAAG,OAAO,CAAA;AAE/C,MAAM,WAAW,KACf,SAAQ,aAAa,EACnB,cAAc,EACd,mBAAmB;IACrB,EAAE,CAAC,EAAE,WAAW,CAAA;IAChB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,gCAAgC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,gDAAgD;IAChD,IAAI,CAAC,EAAE,YAAY,CAAA;IACnB,kDAAkD;IAClD,YAAY,CAAC,EAAE,gBAAgB,CAAA;IAC/B,0DAA0D;IAC1D,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,iDAAiD;IACjD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,KAAK,IAAI,CAAA;IAC5E,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,oCAAoC;IACpC,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAA;IACpC,wFAAwF;IACxF,eAAe,CAAC,EAAE,MAAM,qBAAqB,CAAA;CAC9C;AAyBD,eAAO,MAAM,UAAU,EAAE,oBAAoB,CAAC,KAAK,CAsFjD,CAAA;AAcF,eAAe,UAAU,CAAA"}
1
+ {"version":3,"file":"ButtonBase.d.ts","sourceRoot":"","sources":["../../../src/ButtonBase/ButtonBase.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,YAAY,EACZ,UAAU,EACV,WAAW,EAEZ,MAAM,OAAO,CAAA;AAGd,OAAO,KAAK,EACV,aAAa,EACb,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACf,MAAM,wBAAwB,CAAA;AAS/B,oBAAY,gBAAgB,GAAG,MAAM,GAAG,OAAO,CAAA;AAE/C,MAAM,WAAW,KACf,SAAQ,aAAa,EACnB,cAAc,EACd,mBAAmB;IACrB,EAAE,CAAC,EAAE,WAAW,CAAA;IAChB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,gCAAgC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,gDAAgD;IAChD,IAAI,CAAC,EAAE,YAAY,CAAA;IACnB,kDAAkD;IAClD,YAAY,CAAC,EAAE,gBAAgB,CAAA;IAC/B,0DAA0D;IAC1D,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,iDAAiD;IACjD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,KAAK,IAAI,CAAA;IAC5E,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,oCAAoC;IACpC,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAA;CACrC;AAyBD,eAAO,MAAM,UAAU,EAAE,oBAAoB,CAAC,KAAK,CAgGjD,CAAA;AAcF,eAAe,UAAU,CAAA"}
@@ -27,22 +27,33 @@ const getIcon = ({ icon }) => {
27
27
  key: 'button-icon',
28
28
  });
29
29
  };
30
- const RootElement = forwardRef((props, ref) => {
31
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
32
- const { ownerState, as: Root } = props, rest = __rest(props, ["ownerState", "as"]);
33
- return React.createElement(Root, Object.assign({}, rest, { ref: ref }));
34
- });
30
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
31
+ const isReactComponent = (component) => {
32
+ return (component &&
33
+ (component.$$typeof === Symbol.for('react.forward_ref') ||
34
+ typeof component === 'function'));
35
+ };
35
36
  export const ButtonBase = forwardRef(function ButtonBase(props, ref) {
36
37
  var _a, _b;
37
- const { icon, iconPosition, loading, children, className, contentClassName, style, disabled, onClick, title, value, type, as = 'button', rootElementName, titleCase: propsTitleCase } = props, rest = __rest(props, ["icon", "iconPosition", "loading", "children", "className", "contentClassName", "style", "disabled", "onClick", "title", "value", "type", "as", "rootElementName", "titleCase"]);
38
+ const { icon, iconPosition, loading, children, className, contentClassName, style, disabled, onClick, title, value, type, as = 'button', titleCase: propsTitleCase } = props, rest = __rest(props, ["icon", "iconPosition", "loading", "children", "className", "contentClassName", "style", "disabled", "onClick", "title", "value", "type", "as", "titleCase"]);
39
+ let RootElement = as;
40
+ if (isReactComponent(RootElement)) {
41
+ RootElement = forwardRef(
42
+ // We don't need to pass ownerState to the root component
43
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
44
+ (_a, rootRef) => {
45
+ var { ownerState } = _a, restProps = __rest(_a, ["ownerState"]);
46
+ const Root = as;
47
+ return React.createElement(Root, Object.assign({ ref: rootRef }, restProps));
48
+ });
49
+ }
38
50
  const titleCase = useTitleCase(propsTitleCase);
39
51
  const finalChildren = [titleCase ? toTitleCase(children) : children];
40
52
  /*
41
53
  Workaround for the case: <Button as={Link} href='' /> (with empty href!), we have to determine "rootElementName" like below
42
54
  Mui/base throws an error when "href" or "to" are empty
43
55
  */
44
- const finalRootElementName = rootElementName ||
45
- (as !== 'button' && ('href' in props || 'to' in props) ? 'a' : undefined);
56
+ const rootElementName = as !== 'button' && ('href' in props || 'to' in props) ? 'a' : undefined;
46
57
  if (icon) {
47
58
  const iconComponent = getIcon({ icon });
48
59
  if (iconPosition === 'left') {
@@ -53,9 +64,7 @@ export const ButtonBase = forwardRef(function ButtonBase(props, ref) {
53
64
  }
54
65
  }
55
66
  const finalClassName = twMerge(createCoreClassNames({ disabled }), className);
56
- return (React.createElement(MUIButtonBase, Object.assign({}, rest, { ref: ref, onClick: getClickHandler(loading, onClick), className: finalClassName, style: style, "aria-disabled": disabled, disabled: disabled, title: title, value: value, type: type, "data-component-type": 'button', tabIndex: ((_a = rest.tabIndex) !== null && _a !== void 0 ? _a : disabled) ? -1 : 0, role: (_b = rest.role) !== null && _b !== void 0 ? _b : 'button', rootElementName: finalRootElementName, slots: { root: RootElement },
57
- // @ts-ignore
58
- slotProps: { root: { as } } }),
67
+ return (React.createElement(MUIButtonBase, Object.assign({}, rest, { ref: ref, onClick: getClickHandler(loading, onClick), className: finalClassName, style: style, "aria-disabled": disabled, disabled: disabled, title: title, value: value, type: type, "data-component-type": 'button', tabIndex: ((_a = rest.tabIndex) !== null && _a !== void 0 ? _a : disabled) ? -1 : 0, role: (_b = rest.role) !== null && _b !== void 0 ? _b : 'button', rootElementName: rootElementName, slots: { root: RootElement } }),
59
68
  React.createElement(Container, { as: 'span', inline: true, flex: true, direction: 'row', alignItems: 'center', className: contentClassName }, finalChildren),
60
69
  loading && (React.createElement(Loader, { variant: 'inherit', className: 'absolute top-1/2 left-1/2 translate-x-[-50%] translate-y-[-50%]', inline: true, size: 'small' }))));
61
70
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonBase.js","sourceRoot":"","sources":["../../../src/ButtonBase/ButtonBase.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ButtonBase.js","sourceRoot":"","sources":["../../../src/ButtonBase/ButtonBase.tsx"],"names":[],"mappings":"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"}
@@ -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;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;;;;CAuBP,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"}
@@ -17,7 +17,7 @@ import { createSizeClassNames, createContentSizeClassNames } from './styles';
17
17
  const ButtonControlLabel = (_a) => {
18
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"]);
19
19
  const contentLeftSpacing = size === 'large' ? 1 : 0.5;
20
- return (React.createElement(Button, Object.assign({}, props, { className: twMerge('text-center', createSizeClassNames(size), className), variant: 'secondary', size: size, as: 'label', rootElementName: '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 }),
21
21
  React.cloneElement(control, { id, checked, value, onChange, disabled }),
22
22
  React.createElement(Container, { className: createContentSizeClassNames(size), left: contentLeftSpacing }, children)));
23
23
  };
@@ -1 +1 @@
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,eAAe,EAAC,OAAO,EACvB,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
+ {"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@toptal/picasso-button",
3
- "version": "2.0.8-alpha-fx-null-fix-button-e862ee8b7.0+e862ee8b7",
3
+ "version": "2.0.8-alpha-fix-picasso-tailwind-dep-on-merge-c2b204d90.8+c2b204d90",
4
4
  "description": "Toptal UI components library - Button",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -23,15 +23,15 @@
23
23
  "homepage": "https://github.com/toptal/picasso/tree/master/packages/picasso#readme",
24
24
  "dependencies": {
25
25
  "@mui/base": "5.0.0-beta.40",
26
- "@toptal/picasso-checkbox": "2.0.7-alpha-fx-null-fix-button-e862ee8b7.0+e862ee8b7",
27
- "@toptal/picasso-container": "1.0.4-alpha-fx-null-fix-button-e862ee8b7.34+e862ee8b7",
28
- "@toptal/picasso-dropdown": "2.0.4-alpha-fx-null-fix-button-e862ee8b7.32+e862ee8b7",
29
- "@toptal/picasso-icons": "1.4.1-alpha-fx-null-fix-button-e862ee8b7.0+e862ee8b7",
30
- "@toptal/picasso-link": "1.0.4-alpha-fx-null-fix-button-e862ee8b7.34+e862ee8b7",
31
- "@toptal/picasso-loader": "1.0.4-alpha-fx-null-fix-button-e862ee8b7.34+e862ee8b7",
32
- "@toptal/picasso-radio": "2.0.7-alpha-fx-null-fix-button-e862ee8b7.0+e862ee8b7",
33
- "@toptal/picasso-shared": "15.0.1-alpha-fx-null-fix-button-e862ee8b7.34+e862ee8b7",
34
- "@toptal/picasso-utils": "1.0.4-alpha-fx-null-fix-button-e862ee8b7.34+e862ee8b7",
26
+ "@toptal/picasso-checkbox": "2.0.7-alpha-fix-picasso-tailwind-dep-on-merge-c2b204d90.8+c2b204d90",
27
+ "@toptal/picasso-container": "1.0.4-alpha-fix-picasso-tailwind-dep-on-merge-c2b204d90.42+c2b204d90",
28
+ "@toptal/picasso-dropdown": "2.0.4-alpha-fix-picasso-tailwind-dep-on-merge-c2b204d90.40+c2b204d90",
29
+ "@toptal/picasso-icons": "1.4.1-alpha-fix-picasso-tailwind-dep-on-merge-c2b204d90.8+c2b204d90",
30
+ "@toptal/picasso-link": "1.0.4-alpha-fix-picasso-tailwind-dep-on-merge-c2b204d90.42+c2b204d90",
31
+ "@toptal/picasso-loader": "1.0.4-alpha-fix-picasso-tailwind-dep-on-merge-c2b204d90.42+c2b204d90",
32
+ "@toptal/picasso-radio": "2.0.7-alpha-fix-picasso-tailwind-dep-on-merge-c2b204d90.8+c2b204d90",
33
+ "@toptal/picasso-shared": "15.0.1-alpha-fix-picasso-tailwind-dep-on-merge-c2b204d90.42+c2b204d90",
34
+ "@toptal/picasso-utils": "1.0.4-alpha-fix-picasso-tailwind-dep-on-merge-c2b204d90.42+c2b204d90",
35
35
  "ap-style-title-case": "^1.1.2",
36
36
  "classnames": "^2.5.1",
37
37
  "tailwind-merge": "^2.2.2"
@@ -49,13 +49,13 @@
49
49
  ".": "./dist-package/src/index.js"
50
50
  },
51
51
  "devDependencies": {
52
- "@toptal/picasso-provider": "4.2.2-alpha-fx-null-fix-button-e862ee8b7.42+e862ee8b7",
53
- "@toptal/picasso-test-utils": "1.1.2-alpha-fx-null-fix-button-e862ee8b7.34+e862ee8b7"
52
+ "@toptal/picasso-provider": "4.2.2-alpha-fix-picasso-tailwind-dep-on-merge-c2b204d90.50+c2b204d90",
53
+ "@toptal/picasso-test-utils": "1.1.2-alpha-fix-picasso-tailwind-dep-on-merge-c2b204d90.42+c2b204d90"
54
54
  },
55
55
  "files": [
56
56
  "dist-package/**",
57
57
  "!dist-package/tsconfig.tsbuildinfo",
58
58
  "src"
59
59
  ],
60
- "gitHead": "e862ee8b7dd480b508f5258999f409fe0ab1611c"
60
+ "gitHead": "c2b204d9057d2c3d480f11ea8930eba5d2695b53"
61
61
  }
@@ -64,13 +64,10 @@ export const ButtonAction: OverridableComponent<Props> = forwardRef<
64
64
  Props
65
65
  >(function ButtonAction(props, ref) {
66
66
  const {
67
- /* eslint-disable @typescript-eslint/no-unused-vars */
68
- // We use these props only to determine styles
67
+ className,
69
68
  active,
70
69
  focused,
71
70
  hovered,
72
- /* eslint-enable @typescript-eslint/no-unused-vars */
73
- className,
74
71
  disabled,
75
72
  loading,
76
73
  icon,
@@ -98,6 +95,9 @@ export const ButtonAction: OverridableComponent<Props> = forwardRef<
98
95
  onClick={loading ? undefined : onClick}
99
96
  className={finalClassName}
100
97
  contentClassName='font-semibold text-blue-500 text-md'
98
+ active={active}
99
+ hovered={hovered}
100
+ focused={focused}
101
101
  disabled={disabled}
102
102
  />
103
103
  )
@@ -1,4 +1,10 @@
1
- import type { ReactNode, ReactElement, MouseEvent, ElementType } from 'react'
1
+ import type {
2
+ ReactNode,
3
+ ReactElement,
4
+ MouseEvent,
5
+ ElementType,
6
+ FC,
7
+ } from 'react'
2
8
  import React, { forwardRef } from 'react'
3
9
  import { twMerge } from 'tailwind-merge'
4
10
  import type {
@@ -9,7 +15,6 @@ import type {
9
15
  } from '@toptal/picasso-shared'
10
16
  import { useTitleCase } from '@toptal/picasso-shared'
11
17
  import { Button as MUIButtonBase } from '@mui/base/Button'
12
- import type { ButtonRootSlotProps } from '@mui/base/Button'
13
18
  import { Loader } from '@toptal/picasso-loader'
14
19
  import { Container } from '@toptal/picasso-container'
15
20
  import { noop, toTitleCase } from '@toptal/picasso-utils'
@@ -43,8 +48,6 @@ export interface Props
43
48
  title?: string
44
49
  /** HTML type of Button component */
45
50
  type?: 'button' | 'reset' | 'submit'
46
- /** The HTML element that is ultimately rendered, for example 'button', 'a' or 'label */
47
- rootElementName?: keyof HTMLElementTagNameMap
48
51
  }
49
52
 
50
53
  const getClickHandler = (loading?: boolean, handler?: Props['onClick']) =>
@@ -61,14 +64,14 @@ const getIcon = ({ icon }: { icon?: ReactElement }) => {
61
64
  })
62
65
  }
63
66
 
64
- const RootElement = forwardRef(
65
- (props: ButtonRootSlotProps & { as: ElementType }, ref) => {
66
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
67
- const { ownerState, as: Root, ...rest } = props
68
-
69
- return <Root {...rest} ref={ref} />
70
- }
71
- )
67
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
68
+ const isReactComponent = (component: any) => {
69
+ return (
70
+ component &&
71
+ (component.$$typeof === Symbol.for('react.forward_ref') ||
72
+ typeof component === 'function')
73
+ )
74
+ }
72
75
 
73
76
  export const ButtonBase: OverridableComponent<Props> = forwardRef<
74
77
  HTMLButtonElement,
@@ -88,20 +91,32 @@ export const ButtonBase: OverridableComponent<Props> = forwardRef<
88
91
  value,
89
92
  type,
90
93
  as = 'button',
91
- rootElementName,
92
94
  titleCase: propsTitleCase,
93
95
  ...rest
94
96
  } = props
95
97
 
98
+ let RootElement: ElementType | FC = as
99
+
100
+ if (isReactComponent(RootElement)) {
101
+ RootElement = forwardRef(
102
+ // We don't need to pass ownerState to the root component
103
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
104
+ ({ ownerState, ...restProps }: { ownerState: object }, rootRef) => {
105
+ const Root = as
106
+
107
+ return <Root ref={rootRef} {...restProps} />
108
+ }
109
+ )
110
+ }
111
+
96
112
  const titleCase = useTitleCase(propsTitleCase)
97
113
  const finalChildren = [titleCase ? toTitleCase(children) : children]
98
114
  /*
99
115
  Workaround for the case: <Button as={Link} href='' /> (with empty href!), we have to determine "rootElementName" like below
100
116
  Mui/base throws an error when "href" or "to" are empty
101
117
  */
102
- const finalRootElementName =
103
- rootElementName ||
104
- (as !== 'button' && ('href' in props || 'to' in props) ? 'a' : undefined)
118
+ const rootElementName =
119
+ as !== 'button' && ('href' in props || 'to' in props) ? 'a' : undefined
105
120
 
106
121
  if (icon) {
107
122
  const iconComponent = getIcon({ icon })
@@ -130,10 +145,8 @@ export const ButtonBase: OverridableComponent<Props> = forwardRef<
130
145
  data-component-type='button'
131
146
  tabIndex={rest.tabIndex ?? disabled ? -1 : 0}
132
147
  role={rest.role ?? 'button'}
133
- rootElementName={finalRootElementName}
148
+ rootElementName={rootElementName}
134
149
  slots={{ root: RootElement }}
135
- // @ts-ignore
136
- slotProps={{ root: { as } }}
137
150
  >
138
151
  <Container
139
152
  as='span'
@@ -56,7 +56,6 @@ const ButtonControlLabel = ({
56
56
  variant='secondary'
57
57
  size={size}
58
58
  as='label'
59
- rootElementName='label'
60
59
  htmlFor={id}
61
60
  disabled={disabled}
62
61
  >