Skip to content

Commit 8d025df

Browse files
authored
Merge pull request #7 from kubit-ui/feature/update-minor-new-improvements
Feature/update minor new improvements
2 parents cfb0e29 + b3ffb1f commit 8d025df

File tree

128 files changed

+2468
-460
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

128 files changed

+2468
-460
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@kubit-ui-web/react-components",
3-
"version": "1.1.5",
3+
"version": "1.2.0",
44
"description": "Kubit React Components is a customizable, accessible library of React web components, designed to enhance your application's user experience",
55
"author": {
66
"name": "Kubit",

src/components/accordion/accordion.styled.ts

Lines changed: 1 addition & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -32,26 +32,6 @@ export const AccordionHeaderMainContainerStyled = styled.div<IAccordionStyles>`
3232
${props => getStyles(props.styles)}
3333
`;
3434

35-
export const AccordionHeaderMainStyled = styled.div`
36-
${({ theme: { MEDIA_QUERIES } }) => css`
37-
display: flex;
38-
width: 100%;
39-
align-items: center;
40-
justify-content: space-between;
41-
${MEDIA_QUERIES?.onlyMobile} {
42-
flex-direction: column;
43-
justify-content: left;
44-
align-items: flex-start;
45-
}
46-
`}
47-
${({ theme: { MEDIA_QUERIES } }) => css`
48-
${MEDIA_QUERIES?.onlyMobile} {
49-
flex-direction: row;
50-
align-items: center;
51-
}
52-
`}
53-
`;
54-
5535
export const AccordionHeaderTitleHeadlineStyled = styled.span`
5636
display: flex;
5737
width: 100%;
@@ -73,23 +53,7 @@ export const AccordionTriggerStyled = styled.button<IAccordionStyles>`
7353
${props => getStyles(props.styles)}
7454
`;
7555

76-
export const AccordionTriggerLinkStyled = styled.div<IAccordionStyles>`
77-
${props => getStyles(props.styles)}
78-
`;
79-
80-
export const AccordionTriggerIconStyled = styled.span<IAccordionStyles>`
81-
${({ $rotate }) =>
82-
$rotate &&
83-
css`
84-
svg {
85-
transform: rotate(180deg);
86-
}
87-
`};
88-
${props => getStyles(props.styles)}
89-
`;
90-
91-
export const AccordionTriggerIconLinkStyled = styled.button<IAccordionStyles>`
92-
cursor: pointer;
56+
export const AccordionTriggerIconContainerStyled = styled.span<IAccordionStyles>`
9357
${({ $rotate }) =>
9458
$rotate &&
9559
css`

src/components/accordion/accordionStandAlone.tsx

Lines changed: 41 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,7 @@ import {
1919
AccordionSubHeaderContainerStyled,
2020
AccordionTitleIconWrapper,
2121
AccordionTitleStyled,
22-
AccordionTriggerIconLinkStyled,
23-
AccordionTriggerIconStyled,
24-
AccordionTriggerLinkStyled,
22+
AccordionTriggerIconContainerStyled,
2523
AccordionTriggerStyled,
2624
LineSeparatorContainerStyled,
2725
} from './accordion.styled';
@@ -44,93 +42,6 @@ const AccordionStandAloneComponent = (
4442

4543
const getDataTestId = (uniqueId = ''): string => `${props.dataTestId}${uniqueId}`;
4644

47-
const renderTitle = () => {
48-
if (!props.title) return null;
49-
return typeof props.title?.content === 'string' ? (
50-
<AccordionTriggerStyled
51-
aria-controls={PANEL_ID}
52-
aria-expanded={open}
53-
data-testid={getDataTestId('TriggerButton')}
54-
id={TRIGGER_ID}
55-
styles={props.styles.trigger}
56-
type={ButtonType.BUTTON}
57-
{...props.triggerButton}
58-
>
59-
<AccordionTriggerIconStyled
60-
$rotate={open}
61-
data-testid={`${props.dataTestId}TriggerIconWrapper`}
62-
styles={props.styles.triggerIconContainer}
63-
>
64-
<ElementOrIcon
65-
customIconStyles={props.styles.triggerIcon}
66-
dataTestId={getDataTestId('TriggerIcon')}
67-
{...props.triggerIcon}
68-
/>
69-
</AccordionTriggerIconStyled>
70-
<AccordionTitleStyled styles={props.styles.titleContainer}>
71-
{props.titleIcon && (
72-
<AccordionTitleIconWrapper styles={props.styles.titleIconContainer}>
73-
<ElementOrIcon
74-
customIconStyles={props.styles.titleIcon}
75-
dataTestId={getDataTestId('TitleIcon')}
76-
{...props.titleIcon}
77-
/>
78-
</AccordionTitleIconWrapper>
79-
)}
80-
<Text
81-
component={TextComponentType.SPAN}
82-
customTypography={props.styles.title}
83-
dataTestId={getDataTestId('TriggerText')}
84-
{...props.title}
85-
>
86-
{props.title.content}
87-
</Text>
88-
</AccordionTitleStyled>
89-
</AccordionTriggerStyled>
90-
) : (
91-
<AccordionTriggerLinkStyled
92-
data-testid={getDataTestId('TriggerButton')}
93-
styles={props.styles.link}
94-
>
95-
<AccordionTriggerIconLinkStyled
96-
$rotate={open}
97-
aria-controls={PANEL_ID}
98-
aria-expanded={open}
99-
data-testid={`${props.dataTestId}TriggerIconWrapper`}
100-
id={TRIGGER_ID}
101-
styles={props.styles.triggerIconContainer}
102-
type={ButtonType.BUTTON}
103-
{...props.triggerButton}
104-
>
105-
<ElementOrIcon
106-
customIconStyles={props.styles.triggerIcon}
107-
dataTestId={getDataTestId('TriggerIcon')}
108-
{...props.triggerIcon}
109-
/>
110-
</AccordionTriggerIconLinkStyled>
111-
<AccordionTitleStyled styles={props.styles.titleContainer}>
112-
{props.titleIcon && (
113-
<AccordionTitleIconWrapper styles={props.styles.titleIconContainer}>
114-
<ElementOrIcon
115-
customIconStyles={props.styles.titleIcon}
116-
dataTestId={getDataTestId('TitleIcon')}
117-
{...props.titleIcon}
118-
/>
119-
</AccordionTitleIconWrapper>
120-
)}
121-
<Text
122-
component={TextComponentType.SPAN}
123-
customTypography={props.styles.title}
124-
dataTestId={getDataTestId('TriggerText')}
125-
{...props.title}
126-
>
127-
{props.title?.content}
128-
</Text>
129-
</AccordionTitleStyled>
130-
</AccordionTriggerLinkStyled>
131-
);
132-
};
133-
13445
return (
13546
<AccordionContainerStyled
13647
ref={ref}
@@ -147,7 +58,46 @@ const AccordionStandAloneComponent = (
14758
>
14859
<AccordionHeaderMainContainerStyled styles={props.styles.headerMainContainer}>
14960
<AccordionHeaderTitleHeadlineStyled as={props.triggerComponent}>
150-
{renderTitle()}
61+
<AccordionTriggerStyled
62+
aria-controls={PANEL_ID}
63+
aria-expanded={open}
64+
data-testid={getDataTestId('TriggerButton')}
65+
id={TRIGGER_ID}
66+
styles={props.styles[typeof props.title?.content !== 'string' ? 'link' : 'trigger']}
67+
type={ButtonType.BUTTON}
68+
{...props.triggerButton}
69+
>
70+
<AccordionTriggerIconContainerStyled
71+
$rotate={open}
72+
data-testid={`${props.dataTestId}TriggerIconWrapper`}
73+
styles={props.styles.triggerIconContainer}
74+
>
75+
<ElementOrIcon
76+
customIconStyles={props.styles.triggerIcon}
77+
dataTestId={getDataTestId('TriggerIcon')}
78+
{...props.triggerIcon}
79+
/>
80+
</AccordionTriggerIconContainerStyled>
81+
<AccordionTitleStyled styles={props.styles.titleContainer}>
82+
{props.titleIcon && (
83+
<AccordionTitleIconWrapper styles={props.styles.titleIconContainer}>
84+
<ElementOrIcon
85+
customIconStyles={props.styles.titleIcon}
86+
dataTestId={getDataTestId('TitleIcon')}
87+
{...props.titleIcon}
88+
/>
89+
</AccordionTitleIconWrapper>
90+
)}
91+
<Text
92+
component={TextComponentType.SPAN}
93+
customTypography={props.styles.title}
94+
dataTestId={getDataTestId('TriggerText')}
95+
{...props.title}
96+
>
97+
{props.title?.content}
98+
</Text>
99+
</AccordionTitleStyled>
100+
</AccordionTriggerStyled>
151101
</AccordionHeaderTitleHeadlineStyled>
152102
{props.headerRightContent && (
153103
<AccordionHeaderRightContentStyled

src/components/accordion/types/accordionTheme.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ export type AccordionPropsStylesType = {
1515
headerInternalContainer?: CommonStyleType;
1616
headerMainContainer?: CommonStyleType;
1717
trigger?: CommonStyleType;
18+
/**
19+
* @deprecated currently link styles is used instead of trigger when tittle is not type of string. In the next major only trigger styles will be used
20+
*/
1821
link?: CommonStyleType;
1922
triggerIconContainer?: CommonStyleType;
2023
triggerIcon?: IconTypes;

src/components/avatar/__tests__/avatar.test.tsx

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,4 +62,20 @@ describe('Avatar component', () => {
6262
expect(container).toHTMLValidate();
6363
expect(results).toHaveNoViolations();
6464
});
65+
66+
test('Should render Avatar like link', async () => {
67+
const { container } = renderProvider(
68+
<Avatar
69+
image="url"
70+
{...mockProps}
71+
link={{ content: 'content', variant: 'PRIMARY', url: '/' }}
72+
/>
73+
);
74+
75+
const linkElement = screen.getByRole(ROLES.LINK);
76+
expect(linkElement).toBeInTheDocument();
77+
const results = await axe(container);
78+
expect(container).toHTMLValidate();
79+
expect(results).toHaveNoViolations();
80+
});
6581
});

src/components/button/__tests__/button.test.tsx

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,3 +137,16 @@ test('Button without children and icon', async () => {
137137
expect(container).toHTMLValidate();
138138
expect(results).toHaveNoViolations();
139139
});
140+
141+
test('should render an SVG if icon prop is provided', async () => {
142+
const { container } = renderProvider(
143+
<Button icon={{ icon: 'icon', altText: 'altIcon' }} size="LARGE" variant="PRIMARY" />
144+
);
145+
146+
const svg = screen.getByRole('img', { name: /altIcon/i });
147+
148+
expect(svg).toBeInTheDocument();
149+
const results = await axe(container);
150+
expect(container).toHTMLValidate();
151+
expect(results).toHaveNoViolations();
152+
});

src/components/button/button.styled.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@ export const ButtonStyled = styled.button<IButtonStyled>`
5454
flex-direction: ${props =>
5555
props.$iconPosition === IconPositionType.LEFT ? 'row' : 'row-reverse'};
5656
position: relative;
57-
white-space: nowrap;
5857
5958
${({ $state, $styles, $sizeStyles }) => setTokens($state, $styles, $sizeStyles)}
6059
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
export { Header } from './header';
2+
export * from './types';
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from './header';

src/components/calendar/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
export { Calendar } from './calendar';
22
export * from './types';
33
export * from './constants/constants';
4+
export * from './selector';
5+
export * from './list';

0 commit comments

Comments
 (0)