@seeqdev/qomponents 0.0.132 → 0.0.133

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. package/README.md +135 -135
  2. package/dist/Accordion/Accordion.js +8 -8
  3. package/dist/Accordion/Accordion.stories.js +114 -114
  4. package/dist/Accordion/Accordion.test.js +54 -54
  5. package/dist/Accordion/Accordion.types.js +1 -1
  6. package/dist/Accordion/index.js +1 -1
  7. package/dist/Alert/Alert.js +33 -33
  8. package/dist/Alert/Alert.stories.js +51 -51
  9. package/dist/Alert/Alert.test.js +50 -50
  10. package/dist/Alert/Alert.types.js +1 -1
  11. package/dist/Alert/index.js +1 -1
  12. package/dist/Button/Button.js +91 -91
  13. package/dist/Button/Button.stories.js +99 -99
  14. package/dist/Button/Button.test.js +48 -48
  15. package/dist/Button/Button.types.js +4 -4
  16. package/dist/Button/index.js +1 -1
  17. package/dist/ButtonGroup/ButtonGroup.js +32 -32
  18. package/dist/ButtonGroup/ButtonGroup.stories.js +384 -384
  19. package/dist/ButtonGroup/ButtonGroup.test.js +66 -66
  20. package/dist/ButtonGroup/ButtonGroup.types.js +1 -1
  21. package/dist/ButtonGroup/index.js +1 -1
  22. package/dist/ButtonWithDropdown/ButtonWithDropdown.js +59 -59
  23. package/dist/ButtonWithDropdown/ButtonWithDropdown.stories.js +142 -142
  24. package/dist/ButtonWithDropdown/ButtonWithDropdown.test.js +92 -92
  25. package/dist/ButtonWithDropdown/ButtonWithDropdown.types.js +1 -1
  26. package/dist/ButtonWithDropdown/index.js +1 -1
  27. package/dist/ButtonWithPopover/ButtonWithPopover.js +61 -61
  28. package/dist/ButtonWithPopover/ButtonWithPopover.stories.js +74 -74
  29. package/dist/ButtonWithPopover/ButtonWithPopover.test.js +81 -81
  30. package/dist/ButtonWithPopover/ButtonWithPopover.types.js +1 -1
  31. package/dist/ButtonWithPopover/index.js +1 -1
  32. package/dist/Carousel/Carousel.js +66 -66
  33. package/dist/Carousel/Carousel.stories.js +114 -114
  34. package/dist/Carousel/Carousel.test.js +47 -47
  35. package/dist/Carousel/Carousel.types.js +1 -1
  36. package/dist/Carousel/index.js +1 -1
  37. package/dist/Checkbox/Checkbox.js +25 -25
  38. package/dist/Checkbox/Checkbox.stories.js +33 -33
  39. package/dist/Checkbox/Checkbox.test.js +93 -93
  40. package/dist/Checkbox/Checkbox.types.js +1 -1
  41. package/dist/Checkbox/index.js +1 -1
  42. package/dist/Collapse/Collapse.js +17 -17
  43. package/dist/Collapse/Collapse.stories.js +36 -36
  44. package/dist/Collapse/Collapse.test.js +18 -18
  45. package/dist/Collapse/Collapse.types.js +1 -1
  46. package/dist/Collapse/index.js +1 -1
  47. package/dist/Icon/Icon.js +54 -54
  48. package/dist/Icon/Icon.stories.js +46 -46
  49. package/dist/Icon/Icon.test.js +54 -54
  50. package/dist/Icon/Icon.types.js +15 -15
  51. package/dist/Icon/index.js +1 -1
  52. package/dist/InputGroup/InputGroup.js +31 -31
  53. package/dist/InputGroup/InputGroup.stories.js +167 -167
  54. package/dist/InputGroup/InputGroup.test.js +42 -42
  55. package/dist/InputGroup/InputGroup.types.js +1 -1
  56. package/dist/InputGroup/index.js +1 -1
  57. package/dist/Modal/Modal.js +99 -99
  58. package/dist/Modal/Modal.js.map +1 -1
  59. package/dist/Modal/Modal.stories.js +126 -126
  60. package/dist/Modal/Modal.test.js +107 -107
  61. package/dist/Modal/Modal.types.js +1 -1
  62. package/dist/Modal/index.js +1 -1
  63. package/dist/ProgressBar/ProgressBar.js +49 -29
  64. package/dist/ProgressBar/ProgressBar.js.map +1 -1
  65. package/dist/ProgressBar/ProgressBar.stories.js +80 -72
  66. package/dist/ProgressBar/ProgressBar.stories.js.map +1 -1
  67. package/dist/ProgressBar/ProgressBar.test.js +43 -37
  68. package/dist/ProgressBar/ProgressBar.test.js.map +1 -1
  69. package/dist/ProgressBar/ProgressBar.types.d.ts +2 -0
  70. package/dist/ProgressBar/ProgressBar.types.js +1 -1
  71. package/dist/ProgressBar/index.js +1 -1
  72. package/dist/SeeqActionDropdown/SeeqActionDropdown.js +47 -47
  73. package/dist/SeeqActionDropdown/SeeqActionDropdown.stories.js +79 -79
  74. package/dist/SeeqActionDropdown/SeeqActionDropdown.test.js +72 -72
  75. package/dist/SeeqActionDropdown/SeeqActionDropdown.types.js +1 -1
  76. package/dist/SeeqActionDropdown/index.js +1 -1
  77. package/dist/SeeqActionDropdown/variants.js +22 -22
  78. package/dist/Select/Select.js +173 -173
  79. package/dist/Select/Select.stories.js +79 -79
  80. package/dist/Select/Select.test.js +181 -181
  81. package/dist/Select/Select.types.js +1 -1
  82. package/dist/Select/index.js +2 -2
  83. package/dist/Slider/Slider.js +12 -12
  84. package/dist/Slider/Slider.stories.js +57 -57
  85. package/dist/Slider/Slider.test.js +32 -32
  86. package/dist/Slider/Slider.types.js +1 -1
  87. package/dist/Slider/index.js +1 -1
  88. package/dist/Tabs/Tabs.js +21 -21
  89. package/dist/Tabs/Tabs.stories.js +90 -90
  90. package/dist/Tabs/Tabs.test.js +90 -90
  91. package/dist/Tabs/Tabs.types.js +1 -1
  92. package/dist/Tabs/index.js +1 -1
  93. package/dist/TextArea/TextArea.js +24 -24
  94. package/dist/TextArea/TextArea.stories.js +45 -45
  95. package/dist/TextArea/TextArea.test.js +67 -67
  96. package/dist/TextArea/TextArea.types.js +1 -1
  97. package/dist/TextArea/index.js +1 -1
  98. package/dist/TextField/TextField.js +78 -78
  99. package/dist/TextField/TextField.stories.js +69 -69
  100. package/dist/TextField/TextField.test.js +38 -38
  101. package/dist/TextField/TextField.types.js +1 -1
  102. package/dist/TextField/index.js +1 -1
  103. package/dist/ToolbarButton/ToolbarButton.js +74 -74
  104. package/dist/ToolbarButton/ToolbarButton.stories.js +93 -93
  105. package/dist/ToolbarButton/ToolbarButton.test.js +92 -92
  106. package/dist/ToolbarButton/ToolbarButton.types.js +1 -1
  107. package/dist/ToolbarButton/index.js +1 -1
  108. package/dist/Tooltip/QTip.stories.js +44 -44
  109. package/dist/Tooltip/QTip.types.js +1 -1
  110. package/dist/Tooltip/QTipPerformance.stories.js +29 -29
  111. package/dist/Tooltip/Qtip.js +167 -167
  112. package/dist/Tooltip/Tooltip.js +35 -35
  113. package/dist/Tooltip/Tooltip.stories.js +31 -31
  114. package/dist/Tooltip/Tooltip.types.js +2 -2
  115. package/dist/Tooltip/TooltipPerformance.stories.js +29 -29
  116. package/dist/Tooltip/index.js +2 -2
  117. package/dist/Tooltip/qTip.utilities.js +10 -10
  118. package/dist/example/.eslintrc.cjs +14 -14
  119. package/dist/example/README.md +33 -33
  120. package/dist/example/index.html +13 -13
  121. package/dist/example/package.json +30 -30
  122. package/dist/example/src/ComplexSelectExample.tsx +81 -81
  123. package/dist/example/src/Example.tsx +408 -408
  124. package/dist/example/src/index.css +102 -102
  125. package/dist/example/src/main.tsx +10 -10
  126. package/dist/example/src/vite-env.d.ts +1 -1
  127. package/dist/example/tsconfig.json +33 -33
  128. package/dist/example/tsconfig.node.json +12 -12
  129. package/dist/example/vite.config.ts +12 -12
  130. package/dist/index.esm.js +1229 -31
  131. package/dist/index.esm.js.map +1 -1
  132. package/dist/index.js +1229 -31
  133. package/dist/index.js.map +1 -1
  134. package/dist/styles.css +3714 -3709
  135. package/dist/types.js +1 -1
  136. package/dist/utils/browserId.js +28 -28
  137. package/dist/utils/svg.js +19 -19
  138. package/dist/utils/validateStyleDimension.js +13 -13
  139. package/dist/utils/validateStyleDimension.test.js +19 -19
  140. package/package.json +88 -86
