@groupeactual/ui-kit 1.7.9 → 1.8.1
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/cjs/index.js +9 -9
- package/dist/es/index.d.ts +68 -56
- package/dist/es/index.js +8 -8
- package/dist/es/src/components/Modal/Drawer/Drawer.d.ts +2 -2
- package/dist/es/src/components/Modal/modal.interface.d.ts +4 -1
- package/dist/es/src/components/ToggleButtonGroup/ToggleButtonGroup.d.ts +11 -0
- package/dist/es/src/components/ToggleButtonGroup/index.d.ts +1 -0
- package/dist/es/src/components/index.d.ts +1 -0
- package/package.json +2 -2
- package/src/components/Modal/Drawer/Drawer.tsx +21 -14
- package/src/components/Modal/modal.interface.ts +4 -1
- package/src/components/ToggleButtonGroup/ToggleButtonGroup.tsx +31 -0
- package/src/components/ToggleButtonGroup/index.ts +1 -0
- package/src/components/index.ts +1 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
declare const Drawer: ({ title, open,
|
|
2
|
+
import { DrawerProps } from '@/components/Modal/modal.interface';
|
|
3
|
+
declare const Drawer: ({ title, open, hideCloseButton, titleLeftComponent, footer, cardProps, size, children, onClose, ...props }: DrawerProps) => React.JSX.Element;
|
|
4
4
|
export default Drawer;
|
|
@@ -10,13 +10,16 @@ export interface ModalProps extends Omit<ModalPropsMUI, 'component' | 'open' | '
|
|
|
10
10
|
open: boolean;
|
|
11
11
|
title?: string;
|
|
12
12
|
size?: 'small' | 'large';
|
|
13
|
-
component: ReactNode | null;
|
|
14
13
|
footer?: ReactNode | null;
|
|
15
14
|
cardProps?: Partial<CardProps>;
|
|
16
15
|
className?: string;
|
|
17
16
|
icon?: IconDefinition;
|
|
18
17
|
onClose?: () => void;
|
|
19
18
|
}
|
|
19
|
+
export interface DrawerProps extends Omit<ModalProps, 'icon'> {
|
|
20
|
+
titleLeftComponent?: ReactNode;
|
|
21
|
+
hideCloseButton?: boolean;
|
|
22
|
+
}
|
|
20
23
|
export type DialogTitleProps<T extends OverridableTypeMap> = DefaultComponentProps<T> & {
|
|
21
24
|
children?: ReactNode;
|
|
22
25
|
icon?: IconDefinition | null;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ToggleButtonGroupProps } from '@mui/material';
|
|
3
|
+
interface Props extends ToggleButtonGroupProps {
|
|
4
|
+
selectedValue: string | string[];
|
|
5
|
+
options: {
|
|
6
|
+
value: string;
|
|
7
|
+
label: string;
|
|
8
|
+
}[];
|
|
9
|
+
}
|
|
10
|
+
declare const ToggleButtonGroup: ({ selectedValue, options, ...props }: Props) => React.JSX.Element;
|
|
11
|
+
export default ToggleButtonGroup;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './ToggleButtonGroup';
|
|
@@ -32,3 +32,4 @@ export { default as TimePicker } from './Form/TimePicker';
|
|
|
32
32
|
export { default as Datatable } from './Datatable/Datatable';
|
|
33
33
|
export { default as DatatableCellRender } from './Datatable/DatatableCellRender';
|
|
34
34
|
export { default as IconButton } from './IconButton/IconButton';
|
|
35
|
+
export { default as ToggleButtonGroup } from './ToggleButtonGroup/ToggleButtonGroup';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@groupeactual/ui-kit",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.8.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A simple template for a custom React component library",
|
|
6
6
|
"main": "dist/cjs/index.js",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"@mui/x-date-pickers": "7.15.0",
|
|
34
34
|
"@mui/x-date-pickers-pro": "7.15.0",
|
|
35
35
|
"styled-components": "^6.1.13",
|
|
36
|
-
"@groupeactual/design-tokens": "1.
|
|
36
|
+
"@groupeactual/design-tokens": "1.8.1"
|
|
37
37
|
},
|
|
38
38
|
"scripts": {
|
|
39
39
|
"build": "rollup -c",
|
|
@@ -10,18 +10,20 @@ import {
|
|
|
10
10
|
} from '@mui/material';
|
|
11
11
|
|
|
12
12
|
import IconButton from '@/components/IconButton';
|
|
13
|
-
import {
|
|
13
|
+
import { DrawerProps } from '@/components/Modal/modal.interface';
|
|
14
14
|
|
|
15
15
|
const Drawer = ({
|
|
16
16
|
title,
|
|
17
17
|
open,
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
hideCloseButton,
|
|
19
|
+
titleLeftComponent,
|
|
20
20
|
footer,
|
|
21
21
|
cardProps,
|
|
22
22
|
size = 'small',
|
|
23
|
+
children,
|
|
24
|
+
onClose,
|
|
23
25
|
...props
|
|
24
|
-
}:
|
|
26
|
+
}: DrawerProps) => {
|
|
25
27
|
return (
|
|
26
28
|
<DrawerMUI
|
|
27
29
|
anchor="right"
|
|
@@ -55,19 +57,24 @@ const Drawer = ({
|
|
|
55
57
|
>
|
|
56
58
|
<CardHeader
|
|
57
59
|
action={
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
60
|
+
!hideCloseButton ? (
|
|
61
|
+
<IconButton
|
|
62
|
+
aria-label="close"
|
|
63
|
+
data-testid="close-button"
|
|
64
|
+
onClick={() => onClose?.()}
|
|
65
|
+
variant="table"
|
|
66
|
+
size="medium"
|
|
67
|
+
icon={faClose}
|
|
68
|
+
/>
|
|
69
|
+
) : null
|
|
66
70
|
}
|
|
67
71
|
title={
|
|
68
72
|
title ? (
|
|
69
73
|
<Box display="flex">
|
|
70
|
-
<Box mt="2px">
|
|
74
|
+
<Box mt="2px">
|
|
75
|
+
{titleLeftComponent}
|
|
76
|
+
{title}
|
|
77
|
+
</Box>
|
|
71
78
|
</Box>
|
|
72
79
|
) : (
|
|
73
80
|
''
|
|
@@ -76,7 +83,7 @@ const Drawer = ({
|
|
|
76
83
|
subheader=""
|
|
77
84
|
/>
|
|
78
85
|
<CardContent>
|
|
79
|
-
<Box pb={footer ? '94px !important' : 0}>{
|
|
86
|
+
<Box pb={footer ? '94px !important' : 0}>{children}</Box>
|
|
80
87
|
</CardContent>
|
|
81
88
|
{footer}
|
|
82
89
|
</Card>
|
|
@@ -17,13 +17,16 @@ export interface ModalProps
|
|
|
17
17
|
open: boolean;
|
|
18
18
|
title?: string;
|
|
19
19
|
size?: 'small' | 'large';
|
|
20
|
-
component: ReactNode | null;
|
|
21
20
|
footer?: ReactNode | null;
|
|
22
21
|
cardProps?: Partial<CardProps>;
|
|
23
22
|
className?: string;
|
|
24
23
|
icon?: IconDefinition;
|
|
25
24
|
onClose?: () => void;
|
|
26
25
|
}
|
|
26
|
+
export interface DrawerProps extends Omit<ModalProps, 'icon'> {
|
|
27
|
+
titleLeftComponent?: ReactNode;
|
|
28
|
+
hideCloseButton?: boolean;
|
|
29
|
+
}
|
|
27
30
|
|
|
28
31
|
export type DialogTitleProps<T extends OverridableTypeMap> =
|
|
29
32
|
DefaultComponentProps<T> & {
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import React, { useMemo } from 'react';
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
styled,
|
|
5
|
+
ToggleButton,
|
|
6
|
+
ToggleButtonGroup as ToggleButtonGroupMUI,
|
|
7
|
+
ToggleButtonGroupProps,
|
|
8
|
+
useTheme,
|
|
9
|
+
} from '@mui/material';
|
|
10
|
+
import { ToggleButtonGroupStyle } from '@groupeactual/design-tokens';
|
|
11
|
+
|
|
12
|
+
interface Props extends ToggleButtonGroupProps {
|
|
13
|
+
selectedValue: string | string[];
|
|
14
|
+
options: { value: string; label: string }[];
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const ToggleButtonGroup = ({
|
|
18
|
+
selectedValue,
|
|
19
|
+
options = [],
|
|
20
|
+
...props
|
|
21
|
+
}: Props) => {
|
|
22
|
+
const theme = useTheme();
|
|
23
|
+
const StyledToggleButtonGroup = useMemo(
|
|
24
|
+
() => styled(ToggleButtonGroupMUI)(ToggleButtonGroupStyle(theme)),
|
|
25
|
+
[theme],
|
|
26
|
+
);
|
|
27
|
+
return <StyledToggleButtonGroup orientation='horizontal' exclusive={props.exclusive} disabled={props.disabled} value={selectedValue}>
|
|
28
|
+
{options.map(option => <ToggleButton value={option.value}>{option.label}</ToggleButton>)}
|
|
29
|
+
</StyledToggleButtonGroup>;
|
|
30
|
+
};
|
|
31
|
+
export default ToggleButtonGroup;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './ToggleButtonGroup';
|
package/src/components/index.ts
CHANGED
|
@@ -35,3 +35,4 @@ export { default as TimePicker } from './Form/TimePicker';
|
|
|
35
35
|
export { default as Datatable } from './Datatable/Datatable';
|
|
36
36
|
export { default as DatatableCellRender } from './Datatable/DatatableCellRender';
|
|
37
37
|
export { default as IconButton } from './IconButton/IconButton';
|
|
38
|
+
export { default as ToggleButtonGroup } from './ToggleButtonGroup/ToggleButtonGroup';
|