@seeqdev/qomponents 0.0.101 → 0.0.102
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/Alert/Alert.js +32 -0
- package/dist/Alert/Alert.js.map +1 -0
- package/dist/Alert/Alert.stories.js +40 -0
- package/dist/Alert/Alert.stories.js.map +1 -0
- package/dist/Alert/Alert.test.d.ts +1 -0
- package/dist/Alert/Alert.test.js +51 -0
- package/dist/Alert/Alert.test.js.map +1 -0
- package/dist/Alert/Alert.types.js +2 -0
- package/dist/Alert/Alert.types.js.map +1 -0
- package/dist/Alert/index.js +2 -0
- package/dist/Alert/index.js.map +1 -0
- package/dist/index.esm.js +2 -6
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +2 -6
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,32 @@
|
|
|
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-1 tw-px-3 tw-rounded-sm tw-max-w-sm' +
|
|
5
|
+
' tw-border-solid tw-border tw-text-sm tw-flex tw-flex-col';
|
|
6
|
+
const darkTheme = 'dark:tw-bg-sq-dark-background dark:tw-text-sq-dark-text';
|
|
7
|
+
const lightTheme = 'tw-text-sq-text-color tw-bg-sq-color-alert';
|
|
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, id, extraClassNames, }) => {
|
|
14
|
+
const appliedTheme = {
|
|
15
|
+
theme: `${lightTheme} ${darkTheme}`,
|
|
16
|
+
danger: 'tw-text-sq-text-color tw-bg-sq-danger-color',
|
|
17
|
+
warning: 'tw-bg-sq-warning-color tw-text-sq-text-color',
|
|
18
|
+
};
|
|
19
|
+
const appliedBorderTheme = {
|
|
20
|
+
theme: borderColorClasses,
|
|
21
|
+
danger: errorClasses,
|
|
22
|
+
warning: 'tw-border-none',
|
|
23
|
+
};
|
|
24
|
+
const appliedClasses = `${baseClasses} ${appliedTheme[variant]} ${extraClassNames} ${appliedBorderTheme[variant]}`;
|
|
25
|
+
if (!show) {
|
|
26
|
+
return React.createElement("div", null);
|
|
27
|
+
}
|
|
28
|
+
return (React.createElement("div", { "data-testid": testId, id: id, className: appliedClasses },
|
|
29
|
+
dismissible && React.createElement(Icon, { icon: "fc-delete", extraClassNames: "tw-self-end tw-text-[11px]", testId: `${testId}-close-btn`, onClick: onClose }),
|
|
30
|
+
children));
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=Alert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Alert.js","sourceRoot":"","sources":["../../src/Alert/Alert.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,eAAe,CAAC;AACvB,OAAO,IAAI,MAAM,SAAS,CAAC;AAG3B,MAAM,WAAW,GACf,+FAA+F;IAC/F,2DAA2D,CAAC;AAE9D,MAAM,SAAS,GAAG,yDAAyD,CAAC;AAC5E,MAAM,UAAU,GAAG,4CAA4C,CAAC;AAEhE,MAAM,YAAY,GAAG,2BAA2B,CAAC;AAEjD,MAAM,kBAAkB,GAAG,yBAAyB,CAAC;AAErD;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAAwC,CAAC,EACzD,QAAQ,EACR,WAAW,GAAG,IAAI,EAClB,OAAO,EACP,IAAI,GAAG,IAAI,EACX,OAAO,EACP,MAAM,EACN,EAAE,EACF,eAAe,GAChB,EAAE,EAAE;IACH,MAAM,YAAY,GAA0C;QAC1D,KAAK,EAAE,GAAG,UAAU,IAAI,SAAS,EAAE;QACnC,MAAM,EAAE,6CAA6C;QACrD,OAAO,EAAE,8CAA8C;KACxD,CAAC;IACF,MAAM,kBAAkB,GAA0C;QAChE,KAAK,EAAE,kBAAkB;QACzB,MAAM,EAAE,YAAY;QACpB,OAAO,EAAE,gBAAgB;KAC1B,CAAC;IACF,MAAM,cAAc,GAAG,GAAG,WAAW,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,eAAe,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;IAEnH,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,gCAAO,CAAC;KAChB;IACD,OAAO,CACL,4CAAkB,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,cAAc;QACxD,WAAW,IAAI,oBAAC,IAAI,IAAC,IAAI,EAAC,WAAW,EAAC,eAAe,EAAC,4BAA4B,EAAC,MAAM,EAAE,GAAG,MAAM,YAAY,EAAE,OAAO,EAAE,OAAO,GAAI;QACtI,QAAQ,CACL,CACP,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Alert } from './Alert';
|
|
3
|
+
export default {
|
|
4
|
+
title: 'Alert',
|
|
5
|
+
};
|
|
6
|
+
const colors = ['topic', 'analysis', 'datalab', 'vantage'];
|
|
7
|
+
const renderAlert = ({ text, dismissable, variant, }) => (React.createElement("div", { className: "tw-text-sq-color-gray dark:tw-text-sq-white" },
|
|
8
|
+
React.createElement("p", { className: "tw-mb-5 tw-text-[15px] tw-leading-normal" }),
|
|
9
|
+
React.createElement(Alert, { variant: variant, dismissible: dismissable, show: true }, text)));
|
|
10
|
+
export const AllAlertsVariants = () => {
|
|
11
|
+
const renderAllVariations = (color) => (React.createElement("div", { key: color + '_wrapper' },
|
|
12
|
+
React.createElement("div", { className: "tw-p-4" }, renderAlert({
|
|
13
|
+
text: 'This is a dismissible alert, it looks very pleasing and is very useful for showing alerts to the user',
|
|
14
|
+
dismissable: true,
|
|
15
|
+
variant: 'theme',
|
|
16
|
+
})),
|
|
17
|
+
React.createElement("div", { className: "tw-p-4" }, renderAlert({
|
|
18
|
+
text: 'This is a non dismissable alert, it looks very pleasing and is very useful for showing alerts to the user',
|
|
19
|
+
dismissable: false,
|
|
20
|
+
variant: 'theme',
|
|
21
|
+
})),
|
|
22
|
+
React.createElement("div", { className: "tw-p-4" }, renderAlert({
|
|
23
|
+
text: 'This is a warning alert, it is used to display a warning',
|
|
24
|
+
dismissable: false,
|
|
25
|
+
variant: 'warning',
|
|
26
|
+
})),
|
|
27
|
+
React.createElement("div", { className: "tw-p-4" }, renderAlert({
|
|
28
|
+
text: 'This is an error alert, it is used to display an error',
|
|
29
|
+
dismissable: false,
|
|
30
|
+
variant: 'danger',
|
|
31
|
+
}))));
|
|
32
|
+
return (React.createElement("div", null,
|
|
33
|
+
React.createElement("div", { className: "tw-grid tw-grid-cols-4 tw-gap-4" }, colors.map((color) => {
|
|
34
|
+
return React.createElement("div", { className: `color_${color}` }, renderAllVariations(color));
|
|
35
|
+
})),
|
|
36
|
+
React.createElement("div", { className: "tw-dark tw-bg-sq-dark-background tw-grid tw-grid-cols-4 tw-gap-4" }, colors.map((color) => {
|
|
37
|
+
return React.createElement("div", { className: `color_${color}` }, renderAllVariations(color));
|
|
38
|
+
}))));
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=Alert.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Alert.stories.js","sourceRoot":"","sources":["../../src/Alert/Alert.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,eAAe;IACb,KAAK,EAAE,OAAO;CACf,CAAC;AAEF,MAAM,MAAM,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAE3D,MAAM,WAAW,GAAG,CAAC,EACnB,IAAI,EACJ,WAAW,EACX,OAAO,GAKR,EAAE,EAAE,CAAC,CACJ,6BAAK,SAAS,EAAC,6CAA6C;IAC1D,2BAAG,SAAS,EAAC,0CAA0C,GAAK;IAC5D,oBAAC,KAAK,IAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,UACpD,IAAI,CACC,CACJ,CACP,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,MAAM,mBAAmB,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,CAC7C,6BAAK,GAAG,EAAE,KAAK,GAAG,UAAU;QAC1B,6BAAK,SAAS,EAAC,QAAQ,IACpB,WAAW,CAAC;YACX,IAAI,EAAE,uGAAuG;YAC7G,WAAW,EAAE,IAAI;YACjB,OAAO,EAAE,OAAO;SACjB,CAAC,CACE;QACN,6BAAK,SAAS,EAAC,QAAQ,IACpB,WAAW,CAAC;YACX,IAAI,EAAE,2GAA2G;YACjH,WAAW,EAAE,KAAK;YAClB,OAAO,EAAE,OAAO;SACjB,CAAC,CACE;QACN,6BAAK,SAAS,EAAC,QAAQ,IACpB,WAAW,CAAC;YACX,IAAI,EAAE,0DAA0D;YAChE,WAAW,EAAE,KAAK;YAClB,OAAO,EAAE,SAAS;SACnB,CAAC,CACE;QACN,6BAAK,SAAS,EAAC,QAAQ,IACpB,WAAW,CAAC;YACX,IAAI,EAAE,wDAAwD;YAC9D,WAAW,EAAE,KAAK;YAClB,OAAO,EAAE,QAAQ;SAClB,CAAC,CACE,CACF,CACP,CAAC;IACF,OAAO,CACL;QACE,6BAAK,SAAS,EAAC,iCAAiC,IAC7C,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACpB,OAAO,6BAAK,SAAS,EAAE,SAAS,KAAK,EAAE,IAAG,mBAAmB,CAAC,KAAK,CAAC,CAAO,CAAC;QAC9E,CAAC,CAAC,CACE;QACN,6BAAK,SAAS,EAAC,kEAAkE,IAC9E,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACpB,OAAO,6BAAK,SAAS,EAAE,SAAS,KAAK,EAAE,IAAG,mBAAmB,CAAC,KAAK,CAAC,CAAO,CAAC;QAC9E,CAAC,CAAC,CACE,CACF,CACP,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import '@testing-library/jest-dom/extend-expect';
|
|
@@ -0,0 +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-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
|
+
//# sourceMappingURL=Alert.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Alert.test.js","sourceRoot":"","sources":["../../src/Alert/Alert.test.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Alert.types.js","sourceRoot":"","sources":["../../src/Alert/Alert.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Alert/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,OAAO,EAAE,MAAM,SAAS,CAAC"}
|
package/dist/index.esm.js
CHANGED
|
@@ -4723,11 +4723,7 @@ const TextField = React__default.forwardRef((props, ref) => {
|
|
|
4723
4723
|
else if (inputGroup === 'right') {
|
|
4724
4724
|
borderRadius = 'tw-rounded-r-sm tw-border-l-0 focus:tw-border-l active:tw-border-l';
|
|
4725
4725
|
}
|
|
4726
|
-
|
|
4727
|
-
if ((min && Number(value) < min) || (max && Number(value) > max)) {
|
|
4728
|
-
hasError = true;
|
|
4729
|
-
}
|
|
4730
|
-
const appliedClasses = `${baseClasses$3} ${sizeClasses[size]} ${extraClassNames} ${lightTheme$1} ${darkTheme$1} ${borderRadius} ${hasError ? errorClasses$2 : borderColorClasses$2} `;
|
|
4726
|
+
const appliedClasses = `${baseClasses$3} ${sizeClasses[size]} ${extraClassNames} ${lightTheme$1} ${darkTheme$1} ${borderRadius} ${showError ? errorClasses$2 : borderColorClasses$2} `;
|
|
4731
4727
|
const inputProp = setValidInputDimension(inputWidth, inputHeight)
|
|
4732
4728
|
? {
|
|
4733
4729
|
style: setValidInputDimension(inputWidth, inputHeight),
|
|
@@ -4766,7 +4762,7 @@ const Checkbox = (props) => {
|
|
|
4766
4762
|
: 'tw-cursor-pointer tw-text-sq-text-color dark:tw-text-sq-dark-text'}` }, label)));
|
|
4767
4763
|
};
|
|
4768
4764
|
|
|
4769
|
-
const baseClasses$1 = 'tw-leading-normal tw-outline-none tw-py-1 tw-px-3 tw-rounded-sm' +
|
|
4765
|
+
const baseClasses$1 = 'tw-leading-normal tw-outline-none tw-py-1 tw-px-3 tw-rounded-sm tw-w-full' +
|
|
4770
4766
|
' disabled:tw-pointer-events-none disabled:tw-bg-sq-light-gray disabled:dark:tw-bg-sq-dark-disabled-gray' +
|
|
4771
4767
|
' disabled:tw-cursor-not-allowed tw-p-1 tw-border-solid tw-border tw-text-sm';
|
|
4772
4768
|
const darkTheme = 'dark:tw-bg-sq-dark-background dark:tw-text-sq-dark-text ' +
|