@seeqdev/qomponents 0.0.108 → 0.0.109
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/Accordion/Accordion.js +8 -8
- package/dist/Accordion/Accordion.stories.js +114 -114
- package/dist/Accordion/Accordion.test.js +54 -54
- package/dist/Accordion/Accordion.types.js +1 -1
- package/dist/Accordion/index.js +1 -1
- package/dist/Alert/Alert.js +31 -31
- package/dist/Alert/Alert.stories.js +44 -44
- package/dist/Alert/Alert.test.js +50 -50
- package/dist/Alert/Alert.types.js +1 -1
- package/dist/Alert/index.js +1 -1
- package/dist/Button/Button.js +91 -91
- package/dist/Button/Button.stories.js +97 -97
- package/dist/Button/Button.test.js +48 -48
- package/dist/Button/Button.types.js +4 -4
- package/dist/Button/index.js +1 -1
- package/dist/ButtonWithDropdown/ButtonWithDropdown.js +66 -66
- package/dist/ButtonWithDropdown/ButtonWithDropdown.stories.js +97 -97
- package/dist/ButtonWithDropdown/ButtonWithDropdown.test.js +84 -84
- package/dist/ButtonWithDropdown/ButtonWithDropdown.types.js +1 -1
- package/dist/ButtonWithDropdown/index.js +1 -1
- package/dist/ButtonWithPopover/ButtonWithPopover.js +50 -50
- package/dist/ButtonWithPopover/ButtonWithPopover.stories.js +74 -74
- package/dist/ButtonWithPopover/ButtonWithPopover.test.js +81 -81
- package/dist/ButtonWithPopover/ButtonWithPopover.types.js +1 -1
- package/dist/ButtonWithPopover/index.js +1 -1
- package/dist/Checkbox/Checkbox.js +25 -25
- package/dist/Checkbox/Checkbox.stories.js +33 -33
- package/dist/Checkbox/Checkbox.test.js +93 -93
- package/dist/Checkbox/Checkbox.types.js +1 -1
- package/dist/Checkbox/index.js +1 -1
- package/dist/Icon/Icon.js +53 -53
- package/dist/Icon/Icon.stories.js +44 -44
- package/dist/Icon/Icon.test.js +54 -54
- package/dist/Icon/Icon.types.js +15 -15
- package/dist/Icon/index.js +1 -1
- package/dist/InputGroup/InputGroup.js +25 -25
- package/dist/InputGroup/InputGroup.stories.js +141 -141
- package/dist/InputGroup/InputGroup.test.js +42 -42
- package/dist/InputGroup/InputGroup.types.js +1 -1
- package/dist/InputGroup/index.js +1 -1
- package/dist/Modal/Modal.js +97 -97
- package/dist/Modal/Modal.stories.js +126 -126
- package/dist/Modal/Modal.test.js +107 -107
- package/dist/Modal/Modal.types.js +1 -1
- package/dist/Modal/index.js +1 -1
- package/dist/SeeqActionDropdown/SeeqActionDropdown.js +47 -47
- package/dist/SeeqActionDropdown/SeeqActionDropdown.stories.js +79 -79
- package/dist/SeeqActionDropdown/SeeqActionDropdown.test.js +72 -72
- package/dist/SeeqActionDropdown/SeeqActionDropdown.types.js +1 -1
- package/dist/SeeqActionDropdown/index.js +1 -1
- package/dist/SeeqActionDropdown/variants.js +22 -22
- package/dist/Select/Select.js +173 -173
- package/dist/Select/Select.stories.js +79 -79
- package/dist/Select/Select.test.js +181 -181
- package/dist/Select/Select.types.js +1 -1
- package/dist/Select/index.js +2 -2
- package/dist/Tabs/Tabs.js +21 -21
- package/dist/Tabs/Tabs.stories.js +90 -90
- package/dist/Tabs/Tabs.test.js +90 -90
- package/dist/Tabs/Tabs.types.js +1 -1
- package/dist/Tabs/index.js +1 -1
- package/dist/TextArea/TextArea.js +24 -24
- package/dist/TextArea/TextArea.stories.js +45 -45
- package/dist/TextArea/TextArea.test.js +67 -67
- package/dist/TextArea/TextArea.types.js +1 -1
- package/dist/TextArea/index.js +1 -1
- package/dist/TextField/TextField.js +78 -78
- package/dist/TextField/TextField.stories.js +69 -69
- package/dist/TextField/TextField.test.js +38 -38
- package/dist/TextField/TextField.types.js +1 -1
- package/dist/TextField/index.js +1 -1
- package/dist/ToolbarButton/ToolbarButton.js +74 -74
- package/dist/ToolbarButton/ToolbarButton.stories.js +93 -93
- package/dist/ToolbarButton/ToolbarButton.test.js +92 -92
- package/dist/ToolbarButton/ToolbarButton.types.js +1 -1
- package/dist/ToolbarButton/index.js +1 -1
- package/dist/Tooltip/QTip.stories.js +44 -44
- package/dist/Tooltip/QTip.types.js +1 -1
- package/dist/Tooltip/QTipPerformance.stories.js +29 -29
- package/dist/Tooltip/Qtip.js +154 -154
- package/dist/Tooltip/Tooltip.js +30 -30
- package/dist/Tooltip/Tooltip.stories.js +31 -31
- package/dist/Tooltip/Tooltip.types.js +2 -2
- package/dist/Tooltip/TooltipPerformance.stories.js +29 -29
- package/dist/Tooltip/index.js +2 -2
- package/dist/Tooltip/qTip.utilities.js +10 -10
- package/dist/index.esm.js +30 -17
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +30 -17
- package/dist/index.js.map +1 -1
- package/dist/types.js +1 -1
- package/dist/utils/browserId.js +28 -28
- package/dist/utils/svg.js +19 -19
- package/dist/utils/validateStyleDimension.js +13 -13
- package/dist/utils/validateStyleDimension.test.js +19 -19
- package/package.json +1 -1
package/dist/Alert/Alert.test.js
CHANGED
|
@@ -1,51 +1,51 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { fireEvent, render, screen } from '@testing-library/react';
|
|
3
|
-
import '@testing-library/jest-dom/extend-expect';
|
|
4
|
-
import { Alert } from './Alert';
|
|
5
|
-
describe('Alert Component', () => {
|
|
6
|
-
const defaultProps = {
|
|
7
|
-
children: 'Test Alert',
|
|
8
|
-
dismissible: true,
|
|
9
|
-
onClose: jest.fn(),
|
|
10
|
-
show: true,
|
|
11
|
-
variant: 'theme',
|
|
12
|
-
testId: 'alert-test-id',
|
|
13
|
-
id: 'alert-id',
|
|
14
|
-
extraClassNames: '',
|
|
15
|
-
};
|
|
16
|
-
it('should render the Alert component', () => {
|
|
17
|
-
render(React.createElement(Alert, { ...defaultProps }));
|
|
18
|
-
const alertElement = screen.getByTestId('alert-test-id');
|
|
19
|
-
expect(alertElement).toBeInTheDocument();
|
|
20
|
-
});
|
|
21
|
-
it('should render children correctly', () => {
|
|
22
|
-
render(React.createElement(Alert, { ...defaultProps }));
|
|
23
|
-
const alertElement = screen.getByTestId('alert-test-id');
|
|
24
|
-
expect(alertElement).toHaveTextContent('Test Alert');
|
|
25
|
-
});
|
|
26
|
-
it('should apply the correct classes based on variant', () => {
|
|
27
|
-
const { rerender } = render(React.createElement(Alert, { ...defaultProps, variant: "danger" }));
|
|
28
|
-
let alertElement = screen.getByTestId('alert-test-id');
|
|
29
|
-
expect(alertElement).toHaveClass('tw-text-sq-text-color tw-bg-sq-danger-color');
|
|
30
|
-
rerender(React.createElement(Alert, { ...defaultProps, variant: "warning" }));
|
|
31
|
-
alertElement = screen.getByTestId('alert-test-id');
|
|
32
|
-
expect(alertElement).toHaveClass('tw-bg-sq-bg-warning-color tw-text-sq-text-color');
|
|
33
|
-
});
|
|
34
|
-
it('should call onClose when dismissible icon is clicked', () => {
|
|
35
|
-
render(React.createElement(Alert, { ...defaultProps }));
|
|
36
|
-
const closeButton = screen.getByTestId('alert-test-id-close-btn');
|
|
37
|
-
fireEvent.click(closeButton);
|
|
38
|
-
expect(defaultProps.onClose).toHaveBeenCalled();
|
|
39
|
-
});
|
|
40
|
-
it('should not render when show is false', () => {
|
|
41
|
-
render(React.createElement(Alert, { ...defaultProps, show: false }));
|
|
42
|
-
const alertElement = screen.queryByTestId('alert-test-id');
|
|
43
|
-
expect(alertElement).not.toBeInTheDocument();
|
|
44
|
-
});
|
|
45
|
-
it('should apply extra class names', () => {
|
|
46
|
-
render(React.createElement(Alert, { ...defaultProps, extraClassNames: "extra-class" }));
|
|
47
|
-
const alertElement = screen.getByTestId('alert-test-id');
|
|
48
|
-
expect(alertElement).toHaveClass('extra-class');
|
|
49
|
-
});
|
|
50
|
-
});
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { fireEvent, render, screen } from '@testing-library/react';
|
|
3
|
+
import '@testing-library/jest-dom/extend-expect';
|
|
4
|
+
import { Alert } from './Alert';
|
|
5
|
+
describe('Alert Component', () => {
|
|
6
|
+
const defaultProps = {
|
|
7
|
+
children: 'Test Alert',
|
|
8
|
+
dismissible: true,
|
|
9
|
+
onClose: jest.fn(),
|
|
10
|
+
show: true,
|
|
11
|
+
variant: 'theme',
|
|
12
|
+
testId: 'alert-test-id',
|
|
13
|
+
id: 'alert-id',
|
|
14
|
+
extraClassNames: '',
|
|
15
|
+
};
|
|
16
|
+
it('should render the Alert component', () => {
|
|
17
|
+
render(React.createElement(Alert, { ...defaultProps }));
|
|
18
|
+
const alertElement = screen.getByTestId('alert-test-id');
|
|
19
|
+
expect(alertElement).toBeInTheDocument();
|
|
20
|
+
});
|
|
21
|
+
it('should render children correctly', () => {
|
|
22
|
+
render(React.createElement(Alert, { ...defaultProps }));
|
|
23
|
+
const alertElement = screen.getByTestId('alert-test-id');
|
|
24
|
+
expect(alertElement).toHaveTextContent('Test Alert');
|
|
25
|
+
});
|
|
26
|
+
it('should apply the correct classes based on variant', () => {
|
|
27
|
+
const { rerender } = render(React.createElement(Alert, { ...defaultProps, variant: "danger" }));
|
|
28
|
+
let alertElement = screen.getByTestId('alert-test-id');
|
|
29
|
+
expect(alertElement).toHaveClass('tw-text-sq-text-color tw-bg-sq-danger-color');
|
|
30
|
+
rerender(React.createElement(Alert, { ...defaultProps, variant: "warning" }));
|
|
31
|
+
alertElement = screen.getByTestId('alert-test-id');
|
|
32
|
+
expect(alertElement).toHaveClass('tw-bg-sq-bg-warning-color tw-text-sq-text-color');
|
|
33
|
+
});
|
|
34
|
+
it('should call onClose when dismissible icon is clicked', () => {
|
|
35
|
+
render(React.createElement(Alert, { ...defaultProps }));
|
|
36
|
+
const closeButton = screen.getByTestId('alert-test-id-close-btn');
|
|
37
|
+
fireEvent.click(closeButton);
|
|
38
|
+
expect(defaultProps.onClose).toHaveBeenCalled();
|
|
39
|
+
});
|
|
40
|
+
it('should not render when show is false', () => {
|
|
41
|
+
render(React.createElement(Alert, { ...defaultProps, show: false }));
|
|
42
|
+
const alertElement = screen.queryByTestId('alert-test-id');
|
|
43
|
+
expect(alertElement).not.toBeInTheDocument();
|
|
44
|
+
});
|
|
45
|
+
it('should apply extra class names', () => {
|
|
46
|
+
render(React.createElement(Alert, { ...defaultProps, extraClassNames: "extra-class" }));
|
|
47
|
+
const alertElement = screen.getByTestId('alert-test-id');
|
|
48
|
+
expect(alertElement).toHaveClass('extra-class');
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
51
|
//# sourceMappingURL=Alert.test.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export {};
|
|
2
2
|
//# sourceMappingURL=Alert.types.js.map
|
package/dist/Alert/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { Alert as default } from './Alert';
|
|
1
|
+
export { Alert as default } from './Alert';
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/Button/Button.js
CHANGED
|
@@ -1,92 +1,92 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import '../styles.css';
|
|
3
|
-
import { browserIsFirefox } from '../utils/browserId';
|
|
4
|
-
import Icon from '../Icon';
|
|
5
|
-
import { DEFAULT_TOOL_TIP_DELAY } from '../Tooltip/Tooltip.types';
|
|
6
|
-
/**
|
|
7
|
-
* All-in-one Button:
|
|
8
|
-
* - use "variant" to achieve the desired style
|
|
9
|
-
* - include tooltips and/or icons
|
|
10
|
-
*/
|
|
11
|
-
const Button = ({ onClick, label, variant = 'outline', type = 'button', size = 'sm', disabled, extraClassNames, id, testId, stopPropagation = true, tooltip, tooltipOptions, iconStyle = 'text', icon, iconColor, iconPosition = 'left', iconPrefix = undefined, preventBlur = false, isHtmlTooltip = false, tooltipTestId, }) => {
|
|
12
|
-
const baseClasses = 'tw-py-1 tw-px-2.5 tw-rounded-sm focus:tw-ring-0 focus-visible:tw-outline-none disabled:tw-pointer-events-none';
|
|
13
|
-
const baseClassesByVariant = {
|
|
14
|
-
'outline': 'disabled:tw-opacity-50 tw-border-solid tw-border',
|
|
15
|
-
'theme': 'disabled:tw-opacity-50 tw-border-solid tw-border',
|
|
16
|
-
'danger': 'tw-bg-sq-danger-color hover:tw-bg-sq-danger-color-hover disabled:tw-opacity-50 tw-border-solid tw-border ' +
|
|
17
|
-
'tw-border-sq-danger-color hover:tw-border-sq-danger-color-hover',
|
|
18
|
-
'theme-light': 'disabled:tw-opacity-50 tw-border-solid tw-border',
|
|
19
|
-
'no-border': 'disabled:tw-opacity-50',
|
|
20
|
-
'warning': 'tw-bg-sq-warning-color tw-border-solid tw-border tw-border-sq-warning-color',
|
|
21
|
-
};
|
|
22
|
-
const textClassesByVariantLightTheme = {
|
|
23
|
-
'outline': 'tw-text-sq-text-color',
|
|
24
|
-
'theme': 'tw-text-white',
|
|
25
|
-
'theme-light': 'tw-text-white',
|
|
26
|
-
'danger': 'tw-text-white',
|
|
27
|
-
'no-border': 'tw-text-sq-text-color',
|
|
28
|
-
'warning': 'tw-text-white',
|
|
29
|
-
};
|
|
30
|
-
const textClassesByVariantDarkTheme = {
|
|
31
|
-
'outline': 'dark:tw-text-sq-dark-text',
|
|
32
|
-
'theme': 'dark:tw-text-white',
|
|
33
|
-
'theme-light': 'dark:tw-text-white',
|
|
34
|
-
'danger': 'dark:tw-text-white',
|
|
35
|
-
'no-border': 'dark:tw-text-sq-dark-text',
|
|
36
|
-
'warning': 'dark:tw-text-white',
|
|
37
|
-
};
|
|
38
|
-
const classesByVariantLightTheme = {
|
|
39
|
-
'outline': 'tw-bg-white dark:tw-bg-sq-dark-background tw-border-sq-disabled-gray hover:tw-bg-sq-light-gray' +
|
|
40
|
-
' focus:tw-bg-sq-dark-gray active:tw-bg-sq-dark-gray focus:tw-border-sq-color-dark active:tw-border-sq-color-dark',
|
|
41
|
-
'theme': 'tw-bg-sq-color-dark hover:tw-bg-sq-color-highlight tw-border-sq-color-dark' +
|
|
42
|
-
' hover:tw-border-sq-color-highlight',
|
|
43
|
-
'danger': '',
|
|
44
|
-
'theme-light': 'tw-bg-sq-icon hover:tw-bg-sq-link tw-border-sq-icon hover:tw-border-sq-link',
|
|
45
|
-
'no-border': '',
|
|
46
|
-
'warning': '',
|
|
47
|
-
};
|
|
48
|
-
const classesByVariantDarkTheme = {
|
|
49
|
-
'outline': 'dark:tw-border-sq-dark-disabled-gray dark:hover:tw-bg-sq-highlight-color-dark' +
|
|
50
|
-
' dark:focus:tw-bg-sq-multi-gray-dark dark:active:tw-bg-sq-multi-gray-dark dark:focus:tw-border-sq-color-dark' +
|
|
51
|
-
' dark:active:tw-border-sq-color-dark',
|
|
52
|
-
'theme': 'dark:tw-bg-sq-color-dark dark:hover:tw-bg-sq-color-highlight dark:tw-border-sq-color-dark' +
|
|
53
|
-
' dark:hover:tw-border-sq-color-highlight',
|
|
54
|
-
'danger': '',
|
|
55
|
-
'theme-light': 'dark:tw-bg-sq-icon-dark dark:hover:tw-bg-sq-link-dark dark:tw-border-sq-icon-dark' +
|
|
56
|
-
' dark:hover:tw-border-sq-link-dark',
|
|
57
|
-
'no-border': '',
|
|
58
|
-
'warning': '',
|
|
59
|
-
};
|
|
60
|
-
const sizeClasses = {
|
|
61
|
-
sm: 'tw-text-sm',
|
|
62
|
-
lg: 'tw-text-xl',
|
|
63
|
-
};
|
|
64
|
-
const appliedClasses = `${baseClasses} ${baseClassesByVariant[variant]} ${sizeClasses[size]} ${classesByVariantLightTheme[variant]} ${classesByVariantDarkTheme[variant]} ${textClassesByVariantLightTheme[variant]} ${textClassesByVariantDarkTheme[variant]} ${extraClassNames}`;
|
|
65
|
-
let tooltipData = undefined;
|
|
66
|
-
if (tooltip) {
|
|
67
|
-
tooltipData = {
|
|
68
|
-
'data-qtip-text': tooltip,
|
|
69
|
-
'data-qtip-placement': tooltipOptions?.position,
|
|
70
|
-
'data-qtip-is-html': isHtmlTooltip,
|
|
71
|
-
'data-qtip-testid': tooltipTestId,
|
|
72
|
-
'data-qtip-delay': tooltipOptions?.delay ?? DEFAULT_TOOL_TIP_DELAY,
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
const iconClass = iconPosition === 'left' ? 'tw-mr-1' : 'tw-ml-1';
|
|
76
|
-
const iconElement = icon && (React.createElement(Icon, { icon: icon, iconPrefix: iconPrefix, type: iconStyle, color: iconColor, extraClassNames: label
|
|
77
|
-
? `${iconClass} ${textClassesByVariantLightTheme[variant]} ${textClassesByVariantDarkTheme[variant]}`
|
|
78
|
-
: '', testId: `${id}_spinner` }));
|
|
79
|
-
return (React.createElement("button", { id: id, ...tooltipData, disabled: disabled, "data-testid": testId, type: type === 'link' || (type === 'submit' && browserIsFirefox) ? 'button' : type, onClick: (e) => {
|
|
80
|
-
stopPropagation && e.stopPropagation();
|
|
81
|
-
onClick && onClick(e);
|
|
82
|
-
}, onMouseDown: (e) => {
|
|
83
|
-
if (preventBlur) {
|
|
84
|
-
e.preventDefault();
|
|
85
|
-
}
|
|
86
|
-
}, className: appliedClasses },
|
|
87
|
-
iconPosition === 'left' && iconElement,
|
|
88
|
-
label,
|
|
89
|
-
iconPosition === 'right' && iconElement));
|
|
90
|
-
};
|
|
91
|
-
export default Button;
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import '../styles.css';
|
|
3
|
+
import { browserIsFirefox } from '../utils/browserId';
|
|
4
|
+
import Icon from '../Icon';
|
|
5
|
+
import { DEFAULT_TOOL_TIP_DELAY } from '../Tooltip/Tooltip.types';
|
|
6
|
+
/**
|
|
7
|
+
* All-in-one Button:
|
|
8
|
+
* - use "variant" to achieve the desired style
|
|
9
|
+
* - include tooltips and/or icons
|
|
10
|
+
*/
|
|
11
|
+
const Button = ({ onClick, label, variant = 'outline', type = 'button', size = 'sm', disabled, extraClassNames, id, testId, stopPropagation = true, tooltip, tooltipOptions, iconStyle = 'text', icon, iconColor, iconPosition = 'left', iconPrefix = undefined, preventBlur = false, isHtmlTooltip = false, tooltipTestId, }) => {
|
|
12
|
+
const baseClasses = 'tw-py-1 tw-px-2.5 tw-rounded-sm focus:tw-ring-0 focus-visible:tw-outline-none disabled:tw-pointer-events-none';
|
|
13
|
+
const baseClassesByVariant = {
|
|
14
|
+
'outline': 'disabled:tw-opacity-50 tw-border-solid tw-border',
|
|
15
|
+
'theme': 'disabled:tw-opacity-50 tw-border-solid tw-border',
|
|
16
|
+
'danger': 'tw-bg-sq-danger-color hover:tw-bg-sq-danger-color-hover disabled:tw-opacity-50 tw-border-solid tw-border ' +
|
|
17
|
+
'tw-border-sq-danger-color hover:tw-border-sq-danger-color-hover',
|
|
18
|
+
'theme-light': 'disabled:tw-opacity-50 tw-border-solid tw-border',
|
|
19
|
+
'no-border': 'disabled:tw-opacity-50',
|
|
20
|
+
'warning': 'tw-bg-sq-warning-color tw-border-solid tw-border tw-border-sq-warning-color',
|
|
21
|
+
};
|
|
22
|
+
const textClassesByVariantLightTheme = {
|
|
23
|
+
'outline': 'tw-text-sq-text-color',
|
|
24
|
+
'theme': 'tw-text-white',
|
|
25
|
+
'theme-light': 'tw-text-white',
|
|
26
|
+
'danger': 'tw-text-white',
|
|
27
|
+
'no-border': 'tw-text-sq-text-color',
|
|
28
|
+
'warning': 'tw-text-white',
|
|
29
|
+
};
|
|
30
|
+
const textClassesByVariantDarkTheme = {
|
|
31
|
+
'outline': 'dark:tw-text-sq-dark-text',
|
|
32
|
+
'theme': 'dark:tw-text-white',
|
|
33
|
+
'theme-light': 'dark:tw-text-white',
|
|
34
|
+
'danger': 'dark:tw-text-white',
|
|
35
|
+
'no-border': 'dark:tw-text-sq-dark-text',
|
|
36
|
+
'warning': 'dark:tw-text-white',
|
|
37
|
+
};
|
|
38
|
+
const classesByVariantLightTheme = {
|
|
39
|
+
'outline': 'tw-bg-white dark:tw-bg-sq-dark-background tw-border-sq-disabled-gray hover:tw-bg-sq-light-gray' +
|
|
40
|
+
' focus:tw-bg-sq-dark-gray active:tw-bg-sq-dark-gray focus:tw-border-sq-color-dark active:tw-border-sq-color-dark',
|
|
41
|
+
'theme': 'tw-bg-sq-color-dark hover:tw-bg-sq-color-highlight tw-border-sq-color-dark' +
|
|
42
|
+
' hover:tw-border-sq-color-highlight',
|
|
43
|
+
'danger': '',
|
|
44
|
+
'theme-light': 'tw-bg-sq-icon hover:tw-bg-sq-link tw-border-sq-icon hover:tw-border-sq-link',
|
|
45
|
+
'no-border': '',
|
|
46
|
+
'warning': '',
|
|
47
|
+
};
|
|
48
|
+
const classesByVariantDarkTheme = {
|
|
49
|
+
'outline': 'dark:tw-border-sq-dark-disabled-gray dark:hover:tw-bg-sq-highlight-color-dark' +
|
|
50
|
+
' dark:focus:tw-bg-sq-multi-gray-dark dark:active:tw-bg-sq-multi-gray-dark dark:focus:tw-border-sq-color-dark' +
|
|
51
|
+
' dark:active:tw-border-sq-color-dark',
|
|
52
|
+
'theme': 'dark:tw-bg-sq-color-dark dark:hover:tw-bg-sq-color-highlight dark:tw-border-sq-color-dark' +
|
|
53
|
+
' dark:hover:tw-border-sq-color-highlight',
|
|
54
|
+
'danger': '',
|
|
55
|
+
'theme-light': 'dark:tw-bg-sq-icon-dark dark:hover:tw-bg-sq-link-dark dark:tw-border-sq-icon-dark' +
|
|
56
|
+
' dark:hover:tw-border-sq-link-dark',
|
|
57
|
+
'no-border': '',
|
|
58
|
+
'warning': '',
|
|
59
|
+
};
|
|
60
|
+
const sizeClasses = {
|
|
61
|
+
sm: 'tw-text-sm',
|
|
62
|
+
lg: 'tw-text-xl',
|
|
63
|
+
};
|
|
64
|
+
const appliedClasses = `${baseClasses} ${baseClassesByVariant[variant]} ${sizeClasses[size]} ${classesByVariantLightTheme[variant]} ${classesByVariantDarkTheme[variant]} ${textClassesByVariantLightTheme[variant]} ${textClassesByVariantDarkTheme[variant]} ${extraClassNames}`;
|
|
65
|
+
let tooltipData = undefined;
|
|
66
|
+
if (tooltip) {
|
|
67
|
+
tooltipData = {
|
|
68
|
+
'data-qtip-text': tooltip,
|
|
69
|
+
'data-qtip-placement': tooltipOptions?.position,
|
|
70
|
+
'data-qtip-is-html': isHtmlTooltip,
|
|
71
|
+
'data-qtip-testid': tooltipTestId,
|
|
72
|
+
'data-qtip-delay': tooltipOptions?.delay ?? DEFAULT_TOOL_TIP_DELAY,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
const iconClass = iconPosition === 'left' ? 'tw-mr-1' : 'tw-ml-1';
|
|
76
|
+
const iconElement = icon && (React.createElement(Icon, { icon: icon, iconPrefix: iconPrefix, type: iconStyle, color: iconColor, extraClassNames: label
|
|
77
|
+
? `${iconClass} ${textClassesByVariantLightTheme[variant]} ${textClassesByVariantDarkTheme[variant]}`
|
|
78
|
+
: '', testId: `${id}_spinner` }));
|
|
79
|
+
return (React.createElement("button", { id: id, ...tooltipData, disabled: disabled, "data-testid": testId, type: type === 'link' || (type === 'submit' && browserIsFirefox) ? 'button' : type, onClick: (e) => {
|
|
80
|
+
stopPropagation && e.stopPropagation();
|
|
81
|
+
onClick && onClick(e);
|
|
82
|
+
}, onMouseDown: (e) => {
|
|
83
|
+
if (preventBlur) {
|
|
84
|
+
e.preventDefault();
|
|
85
|
+
}
|
|
86
|
+
}, className: appliedClasses },
|
|
87
|
+
iconPosition === 'left' && iconElement,
|
|
88
|
+
label,
|
|
89
|
+
iconPosition === 'right' && iconElement));
|
|
90
|
+
};
|
|
91
|
+
export default Button;
|
|
92
92
|
//# sourceMappingURL=Button.js.map
|
|
@@ -1,98 +1,98 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import Button from './Button';
|
|
3
|
-
import { buttonVariants } from './Button.types';
|
|
4
|
-
export default {
|
|
5
|
-
title: 'Button',
|
|
6
|
-
};
|
|
7
|
-
export const AllButtonVariants = () => {
|
|
8
|
-
const renderAllVariations = () => (React.createElement(React.Fragment, null, buttonVariants.map((variant) => (React.createElement("div", { key: `{variant_${variant}`, className: "tw-grid tw-grid-cols-2 tw-gap-4" },
|
|
9
|
-
React.createElement("div", { className: "tw-p-4" },
|
|
10
|
-
React.createElement(Button, { label: `Variant: ${variant}`, onClick: () => { }, variant: variant })),
|
|
11
|
-
React.createElement("div", { className: "tw-p-4 tw-dark tw-bg-sq-dark-background" },
|
|
12
|
-
React.createElement(Button, { label: `Variant: ${variant}`, onClick: () => { }, variant: variant })))))));
|
|
13
|
-
return (React.createElement("div", { className: "tw-grid tw-grid-cols-4 tw-gap-4" },
|
|
14
|
-
React.createElement("div", { className: "color_topic" },
|
|
15
|
-
React.createElement("b", null, "Topic Colors"),
|
|
16
|
-
renderAllVariations()),
|
|
17
|
-
React.createElement("div", { className: "color_analysis" },
|
|
18
|
-
React.createElement("b", null, "Analysis Colors"),
|
|
19
|
-
renderAllVariations()),
|
|
20
|
-
React.createElement("div", { className: "color_datalab" },
|
|
21
|
-
React.createElement("b", null, "Datalab Colors"),
|
|
22
|
-
renderAllVariations()),
|
|
23
|
-
React.createElement("div", { className: "color_vantage" },
|
|
24
|
-
React.createElement("b", null, "Vantage Colors"),
|
|
25
|
-
renderAllVariations())));
|
|
26
|
-
};
|
|
27
|
-
export const ButtonWithTooltip = () => {
|
|
28
|
-
const renderButtonWithTooltip = () => (React.createElement(React.Fragment, null,
|
|
29
|
-
React.createElement("div", { className: "tw-p-4" },
|
|
30
|
-
React.createElement(Button, { tooltip: "Helpful tooltip", variant: "theme", label: "Hover me" })),
|
|
31
|
-
React.createElement("div", { className: "tw-p-4 tw-dark tw-bg-sq-dark-background" },
|
|
32
|
-
React.createElement(Button, { tooltip: "Helpful tooltip", variant: "theme", label: "Hover me" }))));
|
|
33
|
-
return (React.createElement("div", { className: "tw-grid tw-grid-cols-4 tw-gap-4" },
|
|
34
|
-
React.createElement("div", { className: "color_topic" },
|
|
35
|
-
React.createElement("b", null, "Topic Colors"),
|
|
36
|
-
renderButtonWithTooltip()),
|
|
37
|
-
React.createElement("div", { className: "color_analysis" },
|
|
38
|
-
React.createElement("b", null, "Analysis Colors"),
|
|
39
|
-
renderButtonWithTooltip()),
|
|
40
|
-
React.createElement("div", { className: "color_datalab" },
|
|
41
|
-
React.createElement("b", null, "Datalab Colors"),
|
|
42
|
-
renderButtonWithTooltip()),
|
|
43
|
-
React.createElement("div", { className: "color_vantage" },
|
|
44
|
-
React.createElement("b", null, "Vantage Colors"),
|
|
45
|
-
renderButtonWithTooltip())));
|
|
46
|
-
};
|
|
47
|
-
export const ButtonWithIcon = () => {
|
|
48
|
-
const renderButtonWithIcon = () => (React.createElement(React.Fragment, null,
|
|
49
|
-
React.createElement("div", { className: "tw-p-4" },
|
|
50
|
-
React.createElement(Button, { icon: "fc-search-power", variant: "theme", label: "With Icon" })),
|
|
51
|
-
React.createElement("div", { className: "tw-p-4 tw-dark tw-bg-sq-dark-background" },
|
|
52
|
-
React.createElement(Button, { icon: "fc-search-power", variant: "theme", label: "With Icon" }))));
|
|
53
|
-
const renderButtonWithIconOnRight = () => (React.createElement(React.Fragment, null,
|
|
54
|
-
React.createElement("div", { className: "tw-p-4" },
|
|
55
|
-
React.createElement(Button, { icon: "fc-search-power", iconPosition: "right", variant: "theme", label: "With Icon On Right" })),
|
|
56
|
-
React.createElement("div", { className: "tw-p-4 tw-dark tw-bg-sq-dark-background" },
|
|
57
|
-
React.createElement(Button, { icon: "fc-search-power", iconPosition: "right", variant: "theme", label: "With Icon On Right" }))));
|
|
58
|
-
return (React.createElement("div", { className: "tw-grid tw-grid-cols-4 tw-gap-4" },
|
|
59
|
-
React.createElement("div", { className: "color_topic" },
|
|
60
|
-
React.createElement("b", null, "Topic Colors"),
|
|
61
|
-
renderButtonWithIcon()),
|
|
62
|
-
React.createElement("div", { className: "color_analysis" },
|
|
63
|
-
React.createElement("b", null, "Analysis Colors"),
|
|
64
|
-
renderButtonWithIcon()),
|
|
65
|
-
React.createElement("div", { className: "color_datalab" },
|
|
66
|
-
React.createElement("b", null, "Datalab Colors"),
|
|
67
|
-
renderButtonWithIcon()),
|
|
68
|
-
React.createElement("div", { className: "color_vantage" },
|
|
69
|
-
React.createElement("b", null, "Vantage Colors"),
|
|
70
|
-
renderButtonWithIcon()),
|
|
71
|
-
React.createElement("div", { className: "color_topic" }, renderButtonWithIconOnRight()),
|
|
72
|
-
React.createElement("div", { className: "color_analysis" }, renderButtonWithIconOnRight()),
|
|
73
|
-
React.createElement("div", { className: "color_datalab" }, renderButtonWithIconOnRight()),
|
|
74
|
-
React.createElement("div", { className: "color_vantage" }, renderButtonWithIconOnRight())));
|
|
75
|
-
};
|
|
76
|
-
export const DisabledButton = () => {
|
|
77
|
-
const renderDisabledButton = () => (React.createElement(React.Fragment, null,
|
|
78
|
-
React.createElement("div", { className: "tw-p-4" },
|
|
79
|
-
React.createElement(Button, { disabled: true, variant: "theme", label: "Disabled Button" }),
|
|
80
|
-
React.createElement(Button, { extraClassNames: "tw-m-5", disabled: true, label: "Disabled Button" })),
|
|
81
|
-
React.createElement("div", { className: "tw-p-4 tw-dark tw-bg-sq-dark-background" },
|
|
82
|
-
React.createElement(Button, { disabled: true, variant: "theme", label: "Disabled Button" }),
|
|
83
|
-
React.createElement(Button, { extraClassNames: "tw-m-5", disabled: true, label: "Disabled Button" }))));
|
|
84
|
-
return (React.createElement("div", { className: "tw-grid tw-grid-cols-4 tw-gap-4" },
|
|
85
|
-
React.createElement("div", { className: "color_topic" },
|
|
86
|
-
React.createElement("b", null, "Topic Colors"),
|
|
87
|
-
renderDisabledButton()),
|
|
88
|
-
React.createElement("div", { className: "color_analysis" },
|
|
89
|
-
React.createElement("b", null, "Analysis Colors"),
|
|
90
|
-
renderDisabledButton()),
|
|
91
|
-
React.createElement("div", { className: "color_datalab" },
|
|
92
|
-
React.createElement("b", null, "Datalab Colors"),
|
|
93
|
-
renderDisabledButton()),
|
|
94
|
-
React.createElement("div", { className: "color_vantage" },
|
|
95
|
-
React.createElement("b", null, "Vantage Colors"),
|
|
96
|
-
renderDisabledButton())));
|
|
97
|
-
};
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import Button from './Button';
|
|
3
|
+
import { buttonVariants } from './Button.types';
|
|
4
|
+
export default {
|
|
5
|
+
title: 'Button',
|
|
6
|
+
};
|
|
7
|
+
export const AllButtonVariants = () => {
|
|
8
|
+
const renderAllVariations = () => (React.createElement(React.Fragment, null, buttonVariants.map((variant) => (React.createElement("div", { key: `{variant_${variant}`, className: "tw-grid tw-grid-cols-2 tw-gap-4" },
|
|
9
|
+
React.createElement("div", { className: "tw-p-4" },
|
|
10
|
+
React.createElement(Button, { label: `Variant: ${variant}`, onClick: () => { }, variant: variant })),
|
|
11
|
+
React.createElement("div", { className: "tw-p-4 tw-dark tw-bg-sq-dark-background" },
|
|
12
|
+
React.createElement(Button, { label: `Variant: ${variant}`, onClick: () => { }, variant: variant })))))));
|
|
13
|
+
return (React.createElement("div", { className: "tw-grid tw-grid-cols-4 tw-gap-4" },
|
|
14
|
+
React.createElement("div", { className: "color_topic" },
|
|
15
|
+
React.createElement("b", null, "Topic Colors"),
|
|
16
|
+
renderAllVariations()),
|
|
17
|
+
React.createElement("div", { className: "color_analysis" },
|
|
18
|
+
React.createElement("b", null, "Analysis Colors"),
|
|
19
|
+
renderAllVariations()),
|
|
20
|
+
React.createElement("div", { className: "color_datalab" },
|
|
21
|
+
React.createElement("b", null, "Datalab Colors"),
|
|
22
|
+
renderAllVariations()),
|
|
23
|
+
React.createElement("div", { className: "color_vantage" },
|
|
24
|
+
React.createElement("b", null, "Vantage Colors"),
|
|
25
|
+
renderAllVariations())));
|
|
26
|
+
};
|
|
27
|
+
export const ButtonWithTooltip = () => {
|
|
28
|
+
const renderButtonWithTooltip = () => (React.createElement(React.Fragment, null,
|
|
29
|
+
React.createElement("div", { className: "tw-p-4" },
|
|
30
|
+
React.createElement(Button, { tooltip: "Helpful tooltip", variant: "theme", label: "Hover me" })),
|
|
31
|
+
React.createElement("div", { className: "tw-p-4 tw-dark tw-bg-sq-dark-background" },
|
|
32
|
+
React.createElement(Button, { tooltip: "Helpful tooltip", variant: "theme", label: "Hover me" }))));
|
|
33
|
+
return (React.createElement("div", { className: "tw-grid tw-grid-cols-4 tw-gap-4" },
|
|
34
|
+
React.createElement("div", { className: "color_topic" },
|
|
35
|
+
React.createElement("b", null, "Topic Colors"),
|
|
36
|
+
renderButtonWithTooltip()),
|
|
37
|
+
React.createElement("div", { className: "color_analysis" },
|
|
38
|
+
React.createElement("b", null, "Analysis Colors"),
|
|
39
|
+
renderButtonWithTooltip()),
|
|
40
|
+
React.createElement("div", { className: "color_datalab" },
|
|
41
|
+
React.createElement("b", null, "Datalab Colors"),
|
|
42
|
+
renderButtonWithTooltip()),
|
|
43
|
+
React.createElement("div", { className: "color_vantage" },
|
|
44
|
+
React.createElement("b", null, "Vantage Colors"),
|
|
45
|
+
renderButtonWithTooltip())));
|
|
46
|
+
};
|
|
47
|
+
export const ButtonWithIcon = () => {
|
|
48
|
+
const renderButtonWithIcon = () => (React.createElement(React.Fragment, null,
|
|
49
|
+
React.createElement("div", { className: "tw-p-4" },
|
|
50
|
+
React.createElement(Button, { icon: "fc-search-power", variant: "theme", label: "With Icon" })),
|
|
51
|
+
React.createElement("div", { className: "tw-p-4 tw-dark tw-bg-sq-dark-background" },
|
|
52
|
+
React.createElement(Button, { icon: "fc-search-power", variant: "theme", label: "With Icon" }))));
|
|
53
|
+
const renderButtonWithIconOnRight = () => (React.createElement(React.Fragment, null,
|
|
54
|
+
React.createElement("div", { className: "tw-p-4" },
|
|
55
|
+
React.createElement(Button, { icon: "fc-search-power", iconPosition: "right", variant: "theme", label: "With Icon On Right" })),
|
|
56
|
+
React.createElement("div", { className: "tw-p-4 tw-dark tw-bg-sq-dark-background" },
|
|
57
|
+
React.createElement(Button, { icon: "fc-search-power", iconPosition: "right", variant: "theme", label: "With Icon On Right" }))));
|
|
58
|
+
return (React.createElement("div", { className: "tw-grid tw-grid-cols-4 tw-gap-4" },
|
|
59
|
+
React.createElement("div", { className: "color_topic" },
|
|
60
|
+
React.createElement("b", null, "Topic Colors"),
|
|
61
|
+
renderButtonWithIcon()),
|
|
62
|
+
React.createElement("div", { className: "color_analysis" },
|
|
63
|
+
React.createElement("b", null, "Analysis Colors"),
|
|
64
|
+
renderButtonWithIcon()),
|
|
65
|
+
React.createElement("div", { className: "color_datalab" },
|
|
66
|
+
React.createElement("b", null, "Datalab Colors"),
|
|
67
|
+
renderButtonWithIcon()),
|
|
68
|
+
React.createElement("div", { className: "color_vantage" },
|
|
69
|
+
React.createElement("b", null, "Vantage Colors"),
|
|
70
|
+
renderButtonWithIcon()),
|
|
71
|
+
React.createElement("div", { className: "color_topic" }, renderButtonWithIconOnRight()),
|
|
72
|
+
React.createElement("div", { className: "color_analysis" }, renderButtonWithIconOnRight()),
|
|
73
|
+
React.createElement("div", { className: "color_datalab" }, renderButtonWithIconOnRight()),
|
|
74
|
+
React.createElement("div", { className: "color_vantage" }, renderButtonWithIconOnRight())));
|
|
75
|
+
};
|
|
76
|
+
export const DisabledButton = () => {
|
|
77
|
+
const renderDisabledButton = () => (React.createElement(React.Fragment, null,
|
|
78
|
+
React.createElement("div", { className: "tw-p-4" },
|
|
79
|
+
React.createElement(Button, { disabled: true, variant: "theme", label: "Disabled Button" }),
|
|
80
|
+
React.createElement(Button, { extraClassNames: "tw-m-5", disabled: true, label: "Disabled Button" })),
|
|
81
|
+
React.createElement("div", { className: "tw-p-4 tw-dark tw-bg-sq-dark-background" },
|
|
82
|
+
React.createElement(Button, { disabled: true, variant: "theme", label: "Disabled Button" }),
|
|
83
|
+
React.createElement(Button, { extraClassNames: "tw-m-5", disabled: true, label: "Disabled Button" }))));
|
|
84
|
+
return (React.createElement("div", { className: "tw-grid tw-grid-cols-4 tw-gap-4" },
|
|
85
|
+
React.createElement("div", { className: "color_topic" },
|
|
86
|
+
React.createElement("b", null, "Topic Colors"),
|
|
87
|
+
renderDisabledButton()),
|
|
88
|
+
React.createElement("div", { className: "color_analysis" },
|
|
89
|
+
React.createElement("b", null, "Analysis Colors"),
|
|
90
|
+
renderDisabledButton()),
|
|
91
|
+
React.createElement("div", { className: "color_datalab" },
|
|
92
|
+
React.createElement("b", null, "Datalab Colors"),
|
|
93
|
+
renderDisabledButton()),
|
|
94
|
+
React.createElement("div", { className: "color_vantage" },
|
|
95
|
+
React.createElement("b", null, "Vantage Colors"),
|
|
96
|
+
renderDisabledButton())));
|
|
97
|
+
};
|
|
98
98
|
//# sourceMappingURL=Button.stories.js.map
|
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import '@testing-library/jest-dom';
|
|
3
|
-
import { render, screen } from '@testing-library/react';
|
|
4
|
-
import userEvent from '@testing-library/user-event';
|
|
5
|
-
import Button from './Button';
|
|
6
|
-
describe('Button', () => {
|
|
7
|
-
class Context {
|
|
8
|
-
testId = 'buttonTestId';
|
|
9
|
-
label = 'button label';
|
|
10
|
-
props = {
|
|
11
|
-
label: this.label,
|
|
12
|
-
onClick: jest.fn(),
|
|
13
|
-
testId: this.testId,
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
let tc;
|
|
17
|
-
beforeEach(() => {
|
|
18
|
-
tc = new Context();
|
|
19
|
-
});
|
|
20
|
-
const renderButton = (props) => render(React.createElement(Button, { ...props }));
|
|
21
|
-
it('renders button label', () => {
|
|
22
|
-
renderButton(tc.props);
|
|
23
|
-
expect(screen.getByText(tc.label)).toBeInTheDocument();
|
|
24
|
-
});
|
|
25
|
-
it('calls on click', async () => {
|
|
26
|
-
renderButton(tc.props);
|
|
27
|
-
await userEvent.click(screen.getByTestId(tc.testId));
|
|
28
|
-
expect(tc.props.onClick).toHaveBeenCalled();
|
|
29
|
-
});
|
|
30
|
-
it('renders disabled button', () => {
|
|
31
|
-
renderButton({ ...tc.props, disabled: true });
|
|
32
|
-
expect(screen.getByText(tc.label)).toBeDisabled();
|
|
33
|
-
});
|
|
34
|
-
it('respects stopPropagation default', async () => {
|
|
35
|
-
const callOnPropagation = jest.fn();
|
|
36
|
-
render(React.createElement("div", { onClick: callOnPropagation },
|
|
37
|
-
React.createElement(Button, { ...tc.props })));
|
|
38
|
-
await userEvent.click(screen.getByTestId(tc.testId));
|
|
39
|
-
expect(callOnPropagation).not.toHaveBeenCalled();
|
|
40
|
-
});
|
|
41
|
-
it('propagates click event if not told not to', async () => {
|
|
42
|
-
const callOnPropagation = jest.fn();
|
|
43
|
-
render(React.createElement("div", { onClick: callOnPropagation },
|
|
44
|
-
React.createElement(Button, { ...{ ...tc.props, stopPropagation: false } })));
|
|
45
|
-
await userEvent.click(screen.getByTestId(tc.testId));
|
|
46
|
-
expect(callOnPropagation).toHaveBeenCalled();
|
|
47
|
-
});
|
|
48
|
-
});
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import '@testing-library/jest-dom';
|
|
3
|
+
import { render, screen } from '@testing-library/react';
|
|
4
|
+
import userEvent from '@testing-library/user-event';
|
|
5
|
+
import Button from './Button';
|
|
6
|
+
describe('Button', () => {
|
|
7
|
+
class Context {
|
|
8
|
+
testId = 'buttonTestId';
|
|
9
|
+
label = 'button label';
|
|
10
|
+
props = {
|
|
11
|
+
label: this.label,
|
|
12
|
+
onClick: jest.fn(),
|
|
13
|
+
testId: this.testId,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
let tc;
|
|
17
|
+
beforeEach(() => {
|
|
18
|
+
tc = new Context();
|
|
19
|
+
});
|
|
20
|
+
const renderButton = (props) => render(React.createElement(Button, { ...props }));
|
|
21
|
+
it('renders button label', () => {
|
|
22
|
+
renderButton(tc.props);
|
|
23
|
+
expect(screen.getByText(tc.label)).toBeInTheDocument();
|
|
24
|
+
});
|
|
25
|
+
it('calls on click', async () => {
|
|
26
|
+
renderButton(tc.props);
|
|
27
|
+
await userEvent.click(screen.getByTestId(tc.testId));
|
|
28
|
+
expect(tc.props.onClick).toHaveBeenCalled();
|
|
29
|
+
});
|
|
30
|
+
it('renders disabled button', () => {
|
|
31
|
+
renderButton({ ...tc.props, disabled: true });
|
|
32
|
+
expect(screen.getByText(tc.label)).toBeDisabled();
|
|
33
|
+
});
|
|
34
|
+
it('respects stopPropagation default', async () => {
|
|
35
|
+
const callOnPropagation = jest.fn();
|
|
36
|
+
render(React.createElement("div", { onClick: callOnPropagation },
|
|
37
|
+
React.createElement(Button, { ...tc.props })));
|
|
38
|
+
await userEvent.click(screen.getByTestId(tc.testId));
|
|
39
|
+
expect(callOnPropagation).not.toHaveBeenCalled();
|
|
40
|
+
});
|
|
41
|
+
it('propagates click event if not told not to', async () => {
|
|
42
|
+
const callOnPropagation = jest.fn();
|
|
43
|
+
render(React.createElement("div", { onClick: callOnPropagation },
|
|
44
|
+
React.createElement(Button, { ...{ ...tc.props, stopPropagation: false } })));
|
|
45
|
+
await userEvent.click(screen.getByTestId(tc.testId));
|
|
46
|
+
expect(callOnPropagation).toHaveBeenCalled();
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
49
|
//# sourceMappingURL=Button.test.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export const buttonTypes = ['button', 'reset', 'submit', 'link'];
|
|
2
|
-
export const buttonSizes = ['sm', 'lg'];
|
|
3
|
-
export const buttonVariants = ['outline', 'theme', 'theme-light', 'warning', 'danger', 'no-border'];
|
|
4
|
-
export const iconPositions = ['left', 'right'];
|
|
1
|
+
export const buttonTypes = ['button', 'reset', 'submit', 'link'];
|
|
2
|
+
export const buttonSizes = ['sm', 'lg'];
|
|
3
|
+
export const buttonVariants = ['outline', 'theme', 'theme-light', 'warning', 'danger', 'no-border'];
|
|
4
|
+
export const iconPositions = ['left', 'right'];
|
|
5
5
|
//# sourceMappingURL=Button.types.js.map
|
package/dist/Button/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { default } from "./Button";
|
|
1
|
+
export { default } from "./Button";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|