@devtron-labs/devtron-fe-common-lib 0.2.31 → 0.2.32-beta-3

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 (30) hide show
  1. package/dist/Common/ToastBody.d.ts +1 -1
  2. package/dist/Shared/Components/Button/Button.component.d.ts +6 -1
  3. package/dist/Shared/Components/Button/constants.d.ts +3 -2
  4. package/dist/Shared/Components/Button/types.d.ts +29 -12
  5. package/dist/Shared/Components/Button/utils.d.ts +3 -1
  6. package/dist/Shared/Services/ToastManager/ToastContent.d.ts +2 -0
  7. package/dist/Shared/Services/ToastManager/constants.d.ts +4 -0
  8. package/dist/Shared/Services/ToastManager/index.d.ts +3 -0
  9. package/dist/Shared/Services/ToastManager/toastManager.service.d.ts +69 -0
  10. package/dist/Shared/Services/ToastManager/types.d.ts +40 -0
  11. package/dist/Shared/Services/index.d.ts +1 -0
  12. package/dist/assets/index.css +1 -1
  13. package/dist/{cssMode-gAMETjhs.js → cssMode-BDqNi6lm.js} +1 -1
  14. package/dist/{freemarker2-1LUPRZvK.js → freemarker2-tTwRSppX.js} +1 -1
  15. package/dist/{handlebars-FFlW7wcF.js → handlebars-B2CytkFQ.js} +1 -1
  16. package/dist/{html-Bje_q8_h.js → html-DBtgrWcG.js} +1 -1
  17. package/dist/{htmlMode--Ajs2w0s.js → htmlMode-VPsuXDcK.js} +1 -1
  18. package/dist/{index-H6WWnur7.js → index-BUxslq5r.js} +26252 -26596
  19. package/dist/index.js +256 -253
  20. package/dist/{javascript-DWqTbQ2W.js → javascript-CRkRGSUl.js} +1 -1
  21. package/dist/{jsonMode-hm7gyx36.js → jsonMode-Bsr7Lcu2.js} +1 -1
  22. package/dist/{liquid-BgJmUwJB.js → liquid-BVU9XG_W.js} +1 -1
  23. package/dist/{mdx-B8aQgpZ8.js → mdx-BMh0CQUQ.js} +1 -1
  24. package/dist/{python-1rHBUaWD.js → python-f_ZZiKCg.js} +1 -1
  25. package/dist/{razor-DKD66wkm.js → razor-DN5l4cdf.js} +1 -1
  26. package/dist/{tsMode-CzgxhWLn.js → tsMode-DPI7ls5f.js} +1 -1
  27. package/dist/{typescript-Bup97xWo.js → typescript-9LHwJcQl.js} +1 -1
  28. package/dist/{xml-Lw75qqS-.js → xml-BtnLJ73Z.js} +1 -1
  29. package/dist/{yaml-DXNYWuXp.js → yaml-C1JxmrMC.js} +1 -1
  30. package/package.json +2 -2
@@ -20,4 +20,4 @@ export declare class ToastBodyWithButton extends React.Component<{
20
20
  }> {
21
21
  render(): JSX.Element;
22
22
  }
23
- export declare const toastAccessDenied: (title?: string, subtitle?: string) => React.ReactText;
23
+ export declare const toastAccessDenied: (title?: string, subtitle?: string) => import('react-toastify').Id;
@@ -57,6 +57,11 @@ import { ButtonProps } from './types';
57
57
  * ```tsx
58
58
  * <Button component={ButtonComponentType.link} linkProps={{ to: '#' }} />
59
59
  * ```
60
+ *
61
+ * @example Icon button
62
+ * ```tsx
63
+ * <Button icon={<ICCube />} ariaLabel="Label" />
64
+ * ```
60
65
  */
61
- declare const Button: ({ dataTestId, text, variant, size, style, startIcon, endIcon, disabled, isLoading, showTooltip, tooltipProps, ...props }: ButtonProps) => JSX.Element;
66
+ declare const Button: ({ dataTestId, text, variant, size, style, startIcon, endIcon, disabled, isLoading, showTooltip, tooltipProps, icon, ariaLabel, ...props }: ButtonProps) => JSX.Element;
62
67
  export default Button;
@@ -1,5 +1,6 @@
1
1
  import { ProgressingProps } from '../../../Common/Types';