@@ -1,2 +1,2 @@
1
- export { default } from './Accordion';
1
+ export { default } from './Accordion';
2
2
  //# sourceMappingURL=index.js.map
@@ -1,34 +1,34 @@
1
- import React from 'react';
2
- import '../styles.css';
3
- import Icon from '../Icon';
4
- const baseClasses = 'tw-mx-auto tw-p-4 tw-leading-normal tw-outline-none tw-py-2 tw-px-3 tw-rounded-sm tw-w-full tw-relative' +
5
- ' tw-border-solid tw-border tw-text-sm tw-flex tw-flex-col tw-justify-center tw-items-center';
6
- const darkTheme = 'dark:tw-bg-sq-colored-hover-dark dark:tw-text-sq-dark-text';
7
- const lightTheme = 'tw-text-sq-text-color tw-bg-sq-colored-hover';
8
- const errorClasses = 'tw-border-sq-danger-color';
9
- const borderColorClasses = 'tw-border-sq-color-dark';
10
- /**
11
- * Alert.
12
- */
13
- export const Alert = ({ children, dismissible = true, onClose, show = true, variant, testId = 'alert-id', id, extraClassNames, ...tooltipProps }) => {
14
- const appliedTheme = {
15
- theme: `${lightTheme} ${darkTheme}`,
16
- danger: 'tw-text-sq-text-color tw-bg-sq-danger-color',
17
- warning: 'tw-bg-sq-bg-warning-color tw-text-sq-text-color',
18
- gray: 'tw-bg-sq-light-gray tw-text-sq-text-color dark:tw-bg-sq-dark-disabled-gray dark:tw-text-sq-dark-text',
19
- };
20
- const appliedBorderTheme = {
21
- theme: borderColorClasses,
22
- danger: errorClasses,
23
- warning: 'tw-border-none',
24
- gray: 'tw-border-sq-darkish-gray',
25
- };
26
- const appliedClasses = `${baseClasses} ${appliedTheme[variant]} ${extraClassNames} ${appliedBorderTheme[variant]}`;
27
- if (!show) {
28
- return React.createElement("div", null);
29
- }
30
- return (React.createElement("div", { "data-testid": testId, id: id, className: appliedClasses },
31
- children,
32
- dismissible && (React.createElement(Icon, { icon: "fc-delete", type: variant.match(/danger|warning/) ? 'color' : 'theme', color: variant.match(/danger|warning/) ? 'inherit' : undefined, extraClassNames: `tw-self-end tw-text-[11px] tw-cursor-pointer tw-absolute tw-right-[10px] tw-top-[10px] ${variant.match(/danger|warning|gray/) ? 'tw-text-sq-text-color dark:tw-text-sq-dark-text' : ''}`, testId: `${testId}-close-btn`, onClick: onClose, ...tooltipProps }))));
33
- };
1
+ import React from 'react';
2
+ import '../styles.css';
3
+ import Icon from '../Icon';
4
+ const baseClasses = 'tw-mx-auto tw-p-4 tw-leading-normal tw-outline-none tw-py-2 tw-px-3 tw-rounded-sm tw-w-full tw-relative' +
5
+ ' tw-border-solid tw-border tw-text-sm tw-flex tw-flex-col tw-justify-center tw-items-center';
6
+ const darkTheme = 'dark:tw-bg-sq-colored-hover-dark dark:tw-text-sq-dark-text';
7
+ const lightTheme = 'tw-text-sq-text-color tw-bg-sq-colored-hover';
8
+ const errorClasses = 'tw-border-sq-danger-color';
9
+ const borderColorClasses = 'tw-border-sq-color-dark';
10
+ /**
11
+ * Alert.
12
+ */
13
+ export const Alert = ({ children, dismissible = true, onClose, show = true, variant, testId = 'alert-id', id, extraClassNames, ...tooltipProps }) => {
14
+ const appliedTheme = {
15
+ theme: `${lightTheme} ${darkTheme}`,
16
+ danger: 'tw-text-sq-text-color tw-bg-sq-danger-color',
17
+ warning: 'tw-bg-sq-bg-warning-color tw-text-sq-text-color',
18
+ gray: 'tw-bg-sq-light-gray tw-text-sq-text-color dark:tw-bg-sq-dark-disabled-gray dark:tw-text-sq-dark-text',
19
+ };
20
+ const appliedBorderTheme = {
21
+ theme: borderColorClasses,
22
+ danger: errorClasses,
23
+ warning: 'tw-border-none',
24
+ gray: 'tw-border-sq-darkish-gray',
25
+ };
26
+ const appliedClasses = `${baseClasses} ${appliedTheme[variant]} ${extraClassNames} ${appliedBorderTheme[variant]}`;
27
+ if (!show) {
28
+ return React.createElement("div", null);
29
+ }
30
+ return (React.createElement("div", { "data-testid": testId, id: id, className: appliedClasses },
31
+ children,
32
+ dismissible && (React.createElement(Icon, { icon: "fc-delete", type: variant.match(/danger|warning/) ? 'color' : 'theme', color: variant.match(/danger|warning/) ? 'inherit' : undefined, extraClassNames: `tw-self-end tw-text-[11px] tw-cursor-pointer tw-absolute tw-right-[10px] tw-top-[10px] ${variant.match(/danger|warning|gray/) ? 'tw-text-sq-text-color dark:tw-text-sq-dark-text' : ''}`, testId: `${testId}-close-btn`, onClick: onClose, ...tooltipProps }))));
33
+ };
34
34
  //# sourceMappingURL=Alert.js.map
