@toptal/picasso-button 1.0.10-alpha-dependabot-npm-and-yarn-debounce-2.0.0-7bd37151a.8 → 1.0.10-alpha-feature-migrate-buttons-638be38bb.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-package/src/Button/Button.d.ts.map +1 -1
- package/dist-package/src/Button/Button.js +39 -47
- package/dist-package/src/Button/Button.js.map +1 -1
- package/dist-package/src/Button/styles.d.ts +19 -45
- package/dist-package/src/Button/styles.d.ts.map +1 -1
- package/dist-package/src/Button/styles.js +160 -178
- package/dist-package/src/Button/styles.js.map +1 -1
- package/dist-package/src/ButtonAction/ButtonAction.d.ts.map +1 -1
- package/dist-package/src/ButtonAction/ButtonAction.js +20 -28
- package/dist-package/src/ButtonAction/ButtonAction.js.map +1 -1
- package/dist-package/src/ButtonAction/styles.d.ts +11 -3
- package/dist-package/src/ButtonAction/styles.d.ts.map +1 -1
- package/dist-package/src/ButtonAction/styles.js +36 -55
- package/dist-package/src/ButtonAction/styles.js.map +1 -1
- package/dist-package/src/ButtonBase/ButtonBase.d.ts +29 -0
- package/dist-package/src/ButtonBase/ButtonBase.d.ts.map +1 -0
- package/dist-package/src/ButtonBase/ButtonBase.js +77 -0
- package/dist-package/src/ButtonBase/ButtonBase.js.map +1 -0
- package/dist-package/src/ButtonBase/index.d.ts +5 -0
- package/dist-package/src/ButtonBase/index.d.ts.map +1 -0
- package/dist-package/src/ButtonBase/index.js +2 -0
- package/dist-package/src/ButtonBase/index.js.map +1 -0
- package/dist-package/src/ButtonBase/styles.d.ts +8 -0
- package/dist-package/src/ButtonBase/styles.d.ts.map +1 -0
- package/dist-package/src/ButtonBase/styles.js +29 -0
- package/dist-package/src/ButtonBase/styles.js.map +1 -0
- package/dist-package/src/ButtonCircular/ButtonCircular.d.ts.map +1 -1
- package/dist-package/src/ButtonCircular/ButtonCircular.js +12 -26
- package/dist-package/src/ButtonCircular/ButtonCircular.js.map +1 -1
- package/dist-package/src/ButtonCircular/styles.d.ts +15 -3
- package/dist-package/src/ButtonCircular/styles.d.ts.map +1 -1
- package/dist-package/src/ButtonCircular/styles.js +92 -57
- package/dist-package/src/ButtonCircular/styles.js.map +1 -1
- package/dist-package/src/ButtonCompound/index.d.ts +1 -1
- package/dist-package/src/ButtonControlLabel/styles.d.ts +1 -1
- package/dist-package/src/ButtonGroup/ButtonGroup.d.ts +1 -1
- package/dist-package/src/ButtonGroup/ButtonGroup.d.ts.map +1 -1
- package/dist-package/src/ButtonGroup/ButtonGroup.js +5 -27
- package/dist-package/src/ButtonGroup/ButtonGroup.js.map +1 -1
- package/dist-package/src/ButtonGroup/styles.d.ts +1 -2
- package/dist-package/src/ButtonGroup/styles.d.ts.map +1 -1
- package/dist-package/src/ButtonGroup/styles.js +20 -47
- package/dist-package/src/ButtonGroup/styles.js.map +1 -1
- package/dist-package/src/ButtonGroupItem/ButtonGroupItem.d.ts +1 -1
- package/dist-package/src/ButtonGroupItem/ButtonGroupItem.d.ts.map +1 -1
- package/dist-package/src/ButtonGroupItem/ButtonGroupItem.js +17 -12
- package/dist-package/src/ButtonGroupItem/ButtonGroupItem.js.map +1 -1
- package/dist-package/src/ButtonGroupItem/styles.d.ts +13 -3
- package/dist-package/src/ButtonGroupItem/styles.d.ts.map +1 -1
- package/dist-package/src/ButtonGroupItem/styles.js +39 -17
- package/dist-package/src/ButtonGroupItem/styles.js.map +1 -1
- package/dist-package/src/ButtonSplit/ButtonSplit.d.ts.map +1 -1
- package/dist-package/src/ButtonSplit/ButtonSplit.js +28 -24
- package/dist-package/src/ButtonSplit/ButtonSplit.js.map +1 -1
- package/dist-package/src/ButtonSplit/styles.d.ts +9 -3
- package/dist-package/src/ButtonSplit/styles.d.ts.map +1 -1
- package/dist-package/src/ButtonSplit/styles.js +13 -50
- package/dist-package/src/ButtonSplit/styles.js.map +1 -1
- package/package.json +19 -15
- package/src/Button/Button.tsx +69 -100
- package/src/Button/__snapshots__/test.tsx.snap +6 -5
- package/src/Button/styles.ts +213 -221
- package/src/Button/test.tsx +3 -1
- package/src/ButtonAction/ButtonAction.tsx +36 -48
- package/src/ButtonAction/styles.ts +57 -57
- package/src/ButtonBase/ButtonBase.tsx +177 -0
- package/src/ButtonBase/index.ts +5 -0
- package/src/ButtonBase/styles.ts +38 -0
- package/src/ButtonCheckbox/__snapshots__/test.tsx.snap +3 -3
- package/src/ButtonCircular/ButtonCircular.tsx +22 -34
- package/src/ButtonCircular/styles.ts +127 -75
- package/src/ButtonGroup/ButtonGroup.tsx +9 -44
- package/src/ButtonGroup/__snapshots__/test.tsx.snap +7 -7
- package/src/ButtonGroup/styles.ts +21 -63
- package/src/ButtonGroupItem/ButtonGroupItem.tsx +24 -15
- package/src/ButtonGroupItem/styles.ts +62 -28
- package/src/ButtonRadio/__snapshots__/test.tsx.snap +3 -3
- package/src/ButtonSplit/ButtonSplit.tsx +46 -42
- package/src/ButtonSplit/__snapshots__/test.tsx.snap +9 -9
- package/src/ButtonSplit/styles.ts +37 -56
|
@@ -1,58 +1,93 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
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":"
|
|
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: (
|
|
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<{}, "
|
|
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: (
|
|
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,
|
|
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
|
|
13
|
-
import {
|
|
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
|
|
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
|
|
36
|
-
|
|
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,
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/ButtonGroup/styles.ts"],"names":[],"mappings":"
|
|
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
|
-
|
|
2
|
-
const
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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,
|
|
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: (
|
|
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":";
|
|
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 {
|
|
3
|
-
import cx from 'classnames';
|
|
13
|
+
import { twMerge } from 'tailwind-merge';
|
|
4
14
|
import { Button } from '../Button';
|
|
5
|
-
import
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
});
|
|
9
|
-
|
|
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;
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
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,
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
'
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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":"
|
|
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;
|
|
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 {
|
|
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
|
|
20
|
-
|
|
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
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
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:
|
|
55
|
-
React.createElement(Dropdown, { content: menu, className:
|
|
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":";;;;;;;;;;;AACA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAEzC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ButtonSplit.js","sourceRoot":"","sources":["../../../src/ButtonSplit/ButtonSplit.tsx"],"names":[],"mappings":"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"}
|