2
2
  import { ButtonProps } from './types';
3
3
  export declare const BUTTON_SIZE_TO_CLASS_NAME_MAP: Record<ButtonProps['size'], string>;
4
- export declare const BUTTON_SIZE_TO_ICON_CLASS_NAME_MAP: Record<ButtonProps['size'], string>;
5
- export declare const BUTTON_SIZE_TO_LOADER_SIZE_MAP: Record<ButtonProps['size'], ProgressingProps['size']>;
4
+ export declare const ICON_BUTTON_SIZE_TO_CLASS_NAME_MAP: Record<ButtonProps['size'], string>;
5
+ export declare const BUTTON_SIZE_TO_ICON_SIZE_MAP: Record<ButtonProps['size'], ProgressingProps['size']>;
6
+ export declare const ICON_BUTTON_SIZE_TO_ICON_SIZE_MAP: Record<ButtonProps['size'], ProgressingProps['size']>;
@@ -11,6 +11,7 @@ export declare enum ButtonVariantType {
11
11
  export declare enum ButtonStyleType {
12
12
  default = "default",
13
13
  negative = "negative",
14
+ negativeGrey = "negative-grey",
14
15
  positive = "positive",
15
16
  warning = "warning",
16
17
  neutral = "neutral"
@@ -59,18 +60,6 @@ export type ButtonProps = ({
59
60
  * @default ButtonStyleType.default
60
61
  */
61
62
  style?: ButtonStyleType;
62
- /**
63
- * Text to be displayed in the button
64
- */
65
- text: string;
66
- /**
67
- * If provided, icon to be displayed at the start of the button
68
- */
69
- startIcon?: ReactElement;
70
- /**
71
- * If provided, icon to be displayed at the end of the button
72
- */
73
- endIcon?: ReactElement;
74
63
  /**
75
64
  * If true, the loading state is shown for the button with disabled
76
65
  */
@@ -97,4 +86,32 @@ export type ButtonProps = ({
97
86
  } | {
98
87
  showTooltip?: never;
99
88
  tooltipProps?: never;
89
+ }) & ({
90
+ icon?: never;
91
+ ariaLabel?: never;
92
+ /**
93
+ * Text to be displayed in the button
94
+ */
95
+ text: string;
96
+ /**
97
+ * If provided, icon to be displayed at the start of the button
98
+ */
99
+ startIcon?: ReactElement;
100
+ /**
101
+ * If provided, icon to be displayed at the end of the button
102
+ */
103
+ endIcon?: ReactElement;
104
+ } | {
105
+ /**
106
+ * If provided, icon button is rendered
107
+ */
108
+ icon: ReactElement;
109
+ /**
110
+ * Label for the icon button for accessibility.
111
+ * Shown on hover in tooltip if tippy is not provided explicitly
112
+ */
113
+ ariaLabel: string;
114
+ text?: never;
115
+ startIcon?: never;
116
+ endIcon?: never;
100
117
  });
@@ -1,2 +1,4 @@
1
1
  import { ButtonProps } from './types';
2
- export declare const getButtonDerivedClass: ({ size, variant, style, isLoading, }: Pick<ButtonProps, "variant" | "size" | "style" | "isLoading">) => string;
2
+ export declare const getButtonIconClassName: ({ size, icon }: Pick<ButtonProps, "size" | "icon">) => string;
3
+ export declare const getButtonLoaderSize: ({ size, icon }: Pick<ButtonProps, "size" | "icon">) => number;
4
+ export declare const getButtonDerivedClass: ({ size, variant, style, isLoading, icon, }: Pick<ButtonProps, "variant" | "size" | "style" | "isLoading" | "icon">) => string;
@@ -0,0 +1,2 @@
1
+ import { ToastProps } from './types';
2
+ export declare const ToastContent: ({ title, description, buttonProps, }: Pick<ToastProps, "title" | "description" | "buttonProps">) => JSX.Element;
@@ -0,0 +1,4 @@
1
+ import { ToastOptions, ToastContainerProps } from 'react-toastify';
2
+ import { ToastProps, ToastVariantType } from './types';
3
+ export declare const TOAST_BASE_CONFIG: ToastContainerProps;
4
+ export declare const TOAST_VARIANT_TO_CONFIG_MAP: Record<ToastVariantType, Required<Pick<ToastProps, 'icon' | 'title' | 'progressBarBg'>> & Pick<ToastOptions, 'type'>>;
@@ -0,0 +1,3 @@
1
+ export { default as ToastManager, ToastManagerContainer } from './toastManager.service';
2
+ export { ToastVariantType } from './types';
3
+ export type { ToastProps } from './types';
@@ -0,0 +1,69 @@
1
+ import { ToastOptions } from 'react-toastify';
2
+ import { ToastProps } from './types';
3
+ /**
4
+ * Service for handling toast across the application
5
+ *
6
+ * Note: The application needs to have `ToastManagerContainer` at the root
7
+ * level for the toast to work
8
+ *
9
+ * @example Default Usage
10
+ * ```ts
11
+ * ToastManager.showToast({
12
+ * description: 'Lorem ipsum'
13
+ * })
14
+ * ```
15
+ *
16
+ * @example Custom Title
17
+ * ```ts
18
+ * ToastManager.showToast({
19
+ * description: 'Lorem ipsum',
20
+ * title: 'Toast title'
21
+ * })
22
+ * ```
23
+ *
24
+ * @example With Button
25
+ * ```ts
26
+ * ToastManager.showToast({
27
+ * description: 'Lorem ipsum',
28
+ * buttonProps: {
29
+ * dataTestId: 'toast-btn',
30
+ * text: 'Reload',
31
+ * startIcon: <ICArrowClockwise />
32
+ * }
33
+ * })
34
+ * ```
35
+ *
36
+ * @example Auto close disabled
37
+ * ```ts
38
+ * ToastManager.showToast({
39
+ * description: 'Lorem ipsum',
40
+ * toastOptions: {
41
+ * autoClose: false,
42
+ * },
43
+ * })
44
+ * ```
45
+ *
46
+ * @example Custom progress bar color
47
+ * ```ts
48
+ * ToastManager.showToast({
49
+ * description: 'Lorem ipsum',
50
+ * progressBarBg: 'var(--N700)',
51
+ * })
52
+ * ```
53
+ *
54
+ * @example Custom icon
55
+ * ```ts
56
+ * ToastManager.showToast({
57
+ * description: 'Lorem ipsum',
58
+ * icon: <ICCube />,
59
+ * })
60
+ * ```
61
+ */
62
+ declare class ToastManager {
63
+ #private;
64
+ static get instance(): ToastManager;
65
+ showToast: ({ variant, icon: customIcon, title, description, buttonProps, progressBarBg: customProgressBarBg, }: ToastProps, options?: Pick<ToastOptions, "autoClose">) => import('react-toastify').Id;
66
+ }
67
+ export declare const ToastManagerContainer: () => JSX.Element;
68
+ declare const _default: ToastManager;
69
+ export default _default;
@@ -0,0 +1,40 @@
1
+ import { ButtonProps } from '../../Components';
2
+ import { ReactElement } from 'react';
3
+ export declare enum ToastVariantType {
4
+ info = "info",
5
+ success = "success",
6
+ error = "error",
7
+ warn = "warn",
8
+ notAuthorized = "notAuthorized"
9
+ }
10
+ export interface ToastProps {
11
+ /**
12
+ * Title for the toast
13
+ * If not provided, defaults to a value based on the selected variant
14
+ */
15
+ title?: string;
16
+ /**
17
+ * Description for the toast
18
+ */
19
+ description: string;
20
+ /**
21
+ * Custom icon for the toast to override the icon based on variant
22
+ */
23
+ icon?: ReactElement;
24
+ /**
25
+ * Variant for the toast
26
+ *
27
+ * @default ToastVariantType.info
28
+ */
29
+ variant?: ToastVariantType;
30
+ /**
31
+ * Props for the action button to be displayed in the toast
32
+ *
33
+ * Note: Size, variant and style are hard-coded and cannot be overriden
34
+ */
35
+ buttonProps?: ButtonProps;
36
+ /**
37
+ * Custom progress bar color
38
+ */
39
+ progressBarBg?: string;
40
+ }
@@ -2,3 +2,4 @@ export * from './types';
2
2
  export * from './app.types';
3
3
  export * from './app.service';
4
4
  export * from './common.service';
5
+ export * from './ToastManager';