@@ -1,52 +1,52 @@
1
- import React from 'react';
2
- import { Alert } from './Alert';
3
- import { QTip } from '../Tooltip';
4
- export default {
5
- title: 'Alert',
6
- };
7
- const colors = ['topic', 'analysis', 'datalab', 'vantage'];
8
- const renderAlert = ({ text, dismissable, variant, }) => (React.createElement("div", { className: "tw-text-sq-color-gray dark:tw-text-sq-white" },
9
- React.createElement("p", { className: "tw-mb-5 tw-text-[15px] tw-leading-normal" }),
10
- React.createElement(Alert, { variant: variant, dismissible: dismissable, show: true, extraClassNames: "tw-h-[200px]", tooltip: "This is a small close alert icon", tooltipDelay: 0, tooltipPlacement: "top", isHtmlTooltip: false }, text)));
11
- export const AllAlertsVariants = () => {
12
- const renderAllVariations = (color) => (React.createElement("div", { key: color + '_wrapper' },
13
- React.createElement("div", { className: "tw-p-4" }, renderAlert({
14
- text: 'This is a dismissible alert, it looks very pleasing and is very useful for showing alerts to the user',
15
- dismissable: true,
16
- variant: 'theme',
17
- })),
18
- React.createElement("div", { className: "tw-p-4" }, renderAlert({
19
- text: 'This is a non dismissable alert, it looks very pleasing and is very useful for showing alerts to the user',
20
- dismissable: false,
21
- variant: 'theme',
22
- })),
23
- React.createElement("div", { className: "tw-p-4" }, renderAlert({
24
- text: 'This is a warning alert, it is used to display a warning',
25
- dismissable: false,
26
- variant: 'warning',
27
- })),
28
- React.createElement("div", { className: "tw-p-4" }, renderAlert({
29
- text: 'This is an error alert, it is used to display an error',
30
- dismissable: false,
31
- variant: 'danger',
32
- })),
33
- React.createElement("div", { className: "tw-p-4" }, renderAlert({
34
- text: 'This is a gray alert, it is used to display a neutral alert',
35
- dismissable: true,
36
- variant: 'gray',
37
- })),
38
- React.createElement("div", { className: "tw-p-4" }, renderAlert({
39
- text: 'This is an error alert that is dismissible, it is used to display an error',
40
- dismissable: true,
41
- variant: 'danger',
42
- }))));
43
- return (React.createElement("div", null,
44
- React.createElement(QTip, null),
45
- React.createElement("div", { className: "tw-grid tw-grid-cols-4 tw-gap-4" }, colors.map((color) => {
46
- return React.createElement("div", { className: `color_${color}` }, renderAllVariations(color));
47
- })),
48
- React.createElement("div", { className: "tw-dark tw-bg-sq-dark-background tw-grid tw-grid-cols-4 tw-gap-4" }, colors.map((color) => {
49
- return React.createElement("div", { className: `color_${color}` }, renderAllVariations(color));
50
- }))));
51
- };
1
+ import React from 'react';
2
+ import { Alert } from './Alert';
3
+ import { QTip } from '../Tooltip';
4
+ export default {
5
+ title: 'Alert',
6
+ };
7
+ const colors = ['topic', 'analysis', 'datalab', 'vantage'];
8
+ const renderAlert = ({ text, dismissable, variant, }) => (React.createElement("div", { className: "tw-text-sq-color-gray dark:tw-text-sq-white" },
9
+ React.createElement("p", { className: "tw-mb-5 tw-text-[15px] tw-leading-normal" }),
10
+ React.createElement(Alert, { variant: variant, dismissible: dismissable, show: true, extraClassNames: "tw-h-[200px]", tooltip: "This is a small close alert icon", tooltipDelay: 0, tooltipPlacement: "top", isHtmlTooltip: false }, text)));
11
+ export const AllAlertsVariants = () => {
12
+ const renderAllVariations = (color) => (React.createElement("div", { key: color + '_wrapper' },
13
+ React.createElement("div", { className: "tw-p-4" }, renderAlert({
14
+ text: 'This is a dismissible alert, it looks very pleasing and is very useful for showing alerts to the user',
15
+ dismissable: true,
16
+ variant: 'theme',
17
+ })),
18
+ React.createElement("div", { className: "tw-p-4" }, renderAlert({
19
+ text: 'This is a non dismissable alert, it looks very pleasing and is very useful for showing alerts to the user',
20
+ dismissable: false,
21
+ variant: 'theme',
22
+ })),
23
+ React.createElement("div", { className: "tw-p-4" }, renderAlert({
24
+ text: 'This is a warning alert, it is used to display a warning',
25
+ dismissable: false,
26
+ variant: 'warning',
27
+ })),
28
+ React.createElement("div", { className: "tw-p-4" }, renderAlert({
29
+ text: 'This is an error alert, it is used to display an error',
30
+ dismissable: false,
31
+ variant: 'danger',
32
+ })),
33
+ React.createElement("div", { className: "tw-p-4" }, renderAlert({
34
+ text: 'This is a gray alert, it is used to display a neutral alert',
35
+ dismissable: true,
36
+ variant: 'gray',
37
+ })),
38
+ React.createElement("div", { className: "tw-p-4" }, renderAlert({
39
+ text: 'This is an error alert that is dismissible, it is used to display an error',
40
+ dismissable: true,
41
+ variant: 'danger',
42
+ }))));
43
+ return (React.createElement("div", null,
44
+ React.createElement(QTip, null),
45
+ React.createElement("div", { className: "tw-grid tw-grid-cols-4 tw-gap-4" }, colors.map((color) => {
46
+ return React.createElement("div", { className: `color_${color}` }, renderAllVariations(color));
47
+ })),
48
+ React.createElement("div", { className: "tw-dark tw-bg-sq-dark-background tw-grid tw-grid-cols-4 tw-gap-4" }, colors.map((color) => {
49
+ return React.createElement("div", { className: `color_${color}` }, renderAllVariations(color));
50
+ }))));
51
+ };
52
52
  //# sourceMappingURL=Alert.stories.js.map
@@ -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
@@ -1,2 +1,2 @@
1
- export { Alert as default } from './Alert';
1
+ export { Alert as default } from './Alert';
2
2
  //# sourceMappingURL=index.js.map
@@ -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