@moderneinc/neo-styled-components 4.0.0-next.b8926c → 4.0.0-next.d94dc4
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/Button/Button.d.ts +2 -4
- package/dist/Checkbox/Checkbox.d.ts +1 -1
- package/dist/CheckboxWithText/CheckboxWithText.d.ts +26 -0
- package/dist/DatePickerListItem/DatePickerListItem.d.ts +26 -0
- package/dist/DatePickerMenu/DatePickerMenu.d.ts +26 -0
- package/dist/Dot/Dot.d.ts +1 -1
- package/dist/RadioButtonWithText/RadioButtonWithText.d.ts +26 -0
- package/dist/ToggleButton/ToggleButton.d.ts +26 -0
- package/dist/ToggleButtonWithText/ToggleButtonWithText.d.ts +26 -0
- package/dist/TourModal/TourModal.d.ts +26 -0
- package/dist/index.d.ts +4 -6
- package/dist/index.esm.js +4 -48
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +4 -48
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/Button/Button.d.ts
CHANGED
|
@@ -5,12 +5,10 @@ declare module '@mui/material/ButtonBase' {
|
|
|
5
5
|
primary: true;
|
|
6
6
|
secondary: true;
|
|
7
7
|
destructive: true;
|
|
8
|
-
link: true;
|
|
9
|
-
linkColor: true;
|
|
10
8
|
tertiary: true;
|
|
11
9
|
}
|
|
12
10
|
}
|
|
13
|
-
type ButtonVariant = 'primary' | 'secondary' | 'destructive' | '
|
|
11
|
+
type ButtonVariant = 'primary' | 'secondary' | 'destructive' | 'tertiary';
|
|
14
12
|
type ButtonSize = 'small' | 'medium';
|
|
15
13
|
type NeoButtonOwnProps = {
|
|
16
14
|
/**
|
|
@@ -60,7 +58,7 @@ export type NeoButtonProps<C extends ElementType = typeof ButtonBase> = NeoButto
|
|
|
60
58
|
* @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4086-7590
|
|
61
59
|
*
|
|
62
60
|
* Figma Props Mapping:
|
|
63
|
-
* - Hierarchy (Primary|Secondary|Destructive|
|
|
61
|
+
* - Hierarchy (Primary|Secondary|Destructive|Tertiary) → variant prop
|
|
64
62
|
* - Size (Small|Medium) → size prop
|
|
65
63
|
* - State=Disabled → disabled prop
|
|
66
64
|
* - State=Loading → loading prop
|
|
@@ -48,7 +48,7 @@ export interface NeoCheckboxProps extends Omit<CheckboxProps, 'size'> {
|
|
|
48
48
|
* Figma Props Mapping:
|
|
49
49
|
* - Checked (True|False) → checked prop
|
|
50
50
|
* - Indeterminate (True|False) → indeterminate prop
|
|
51
|
-
* - Size (
|
|
51
|
+
* - Size (Extra Small|Small|Medium) → size prop (xs|small|medium)
|
|
52
52
|
* - State=Default → default state
|
|
53
53
|
* - State=Hover → CSS :hover
|
|
54
54
|
* - State=Focused → CSS :focus-visible
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Props for the NeoCheckboxWithText component
|
|
4
|
+
*/
|
|
5
|
+
export interface NeoCheckboxWithTextProps {
|
|
6
|
+
/**
|
|
7
|
+
* The content to display inside the component
|
|
8
|
+
*/
|
|
9
|
+
children?: ReactNode;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* NeoCheckboxWithText - TODO: Add component description
|
|
13
|
+
*
|
|
14
|
+
* @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC?node-id=12125-162
|
|
15
|
+
*
|
|
16
|
+
* Figma Props Mapping:
|
|
17
|
+
* - TODO: Document Figma property mappings
|
|
18
|
+
* - FigmaProp → reactProp
|
|
19
|
+
*
|
|
20
|
+
* Design Tokens Used:
|
|
21
|
+
* - TODO: List design tokens used (e.g., semanticColors.text.primary, typography.body.medium)
|
|
22
|
+
*/
|
|
23
|
+
export declare const NeoCheckboxWithText: {
|
|
24
|
+
({ children, ...props }: NeoCheckboxWithTextProps): import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
displayName: string;
|
|
26
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Props for the NeoDatePickerListItem component
|
|
4
|
+
*/
|
|
5
|
+
export interface NeoDatePickerListItemProps {
|
|
6
|
+
/**
|
|
7
|
+
* The content to display inside the component
|
|
8
|
+
*/
|
|
9
|
+
children?: ReactNode;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* NeoDatePickerListItem - TODO: Add component description
|
|
13
|
+
*
|
|
14
|
+
* @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC?node-id=4176-8521
|
|
15
|
+
*
|
|
16
|
+
* Figma Props Mapping:
|
|
17
|
+
* - TODO: Document Figma property mappings
|
|
18
|
+
* - FigmaProp → reactProp
|
|
19
|
+
*
|
|
20
|
+
* Design Tokens Used:
|
|
21
|
+
* - TODO: List design tokens used (e.g., semanticColors.text.primary, typography.body.medium)
|
|
22
|
+
*/
|
|
23
|
+
export declare const NeoDatePickerListItem: {
|
|
24
|
+
({ children, ...props }: NeoDatePickerListItemProps): import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
displayName: string;
|
|
26
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Props for the NeoDatePickerMenu component
|
|
4
|
+
*/
|
|
5
|
+
export interface NeoDatePickerMenuProps {
|
|
6
|
+
/**
|
|
7
|
+
* The content to display inside the component
|
|
8
|
+
*/
|
|
9
|
+
children?: ReactNode;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* NeoDatePickerMenu - TODO: Add component description
|
|
13
|
+
*
|
|
14
|
+
* @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC?node-id=4176-8593
|
|
15
|
+
*
|
|
16
|
+
* Figma Props Mapping:
|
|
17
|
+
* - TODO: Document Figma property mappings
|
|
18
|
+
* - FigmaProp → reactProp
|
|
19
|
+
*
|
|
20
|
+
* Design Tokens Used:
|
|
21
|
+
* - TODO: List design tokens used (e.g., semanticColors.text.primary, typography.body.medium)
|
|
22
|
+
*/
|
|
23
|
+
export declare const NeoDatePickerMenu: {
|
|
24
|
+
({ children, ...props }: NeoDatePickerMenuProps): import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
displayName: string;
|
|
26
|
+
};
|
package/dist/Dot/Dot.d.ts
CHANGED
|
@@ -25,7 +25,7 @@ export interface NeoDotProps extends Omit<BadgeProps, 'variant' | 'color' | 'bad
|
|
|
25
25
|
* @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4163-3577
|
|
26
26
|
*
|
|
27
27
|
* Figma Props Mapping:
|
|
28
|
-
* -
|
|
28
|
+
* - Size (Small|Medium|Large) → size prop (small|medium|large)
|
|
29
29
|
* - outline (False|True) → variant prop (solid|outline)
|
|
30
30
|
* - Color is configurable via color prop (success|error|warning|info|neutral)
|
|
31
31
|
*/
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Props for the NeoRadioButtonWithText component
|
|
4
|
+
*/
|
|
5
|
+
export interface NeoRadioButtonWithTextProps {
|
|
6
|
+
/**
|
|
7
|
+
* The content to display inside the component
|
|
8
|
+
*/
|
|
9
|
+
children?: ReactNode;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* NeoRadioButtonWithText - TODO: Add component description
|
|
13
|
+
*
|
|
14
|
+
* @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC?node-id=11565-7682
|
|
15
|
+
*
|
|
16
|
+
* Figma Props Mapping:
|
|
17
|
+
* - TODO: Document Figma property mappings
|
|
18
|
+
* - FigmaProp → reactProp
|
|
19
|
+
*
|
|
20
|
+
* Design Tokens Used:
|
|
21
|
+
* - TODO: List design tokens used (e.g., semanticColors.text.primary, typography.body.medium)
|
|
22
|
+
*/
|
|
23
|
+
export declare const NeoRadioButtonWithText: {
|
|
24
|
+
({ children, ...props }: NeoRadioButtonWithTextProps): import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
displayName: string;
|
|
26
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Props for the NeoToggleButton component
|
|
4
|
+
*/
|
|
5
|
+
export interface NeoToggleButtonProps {
|
|
6
|
+
/**
|
|
7
|
+
* The content to display inside the component
|
|
8
|
+
*/
|
|
9
|
+
children?: ReactNode;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* NeoToggleButton - TODO: Add component description
|
|
13
|
+
*
|
|
14
|
+
* @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC?node-id=4163-5777
|
|
15
|
+
*
|
|
16
|
+
* Figma Props Mapping:
|
|
17
|
+
* - TODO: Document Figma property mappings
|
|
18
|
+
* - FigmaProp → reactProp
|
|
19
|
+
*
|
|
20
|
+
* Design Tokens Used:
|
|
21
|
+
* - TODO: List design tokens used (e.g., semanticColors.text.primary, typography.body.medium)
|
|
22
|
+
*/
|
|
23
|
+
export declare const NeoToggleButton: {
|
|
24
|
+
({ children, ...props }: NeoToggleButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
displayName: string;
|
|
26
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Props for the NeoToggleButtonWithText component
|
|
4
|
+
*/
|
|
5
|
+
export interface NeoToggleButtonWithTextProps {
|
|
6
|
+
/**
|
|
7
|
+
* The content to display inside the component
|
|
8
|
+
*/
|
|
9
|
+
children?: ReactNode;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* NeoToggleButtonWithText - TODO: Add component description
|
|
13
|
+
*
|
|
14
|
+
* @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC?node-id=11565-10485
|
|
15
|
+
*
|
|
16
|
+
* Figma Props Mapping:
|
|
17
|
+
* - TODO: Document Figma property mappings
|
|
18
|
+
* - FigmaProp → reactProp
|
|
19
|
+
*
|
|
20
|
+
* Design Tokens Used:
|
|
21
|
+
* - TODO: List design tokens used (e.g., semanticColors.text.primary, typography.body.medium)
|
|
22
|
+
*/
|
|
23
|
+
export declare const NeoToggleButtonWithText: {
|
|
24
|
+
({ children, ...props }: NeoToggleButtonWithTextProps): import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
displayName: string;
|
|
26
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Props for the NeoTourModal component
|
|
4
|
+
*/
|
|
5
|
+
export interface NeoTourModalProps {
|
|
6
|
+
/**
|
|
7
|
+
* The content to display inside the component
|
|
8
|
+
*/
|
|
9
|
+
children?: ReactNode;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* NeoTourModal - TODO: Add component description
|
|
13
|
+
*
|
|
14
|
+
* @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC?node-id=12408-1800
|
|
15
|
+
*
|
|
16
|
+
* Figma Props Mapping:
|
|
17
|
+
* - TODO: Document Figma property mappings
|
|
18
|
+
* - FigmaProp → reactProp
|
|
19
|
+
*
|
|
20
|
+
* Design Tokens Used:
|
|
21
|
+
* - TODO: List design tokens used (e.g., semanticColors.text.primary, typography.body.medium)
|
|
22
|
+
*/
|
|
23
|
+
export declare const NeoTourModal: {
|
|
24
|
+
({ children, ...props }: NeoTourModalProps): import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
displayName: string;
|
|
26
|
+
};
|
package/dist/index.d.ts
CHANGED
|
@@ -491,12 +491,10 @@ declare module '@mui/material/ButtonBase' {
|
|
|
491
491
|
primary: true;
|
|
492
492
|
secondary: true;
|
|
493
493
|
destructive: true;
|
|
494
|
-
link: true;
|
|
495
|
-
linkColor: true;
|
|
496
494
|
tertiary: true;
|
|
497
495
|
}
|
|
498
496
|
}
|
|
499
|
-
type ButtonVariant = 'primary' | 'secondary' | 'destructive' | '
|
|
497
|
+
type ButtonVariant = 'primary' | 'secondary' | 'destructive' | 'tertiary';
|
|
500
498
|
type ButtonSize = 'small' | 'medium';
|
|
501
499
|
type NeoButtonOwnProps = {
|
|
502
500
|
/**
|
|
@@ -546,7 +544,7 @@ type NeoButtonProps<C extends ElementType = typeof ButtonBase__default> = NeoBut
|
|
|
546
544
|
* @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4086-7590
|
|
547
545
|
*
|
|
548
546
|
* Figma Props Mapping:
|
|
549
|
-
* - Hierarchy (Primary|Secondary|Destructive|
|
|
547
|
+
* - Hierarchy (Primary|Secondary|Destructive|Tertiary) → variant prop
|
|
550
548
|
* - Size (Small|Medium) → size prop
|
|
551
549
|
* - State=Disabled → disabled prop
|
|
552
550
|
* - State=Loading → loading prop
|
|
@@ -723,7 +721,7 @@ interface NeoCheckboxProps extends Omit<CheckboxProps, 'size'> {
|
|
|
723
721
|
* Figma Props Mapping:
|
|
724
722
|
* - Checked (True|False) → checked prop
|
|
725
723
|
* - Indeterminate (True|False) → indeterminate prop
|
|
726
|
-
* - Size (
|
|
724
|
+
* - Size (Extra Small|Small|Medium) → size prop (xs|small|medium)
|
|
727
725
|
* - State=Default → default state
|
|
728
726
|
* - State=Hover → CSS :hover
|
|
729
727
|
* - State=Focused → CSS :focus-visible
|
|
@@ -1312,7 +1310,7 @@ interface NeoDotProps extends Omit<BadgeProps, 'variant' | 'color' | 'badgeConte
|
|
|
1312
1310
|
* @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4163-3577
|
|
1313
1311
|
*
|
|
1314
1312
|
* Figma Props Mapping:
|
|
1315
|
-
* -
|
|
1313
|
+
* - Size (Small|Medium|Large) → size prop (small|medium|large)
|
|
1316
1314
|
* - outline (False|True) → variant prop (solid|outline)
|
|
1317
1315
|
* - Color is configurable via color prop (success|error|warning|info|neutral)
|
|
1318
1316
|
*/
|
package/dist/index.esm.js
CHANGED
|
@@ -1350,48 +1350,6 @@ const StyledButtonBase$1 = styled(ButtonBase, {
|
|
|
1350
1350
|
},
|
|
1351
1351
|
}),
|
|
1352
1352
|
},
|
|
1353
|
-
link: {
|
|
1354
|
-
backgroundColor: 'transparent',
|
|
1355
|
-
color: semanticColors.buttons.tertiary.default,
|
|
1356
|
-
border: 'none',
|
|
1357
|
-
padding: `0 ${theme.spacing(1)}`,
|
|
1358
|
-
'&:hover': {
|
|
1359
|
-
backgroundColor: 'transparent',
|
|
1360
|
-
color: semanticColors.buttons.tertiary.hover,
|
|
1361
|
-
},
|
|
1362
|
-
'&:active': {
|
|
1363
|
-
color: semanticColors.buttons.tertiary.pressed,
|
|
1364
|
-
},
|
|
1365
|
-
...(loading
|
|
1366
|
-
? {}
|
|
1367
|
-
: {
|
|
1368
|
-
[`&.${buttonBaseClasses.disabled}`]: {
|
|
1369
|
-
backgroundColor: 'transparent',
|
|
1370
|
-
color: semanticColors.buttons.tertiary.disabled,
|
|
1371
|
-
},
|
|
1372
|
-
}),
|
|
1373
|
-
},
|
|
1374
|
-
linkColor: {
|
|
1375
|
-
backgroundColor: 'transparent',
|
|
1376
|
-
color: semanticColors.buttons.primary.default,
|
|
1377
|
-
border: 'none',
|
|
1378
|
-
padding: `0 ${theme.spacing(1)}`,
|
|
1379
|
-
'&:hover': {
|
|
1380
|
-
backgroundColor: 'transparent',
|
|
1381
|
-
color: semanticColors.buttons.primary.hover,
|
|
1382
|
-
},
|
|
1383
|
-
'&:active': {
|
|
1384
|
-
color: semanticColors.buttons.primary.pressed,
|
|
1385
|
-
},
|
|
1386
|
-
...(loading
|
|
1387
|
-
? {}
|
|
1388
|
-
: {
|
|
1389
|
-
[`&.${buttonBaseClasses.disabled}`]: {
|
|
1390
|
-
backgroundColor: 'transparent',
|
|
1391
|
-
color: semanticColors.buttons.tertiary.disabled,
|
|
1392
|
-
},
|
|
1393
|
-
}),
|
|
1394
|
-
},
|
|
1395
1353
|
tertiary: {
|
|
1396
1354
|
backgroundColor: 'transparent',
|
|
1397
1355
|
color: semanticColors.typography.input.default,
|
|
@@ -1426,8 +1384,6 @@ const LoadingSpinner = styled(CircularProgress)(({ theme, $variant }) => {
|
|
|
1426
1384
|
primary: theme.palette.common.white,
|
|
1427
1385
|
secondary: semanticColors.buttons.primary.default,
|
|
1428
1386
|
destructive: theme.palette.common.white,
|
|
1429
|
-
link: semanticColors.buttons.primary.default,
|
|
1430
|
-
linkColor: semanticColors.buttons.primary.default,
|
|
1431
1387
|
tertiary: semanticColors.buttons.tertiary.default,
|
|
1432
1388
|
};
|
|
1433
1389
|
return {
|
|
@@ -1440,7 +1396,7 @@ const LoadingSpinner = styled(CircularProgress)(({ theme, $variant }) => {
|
|
|
1440
1396
|
* @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4086-7590
|
|
1441
1397
|
*
|
|
1442
1398
|
* Figma Props Mapping:
|
|
1443
|
-
* - Hierarchy (Primary|Secondary|Destructive|
|
|
1399
|
+
* - Hierarchy (Primary|Secondary|Destructive|Tertiary) → variant prop
|
|
1444
1400
|
* - Size (Small|Medium) → size prop
|
|
1445
1401
|
* - State=Disabled → disabled prop
|
|
1446
1402
|
* - State=Loading → loading prop
|
|
@@ -1939,7 +1895,7 @@ const StyledCheckbox = styled(Checkbox, {
|
|
|
1939
1895
|
* Figma Props Mapping:
|
|
1940
1896
|
* - Checked (True|False) → checked prop
|
|
1941
1897
|
* - Indeterminate (True|False) → indeterminate prop
|
|
1942
|
-
* - Size (
|
|
1898
|
+
* - Size (Extra Small|Small|Medium) → size prop (xs|small|medium)
|
|
1943
1899
|
* - State=Default → default state
|
|
1944
1900
|
* - State=Hover → CSS :hover
|
|
1945
1901
|
* - State=Focused → CSS :focus-visible
|
|
@@ -3894,7 +3850,7 @@ const StyledBadge = styled(Badge)(({ ownerState }) => {
|
|
|
3894
3850
|
* @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4163-3577
|
|
3895
3851
|
*
|
|
3896
3852
|
* Figma Props Mapping:
|
|
3897
|
-
* -
|
|
3853
|
+
* - Size (Small|Medium|Large) → size prop (small|medium|large)
|
|
3898
3854
|
* - outline (False|True) → variant prop (solid|outline)
|
|
3899
3855
|
* - Color is configurable via color prop (success|error|warning|info|neutral)
|
|
3900
3856
|
*/
|
|
@@ -6285,7 +6241,7 @@ const ToastButton = styled(Button, {
|
|
|
6285
6241
|
const NeoToast = ({ intent = 'neutral', type = 'outlined', title, message, showClose = false, actions, onClose, ...props }) => {
|
|
6286
6242
|
const palette = intentColors[intent];
|
|
6287
6243
|
const closeIconColor = type === 'filled' ? semanticColors.surfaces.white : palette.default;
|
|
6288
|
-
return (jsxs(StyledAlert, { ...props, intent: intent, toastType: type, action: showClose ? (jsx(IconButton, { size: "small", onClick: onClose, sx: { color: closeIconColor }, children: jsx(X, { size: 16 }) })) : undefined, children: [jsxs(Stack, { sx: { gap: `${spacing.spacing_1}px`, width: '100%' }, children: [title && jsx(ToastTitle, { intent: intent, toastType: type, children: title }), message && jsx(ToastMessage, { intent: intent, toastType: type, children: message })] }), actions && jsx(ToastActions, { direction: "row", children: actions })] }));
|
|
6244
|
+
return (jsxs(StyledAlert, { ...props, intent: intent, toastType: type, action: showClose ? (jsx(IconButton, { size: "small", onClick: onClose, sx: { color: closeIconColor }, children: jsx(X, { size: 16 }) })) : undefined, children: [jsxs(Stack, { sx: { gap: `${spacing.spacing_1}px`, width: '100%' }, children: [title && (jsx(ToastTitle, { intent: intent, toastType: type, children: title })), message && (jsx(ToastMessage, { intent: intent, toastType: type, children: message }))] }), actions && jsx(ToastActions, { direction: "row", children: actions })] }));
|
|
6289
6245
|
};
|
|
6290
6246
|
/**
|
|
6291
6247
|
* Helper component for creating toast action buttons with proper styling
|