@snack-uikit/toaster 0.8.16 → 0.8.17-preview-bc9ca5dd.0

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 (124) hide show
  1. package/README.md +9 -3
  2. package/dist/cjs/components/ToastSystemEvent/styles.module.css +2 -3
  3. package/dist/cjs/components/ToastUpload/ToastUpload.d.ts +60 -0
  4. package/dist/cjs/components/ToastUpload/ToastUpload.js +122 -0
  5. package/dist/cjs/components/ToastUpload/ToastUploadToaster.d.ts +3 -0
  6. package/dist/cjs/components/ToastUpload/ToastUploadToaster.js +16 -0
  7. package/dist/cjs/components/ToastUpload/constants.d.ts +16 -0
  8. package/dist/cjs/components/ToastUpload/constants.js +26 -0
  9. package/dist/cjs/components/ToastUpload/helperComponents/ButtonIcon/ButtonIcon.d.ts +3 -0
  10. package/dist/cjs/components/ToastUpload/helperComponents/ButtonIcon/ButtonIcon.js +32 -0
  11. package/dist/cjs/components/ToastUpload/helperComponents/ButtonIcon/index.d.ts +1 -0
  12. package/dist/cjs/components/ToastUpload/helperComponents/ButtonIcon/index.js +25 -0
  13. package/dist/cjs/components/ToastUpload/helperComponents/ButtonIcon/styles.module.css +30 -0
  14. package/dist/cjs/components/ToastUpload/helperComponents/FileItem/FileItem.d.ts +5 -0
  15. package/dist/cjs/components/ToastUpload/helperComponents/FileItem/FileItem.js +85 -0
  16. package/dist/cjs/components/ToastUpload/helperComponents/FileItem/index.d.ts +1 -0
  17. package/dist/cjs/components/ToastUpload/helperComponents/FileItem/index.js +25 -0
  18. package/dist/cjs/components/ToastUpload/helperComponents/FileItem/styles.module.css +85 -0
  19. package/dist/cjs/components/ToastUpload/helperComponents/LoadingStatus/LoadingStatus.d.ts +6 -0
  20. package/dist/cjs/components/ToastUpload/helperComponents/LoadingStatus/LoadingStatus.js +42 -0
  21. package/dist/cjs/components/ToastUpload/helperComponents/LoadingStatus/index.d.ts +1 -0
  22. package/dist/cjs/components/ToastUpload/helperComponents/LoadingStatus/index.js +25 -0
  23. package/dist/cjs/components/ToastUpload/helperComponents/LoadingStatus/styles.module.css +3 -0
  24. package/dist/cjs/components/ToastUpload/index.d.ts +1 -0
  25. package/dist/cjs/components/ToastUpload/index.js +25 -0
  26. package/dist/cjs/components/ToastUpload/styles.module.css +110 -0
  27. package/dist/cjs/components/ToastUpload/types.d.ts +59 -0
  28. package/dist/cjs/components/ToastUpload/types.js +5 -0
  29. package/dist/cjs/components/ToastUpload/utils/formatPercent.d.ts +1 -0
  30. package/dist/cjs/components/ToastUpload/utils/formatPercent.js +8 -0
  31. package/dist/cjs/components/ToastUpload/utils/index.d.ts +1 -0
  32. package/dist/cjs/components/ToastUpload/utils/index.js +25 -0
  33. package/dist/cjs/components/ToasterContainer/styles.module.css +9 -9
  34. package/dist/cjs/components/index.d.ts +1 -0
  35. package/dist/cjs/components/index.js +2 -1
  36. package/dist/cjs/constants.d.ts +10 -5
  37. package/dist/cjs/constants.js +77 -4
  38. package/dist/cjs/helperComponents/ButtonAction/styles.module.css +2 -2
  39. package/dist/cjs/helperComponents/ButtonTextNeutral/ButtonTextNeutral.d.ts +7 -0
  40. package/dist/cjs/helperComponents/ButtonTextNeutral/ButtonTextNeutral.js +28 -0
  41. package/dist/cjs/helperComponents/ButtonTextNeutral/index.d.ts +1 -0
  42. package/dist/cjs/helperComponents/ButtonTextNeutral/index.js +25 -0
  43. package/dist/cjs/helperComponents/ButtonTextNeutral/styles.module.css +32 -0
  44. package/dist/cjs/helpers.js +43 -1
  45. package/dist/cjs/index.d.ts +2 -2
  46. package/dist/cjs/testIds.d.ts +14 -0
  47. package/dist/cjs/testIds.js +16 -1
  48. package/dist/cjs/types.d.ts +9 -1
  49. package/dist/esm/components/ToastSystemEvent/styles.module.css +2 -3
  50. package/dist/esm/components/ToastUpload/ToastUpload.d.ts +60 -0
  51. package/dist/esm/components/ToastUpload/ToastUpload.js +36 -0
  52. package/dist/esm/components/ToastUpload/ToastUploadToaster.d.ts +3 -0
  53. package/dist/esm/components/ToastUpload/ToastUploadToaster.js +7 -0
  54. package/dist/esm/components/ToastUpload/constants.d.ts +16 -0
  55. package/dist/esm/components/ToastUpload/constants.js +20 -0
  56. package/dist/esm/components/ToastUpload/helperComponents/ButtonIcon/ButtonIcon.d.ts +3 -0
  57. package/dist/esm/components/ToastUpload/helperComponents/ButtonIcon/ButtonIcon.js +18 -0
  58. package/dist/esm/components/ToastUpload/helperComponents/ButtonIcon/index.d.ts +1 -0
  59. package/dist/esm/components/ToastUpload/helperComponents/ButtonIcon/index.js +1 -0
  60. package/dist/esm/components/ToastUpload/helperComponents/ButtonIcon/styles.module.css +30 -0
  61. package/dist/esm/components/ToastUpload/helperComponents/FileItem/FileItem.d.ts +5 -0
  62. package/dist/esm/components/ToastUpload/helperComponents/FileItem/FileItem.js +23 -0
  63. package/dist/esm/components/ToastUpload/helperComponents/FileItem/index.d.ts +1 -0
  64. package/dist/esm/components/ToastUpload/helperComponents/FileItem/index.js +1 -0
  65. package/dist/esm/components/ToastUpload/helperComponents/FileItem/styles.module.css +85 -0
  66. package/dist/esm/components/ToastUpload/helperComponents/LoadingStatus/LoadingStatus.d.ts +6 -0
  67. package/dist/esm/components/ToastUpload/helperComponents/LoadingStatus/LoadingStatus.js +16 -0
  68. package/dist/esm/components/ToastUpload/helperComponents/LoadingStatus/index.d.ts +1 -0
  69. package/dist/esm/components/ToastUpload/helperComponents/LoadingStatus/index.js +1 -0
  70. package/dist/esm/components/ToastUpload/helperComponents/LoadingStatus/styles.module.css +3 -0
  71. package/dist/esm/components/ToastUpload/index.d.ts +1 -0
  72. package/dist/esm/components/ToastUpload/index.js +1 -0
  73. package/dist/esm/components/ToastUpload/styles.module.css +110 -0
  74. package/dist/esm/components/ToastUpload/types.d.ts +59 -0
  75. package/dist/esm/components/ToastUpload/types.js +1 -0
  76. package/dist/esm/components/ToastUpload/utils/formatPercent.d.ts +1 -0
  77. package/dist/esm/components/ToastUpload/utils/formatPercent.js +1 -0
  78. package/dist/esm/components/ToastUpload/utils/index.d.ts +1 -0
  79. package/dist/esm/components/ToastUpload/utils/index.js +1 -0
  80. package/dist/esm/components/ToasterContainer/styles.module.css +9 -9
  81. package/dist/esm/components/index.d.ts +1 -0
  82. package/dist/esm/components/index.js +1 -0
  83. package/dist/esm/constants.d.ts +10 -5
  84. package/dist/esm/constants.js +76 -0
  85. package/dist/esm/helperComponents/ButtonAction/styles.module.css +2 -2
  86. package/dist/esm/helperComponents/ButtonTextNeutral/ButtonTextNeutral.d.ts +7 -0
  87. package/dist/esm/helperComponents/ButtonTextNeutral/ButtonTextNeutral.js +5 -0
  88. package/dist/esm/helperComponents/ButtonTextNeutral/index.d.ts +1 -0
  89. package/dist/esm/helperComponents/ButtonTextNeutral/index.js +1 -0
  90. package/dist/esm/helperComponents/ButtonTextNeutral/styles.module.css +32 -0
  91. package/dist/esm/helpers.js +38 -0
  92. package/dist/esm/index.d.ts +2 -2
  93. package/dist/esm/testIds.d.ts +14 -0
  94. package/dist/esm/testIds.js +15 -0
  95. package/dist/esm/types.d.ts +9 -1
  96. package/package.json +6 -5
  97. package/src/components/ToastSystemEvent/styles.module.scss +2 -2
  98. package/src/components/ToastUpload/ToastUpload.tsx +169 -0
  99. package/src/components/ToastUpload/ToastUploadToaster.tsx +11 -0
  100. package/src/components/ToastUpload/constants.ts +26 -0
  101. package/src/components/ToastUpload/helperComponents/ButtonIcon/ButtonIcon.tsx +10 -0
  102. package/src/components/ToastUpload/helperComponents/ButtonIcon/index.ts +1 -0
  103. package/src/components/ToastUpload/helperComponents/ButtonIcon/styles.module.scss +45 -0
  104. package/src/components/ToastUpload/helperComponents/FileItem/FileItem.tsx +76 -0
  105. package/src/components/ToastUpload/helperComponents/FileItem/index.ts +1 -0
  106. package/src/components/ToastUpload/helperComponents/FileItem/styles.module.scss +93 -0
  107. package/src/components/ToastUpload/helperComponents/LoadingStatus/LoadingStatus.tsx +38 -0
  108. package/src/components/ToastUpload/helperComponents/LoadingStatus/index.ts +1 -0
  109. package/src/components/ToastUpload/helperComponents/LoadingStatus/styles.module.scss +8 -0
  110. package/src/components/ToastUpload/index.ts +1 -0
  111. package/src/components/ToastUpload/styles.module.scss +123 -0
  112. package/src/components/ToastUpload/types.ts +67 -0
  113. package/src/components/ToastUpload/utils/formatPercent.ts +1 -0
  114. package/src/components/ToastUpload/utils/index.ts +1 -0
  115. package/src/components/ToasterContainer/styles.module.scss +1 -1
  116. package/src/components/index.ts +1 -0
  117. package/src/constants.ts +91 -2
  118. package/src/helperComponents/ButtonTextNeutral/ButtonTextNeutral.tsx +23 -0
  119. package/src/helperComponents/ButtonTextNeutral/index.ts +1 -0
  120. package/src/helperComponents/ButtonTextNeutral/styles.module.scss +42 -0
  121. package/src/helpers.tsx +35 -0
  122. package/src/index.ts +7 -1
  123. package/src/testIds.ts +17 -0
  124. package/src/types.ts +7 -1
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ var __createBinding = void 0 && (void 0).__createBinding || (Object.create ? function (o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = {
8
+ enumerable: true,
9
+ get: function () {
10
+ return m[k];
11
+ }
12
+ };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ } : function (o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ });
19
+ var __exportStar = void 0 && (void 0).__exportStar || function (m, exports) {
20
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
21
+ };
22
+ Object.defineProperty(exports, "__esModule", {
23
+ value: true
24
+ });
25
+ __exportStar(require("./LoadingStatus"), exports);
@@ -0,0 +1,3 @@
1
+ .successIcon{
2
+ color:var(--sys-green-accent-default, #57b762);
3
+ }
@@ -0,0 +1 @@
1
+ export * from './ToastUpload';
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ var __createBinding = void 0 && (void 0).__createBinding || (Object.create ? function (o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = {
8
+ enumerable: true,
9
+ get: function () {
10
+ return m[k];
11
+ }
12
+ };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ } : function (o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ });
19
+ var __exportStar = void 0 && (void 0).__exportStar || function (m, exports) {
20
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
21
+ };
22
+ Object.defineProperty(exports, "__esModule", {
23
+ value: true
24
+ });
25
+ __exportStar(require("./ToastUpload"), exports);
@@ -0,0 +1,110 @@
1
+ .container{
2
+ padding:var(--space-toaster-toast-system-event-container-padding, 16px);
3
+ border-radius:var(--radius-toaster-toast-system-event-container, 16px);
4
+ gap:var(--space-toaster-toast-system-event-container-gap, 16px);
5
+ cursor:default;
6
+ position:relative;
7
+ overflow:hidden;
8
+ display:flex;
9
+ flex-direction:column;
10
+ box-sizing:border-box;
11
+ width:calc(var(--size-toaster-toast-system-event-container, 320px) - 2 * var(--space-toaster-toast-system-event-container-padding, 16px));
12
+ max-width:100%;
13
+ max-height:386px;
14
+ padding:var(--space-toaster-toast-system-event-container-padding, 16px) 0;
15
+ background-color:var(--sys-invert-neutral-background, #30303c);
16
+ }
17
+ .container[data-collapsed=false]{
18
+ gap:0;
19
+ }
20
+
21
+ .titleLine{
22
+ display:flex;
23
+ flex-direction:column;
24
+ padding:0 var(--space-toaster-toast-system-event-container-padding, 16px);
25
+ }
26
+
27
+ .titleLineBody{
28
+ gap:var(--space-toaster-toast-upload-body-gap, 16px);
29
+ display:flex;
30
+ align-items:center;
31
+ }
32
+
33
+ .title{
34
+ font-family:var(--sans-title-s-font-family, SB Sans Interface);
35
+ font-weight:var(--sans-title-s-font-weight, Semibold);
36
+ line-height:var(--sans-title-s-line-height, 20px);
37
+ font-size:var(--sans-title-s-font-size, 14px);
38
+ letter-spacing:var(--sans-title-s-letter-spacing, 0.15px);
39
+ paragraph-spacing:var(--sans-title-s-paragraph-spacing, 7.7px);
40
+ flex-grow:1;
41
+ color:var(--sys-invert-neutral-text-main, #e6e8ef);
42
+ }
43
+
44
+ .generalProgress{
45
+ gap:var(--space-toaster-toast-upload-general-progress-gap, 4px);
46
+ display:flex;
47
+ flex-direction:column;
48
+ align-self:stretch;
49
+ }
50
+
51
+ .statusLine{
52
+ gap:var(--space-toaster-toast-upload-status-line-gap, 8px);
53
+ display:flex;
54
+ align-items:center;
55
+ }
56
+
57
+ .statusWrap{
58
+ gap:var(--space-toaster-toast-upload-status-wrap-gap, 4px);
59
+ display:flex;
60
+ flex-grow:1;
61
+ align-items:center;
62
+ }
63
+
64
+ .description{
65
+ font-family:var(--sans-body-m-font-family, SB Sans Interface);
66
+ font-weight:var(--sans-body-m-font-weight, Regular);
67
+ line-height:var(--sans-body-m-line-height, 20px);
68
+ font-size:var(--sans-body-m-font-size, 14px);
69
+ letter-spacing:var(--sans-body-m-letter-spacing, 0.1px);
70
+ paragraph-spacing:var(--sans-body-m-paragraph-spacing, 7.7px);
71
+ color:var(--sys-invert-neutral-text-main, #e6e8ef);
72
+ }
73
+ .description[data-status=loading]{
74
+ color:var(--sys-invert-neutral-text-light, #8b8e9b);
75
+ }
76
+ .description[data-status=uploaded]{
77
+ color:var(--sys-invert-neutral-text-light, #8b8e9b);
78
+ }
79
+
80
+ .totalCounter{
81
+ font-family:var(--sans-body-m-font-family, SB Sans Interface);
82
+ font-weight:var(--sans-body-m-font-weight, Regular);
83
+ line-height:var(--sans-body-m-line-height, 20px);
84
+ font-size:var(--sans-body-m-font-size, 14px);
85
+ letter-spacing:var(--sans-body-m-letter-spacing, 0.1px);
86
+ paragraph-spacing:var(--sans-body-m-paragraph-spacing, 7.7px);
87
+ color:var(--sys-invert-neutral-text-support, #bec2cf);
88
+ }
89
+
90
+ .totalPercentage{
91
+ font-family:var(--sans-body-m-font-family, SB Sans Interface);
92
+ font-weight:var(--sans-body-m-font-weight, Regular);
93
+ line-height:var(--sans-body-m-line-height, 20px);
94
+ font-size:var(--sans-body-m-font-size, 14px);
95
+ letter-spacing:var(--sans-body-m-letter-spacing, 0.1px);
96
+ paragraph-spacing:var(--sans-body-m-paragraph-spacing, 7.7px);
97
+ color:var(--sys-invert-neutral-text-support, #bec2cf);
98
+ }
99
+
100
+ .list{
101
+ overflow:scroll;
102
+ display:flex;
103
+ flex-direction:column;
104
+ max-height:280px;
105
+ padding:0 var(--space-toaster-toast-system-event-container-padding, 16px);
106
+ transition:all 0.1s;
107
+ }
108
+ .list[data-collapsed=false]{
109
+ max-height:0;
110
+ }
@@ -0,0 +1,59 @@
1
+ import { MouseEvent } from 'react';
2
+ import { ProgressBarProps } from '@snack-uikit/progress-bar';
3
+ import { ValueOf } from '@snack-uikit/utils';
4
+ import { TOAST_UPLOAD_ITEM_STATUS, TOAST_UPLOAD_STATUS } from './constants';
5
+ export type ToastUploadStatus = ValueOf<typeof TOAST_UPLOAD_STATUS>;
6
+ export type ToastUploadItemStatus = ValueOf<typeof TOAST_UPLOAD_ITEM_STATUS>;
7
+ export type ToastUploadStateSubscription<T> = (subscription: (newValue: T) => void) => () => void;
8
+ export type WithStateSubscription<T> = {
9
+ /**Позволяет подписываться на изменения процесса загрузки файла внутри конпонента,
10
+ * тем самым обновляет элементы не зависимо от всего списка
11
+ * (можно использовать для улучшения производительности из-за частых обновлений)
12
+ */
13
+ subscribeToState?: ToastUploadStateSubscription<Partial<T>>;
14
+ } & T;
15
+ export type ToastUploadItemLink = {
16
+ text: string;
17
+ href: string;
18
+ onClick?(e: MouseEvent<HTMLAnchorElement>): void;
19
+ };
20
+ export type UploadActions = {
21
+ onCancel?: () => void;
22
+ onPause?: () => void;
23
+ onRetry?: () => void;
24
+ onContinue?: () => void;
25
+ };
26
+ export type UploadItem = WithStateSubscription<{
27
+ /**
28
+ * Уникальный id элемента
29
+ */
30
+ id: string;
31
+ /**
32
+ * Название элемента
33
+ */
34
+ title: string;
35
+ /**
36
+ * Статус загрузки
37
+ */
38
+ status: ToastUploadItemStatus;
39
+ /**
40
+ * Описание статуса загрузки
41
+ */
42
+ statusLabel: string;
43
+ /**
44
+ * Процент прогресса
45
+ */
46
+ progress: ProgressBarProps['progress'];
47
+ /**
48
+ * Размер файла
49
+ */
50
+ size: string;
51
+ /**
52
+ * Экшены для управления загрузкой
53
+ */
54
+ actions: UploadActions;
55
+ /**
56
+ * Ссылка на файл
57
+ */
58
+ link?: ToastUploadItemLink;
59
+ }>;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1 @@
1
+ export declare const formatPercent: (value: number) => string;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.formatPercent = void 0;
7
+ const formatPercent = value => `${value}%`;
8
+ exports.formatPercent = formatPercent;
@@ -0,0 +1 @@
1
+ export * from './formatPercent';
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ var __createBinding = void 0 && (void 0).__createBinding || (Object.create ? function (o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = {
8
+ enumerable: true,
9
+ get: function () {
10
+ return m[k];
11
+ }
12
+ };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ } : function (o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ });
19
+ var __exportStar = void 0 && (void 0).__exportStar || function (m, exports) {
20
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
21
+ };
22
+ Object.defineProperty(exports, "__esModule", {
23
+ value: true
24
+ });
25
+ __exportStar(require("./formatPercent"), exports);
@@ -1,6 +1,6 @@
1
1
  .buttonCloseColumnWrapper{
2
- gap:var(--space-toaster-system-event-gap, 8px);
3
- padding:var(--space-toaster-system-event-padding, 8px);
2
+ gap:var(--space-toaster-toast-system-event-gap, 8px);
3
+ padding:var(--space-toaster-toast-system-event-padding, 8px);
4
4
  width:var(--size-toaster-toast-system-event-container, 320px);
5
5
  position:fixed;
6
6
  box-sizing:border-box;
@@ -56,7 +56,7 @@
56
56
  }
57
57
 
58
58
  .containerWithCloseAllButton{
59
- margin-bottom:calc(var(--size-toaster-button-close-column, 40px) + var(--space-toaster-system-event-gap, 8px));
59
+ margin-bottom:calc(var(--size-toaster-button-close-column, 40px) + var(--space-toaster-toast-system-event-gap, 8px));
60
60
  }
61
61
 
62
62
  @media only screen and (max-width: 480px){
@@ -95,8 +95,8 @@
95
95
  max-width:100%;
96
96
  }
97
97
  :global .osThemeSnack.Toastify__toast-container .container-user-action{
98
- padding-bottom:var(--space-toaster-user-action-padding-bottom, 8px);
99
- gap:var(--space-toaster-user-action-gap, 8px);
98
+ padding-bottom:var(--space-toaster-toast-user-action-padding-bottom, 8px);
99
+ gap:var(--space-toaster-toast-user-action-gap, 8px);
100
100
  display:flex;
101
101
  flex-direction:column;
102
102
  align-items:center;
@@ -138,16 +138,16 @@
138
138
  animation-name:osSnackTheme__toast__bounceOutDown;
139
139
  }
140
140
  :global .osThemeSnack.Toastify__toast-container.osThemeSnack__toast-container__system-event{
141
- gap:var(--space-toaster-system-event-gap, 8px);
142
- padding:var(--space-toaster-system-event-padding, 8px);
141
+ gap:var(--space-toaster-toast-system-event-gap, 8px);
142
+ padding:var(--space-toaster-toast-system-event-padding, 8px);
143
143
  width:var(--size-toaster-toast-system-event-container, 320px);
144
144
  display:flex;
145
145
  flex-direction:column;
146
146
  max-width:calc(100vw - 2 * var(--space-toaster-toast-system-event-container-padding, 16px));
147
147
  }
148
148
  :global .osThemeSnack.Toastify__toast-container.osThemeSnack__toast-container__user-action{
149
- padding-bottom:var(--space-toaster-user-action-padding-bottom, 8px);
150
- gap:var(--space-toaster-user-action-gap, 8px);
149
+ padding-bottom:var(--space-toaster-toast-user-action-padding-bottom, 8px);
150
+ gap:var(--space-toaster-toast-user-action-gap, 8px);
151
151
  display:flex;
152
152
  flex-direction:column;
153
153
  align-items:center;
@@ -1,3 +1,4 @@
1
1
  export * from './ToastSystemEvent';
2
2
  export * from './ToastUserAction';
3
3
  export * from './ToasterContainer';
4
+ export * from './ToastUpload';
@@ -24,4 +24,5 @@ Object.defineProperty(exports, "__esModule", {
24
24
  });
25
25
  __exportStar(require("./ToastSystemEvent"), exports);
26
26
  __exportStar(require("./ToastUserAction"), exports);
27
- __exportStar(require("./ToasterContainer"), exports);
27
+ __exportStar(require("./ToasterContainer"), exports);
28
+ __exportStar(require("./ToastUpload"), exports);
@@ -1,13 +1,18 @@
1
- import { ToasterContainerProps } from './components';
1
+ import { ToasterContainerProps, ToastUploadProps } from './components';
2
+ import { UploadItem } from './components/ToastUpload/types';
2
3
  import { ToasterType } from './types';
3
4
  export declare const TOASTER_TYPE: {
4
5
  readonly SystemEvent: "system-event";
5
6
  readonly UserAction: "user-action";
7
+ readonly Upload: "upload";
6
8
  };
7
9
  export declare const TOASTER_CONTAINER_DEFAULT_PROPS: Record<ToasterType, ToasterContainerProps>;
8
- export declare const AUTO_CLOSE_TIME: {
9
- "system-event": number;
10
- "user-action": number;
11
- };
10
+ export declare const AUTO_CLOSE_TIME: Record<ToasterType, number | false>;
12
11
  export declare const TOASTER_ROOT_ID = "toaster-root";
13
12
  export declare const TOASTER_CONTAINER_PREFIX = "toaster-container__";
13
+ export declare const MOCK_TOAST_LOADING_ITEM: UploadItem;
14
+ export declare const MOCK_TOAST_PAUSED_ITEM: UploadItem;
15
+ export declare const MOCK_TOAST_ERROR_ITEM: UploadItem;
16
+ export declare const MOCK_TOAST_UPLOADED_ITEM: UploadItem;
17
+ export declare const MOCK_TOAST_PROPS: Partial<ToastUploadProps>;
18
+ export declare const MOCK_UPLOAD_ITEMS_LIST: UploadItem[];
@@ -3,10 +3,11 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.TOASTER_CONTAINER_PREFIX = exports.TOASTER_ROOT_ID = exports.AUTO_CLOSE_TIME = exports.TOASTER_CONTAINER_DEFAULT_PROPS = exports.TOASTER_TYPE = void 0;
6
+ exports.MOCK_UPLOAD_ITEMS_LIST = exports.MOCK_TOAST_PROPS = exports.MOCK_TOAST_UPLOADED_ITEM = exports.MOCK_TOAST_ERROR_ITEM = exports.MOCK_TOAST_PAUSED_ITEM = exports.MOCK_TOAST_LOADING_ITEM = exports.TOASTER_CONTAINER_PREFIX = exports.TOASTER_ROOT_ID = exports.AUTO_CLOSE_TIME = exports.TOASTER_CONTAINER_DEFAULT_PROPS = exports.TOASTER_TYPE = void 0;
7
7
  exports.TOASTER_TYPE = {
8
8
  SystemEvent: 'system-event',
9
- UserAction: 'user-action'
9
+ UserAction: 'user-action',
10
+ Upload: 'upload'
10
11
  };
11
12
  exports.TOASTER_CONTAINER_DEFAULT_PROPS = {
12
13
  [exports.TOASTER_TYPE.SystemEvent]: {
@@ -20,11 +21,83 @@ exports.TOASTER_CONTAINER_DEFAULT_PROPS = {
20
21
  position: 'bottom-center',
21
22
  displayCloseAllButton: false,
22
23
  type: exports.TOASTER_TYPE.UserAction
24
+ },
25
+ [exports.TOASTER_TYPE.Upload]: {
26
+ limit: 5,
27
+ position: 'bottom-right',
28
+ displayCloseAllButton: true,
29
+ type: exports.TOASTER_TYPE.SystemEvent
23
30
  }
24
31
  };
25
32
  exports.AUTO_CLOSE_TIME = {
26
33
  [exports.TOASTER_TYPE.SystemEvent]: 5000,
27
- [exports.TOASTER_TYPE.UserAction]: 2000
34
+ [exports.TOASTER_TYPE.UserAction]: 2000,
35
+ [exports.TOASTER_TYPE.Upload]: false
28
36
  };
29
37
  exports.TOASTER_ROOT_ID = 'toaster-root';
30
- exports.TOASTER_CONTAINER_PREFIX = 'toaster-container__';
38
+ exports.TOASTER_CONTAINER_PREFIX = 'toaster-container__';
39
+ exports.MOCK_TOAST_LOADING_ITEM = {
40
+ id: '1',
41
+ progress: 10,
42
+ size: '45 MB',
43
+ title: 'file name.extensions',
44
+ status: 'loading',
45
+ statusLabel: 'Loading...',
46
+ actions: {}
47
+ };
48
+ exports.MOCK_TOAST_PAUSED_ITEM = {
49
+ id: '2',
50
+ progress: 20,
51
+ size: '45 MB',
52
+ title: 'file name.extensions',
53
+ status: 'pause',
54
+ statusLabel: 'Paused',
55
+ actions: {}
56
+ };
57
+ exports.MOCK_TOAST_ERROR_ITEM = {
58
+ id: '3',
59
+ progress: 20,
60
+ size: '45 MB',
61
+ title: 'file name.extensions',
62
+ status: 'error',
63
+ statusLabel: 'Error',
64
+ actions: {}
65
+ };
66
+ exports.MOCK_TOAST_UPLOADED_ITEM = {
67
+ id: '4',
68
+ progress: 100,
69
+ size: '45 MB',
70
+ title: 'file name.extensions',
71
+ status: 'uploaded',
72
+ statusLabel: 'Uploaded',
73
+ actions: {},
74
+ link: {
75
+ href: '#',
76
+ text: 'Show'
77
+ }
78
+ };
79
+ exports.MOCK_TOAST_PROPS = {
80
+ title: 'Loading...',
81
+ description: '3 minutes left',
82
+ status: 'loading',
83
+ closable: true,
84
+ collapsed: true,
85
+ totalProgressCounter: '10/15',
86
+ totalProgressPercentage: 30,
87
+ cancelButton: {
88
+ label: 'Cancel all',
89
+ onClick: () => {}
90
+ },
91
+ generalActions: {
92
+ onCancel: () => {},
93
+ onContinue: () => {},
94
+ onPause: () => {},
95
+ onRetry: () => {}
96
+ },
97
+ onCollapsed: () => {}
98
+ };
99
+ exports.MOCK_UPLOAD_ITEMS_LIST = [exports.MOCK_TOAST_LOADING_ITEM, exports.MOCK_TOAST_PAUSED_ITEM, exports.MOCK_TOAST_ERROR_ITEM, exports.MOCK_TOAST_UPLOADED_ITEM, Object.assign(Object.assign({}, exports.MOCK_TOAST_UPLOADED_ITEM), {
100
+ id: '5'
101
+ }), Object.assign(Object.assign({}, exports.MOCK_TOAST_UPLOADED_ITEM), {
102
+ id: '6'
103
+ })];
@@ -1,8 +1,8 @@
1
1
  .buttonAction{
2
2
  border-radius:var(--radius-toaster-toast-system-event-button, 8px);
3
3
  height:var(--size-toaster-toast-system-event-button, 32px);
4
- padding-left:var(--space-toaster-system-event-padding, 8px);
5
- padding-right:var(--space-toaster-system-event-padding, 8px);
4
+ padding-left:var(--space-toaster-toast-system-event-padding, 8px);
5
+ padding-right:var(--space-toaster-toast-system-event-padding, 8px);
6
6
  font-family:var(--sans-body-m-font-family, SB Sans Interface);
7
7
  font-weight:var(--sans-body-m-font-weight, Regular);
8
8
  line-height:var(--sans-body-m-line-height, 20px);
@@ -0,0 +1,7 @@
1
+ import { MouseEvent } from 'react';
2
+ export type ButtonTextNeutralProps = {
3
+ label: string;
4
+ onClick(e: MouseEvent<HTMLButtonElement>): void;
5
+ critical?: boolean;
6
+ };
7
+ export declare function ButtonTextNeutral({ label, onClick, critical }: ButtonTextNeutralProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ var __importDefault = void 0 && (void 0).__importDefault || function (mod) {
4
+ return mod && mod.__esModule ? mod : {
5
+ "default": mod
6
+ };
7
+ };
8
+ Object.defineProperty(exports, "__esModule", {
9
+ value: true
10
+ });
11
+ exports.ButtonTextNeutral = ButtonTextNeutral;
12
+ const jsx_runtime_1 = require("react/jsx-runtime");
13
+ const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
14
+ function ButtonTextNeutral(_ref) {
15
+ let {
16
+ label,
17
+ onClick,
18
+ critical
19
+ } = _ref;
20
+ return (0, jsx_runtime_1.jsx)("button", {
21
+ type: 'button',
22
+ className: styles_module_scss_1.default.buttonTextNeutral,
23
+ onClick: onClick,
24
+ "aria-label": 'action',
25
+ "data-critical": critical || undefined,
26
+ children: label
27
+ });
28
+ }
@@ -0,0 +1 @@
1
+ export * from './ButtonTextNeutral';
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ var __createBinding = void 0 && (void 0).__createBinding || (Object.create ? function (o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = {
8
+ enumerable: true,
9
+ get: function () {
10
+ return m[k];
11
+ }
12
+ };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ } : function (o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ });
19
+ var __exportStar = void 0 && (void 0).__exportStar || function (m, exports) {
20
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
21
+ };
22
+ Object.defineProperty(exports, "__esModule", {
23
+ value: true
24
+ });
25
+ __exportStar(require("./ButtonTextNeutral"), exports);
@@ -0,0 +1,32 @@
1
+ .buttonTextNeutral{
2
+ font-family:var(--sans-body-m-font-family, SB Sans Interface);
3
+ font-weight:var(--sans-body-m-font-weight, Regular);
4
+ line-height:var(--sans-body-m-line-height, 20px);
5
+ font-size:var(--sans-body-m-font-size, 14px);
6
+ letter-spacing:var(--sans-body-m-letter-spacing, 0.1px);
7
+ paragraph-spacing:var(--sans-body-m-paragraph-spacing, 7.7px);
8
+ cursor:pointer;
9
+ display:flex;
10
+ align-items:center;
11
+ justify-content:center;
12
+ box-sizing:border-box;
13
+ margin:0;
14
+ padding:0;
15
+ color:var(--sys-invert-neutral-text-light, #8b8e9b);
16
+ background-color:transparent;
17
+ border:none;
18
+ }
19
+ .buttonTextNeutral:hover{
20
+ color:var(--sys-invert-neutral-text-main, #e6e8ef);
21
+ }
22
+ .buttonTextNeutral:focus, .buttonTextNeutral:active{
23
+ color:var(--sys-invert-neutral-accent-pressed, #aaaebd);
24
+ }
25
+ .buttonTextNeutral:focus-visible{
26
+ outline-width:var(--border-state-focus-s-border-width, 2px);
27
+ outline-style:var(--border-state-focus-s-border-style, solid);
28
+ outline-color:var(--border-state-focus-s-border-color, );
29
+ color:var(--sys-invert-neutral-text-main, #e6e8ef);
30
+ outline-color:var(--sys-available-on-complementary, #ffffff);
31
+ outline-offset:var(--spacing-state-focus-offset, 2px);
32
+ }
@@ -1,5 +1,13 @@
1
1
  "use strict";
2
2
 
3
+ var __rest = void 0 && (void 0).__rest || function (s, e) {
4
+ var t = {};
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
8
+ }
9
+ return t;
10
+ };
3
11
  Object.defineProperty(exports, "__esModule", {
4
12
  value: true
5
13
  });
@@ -10,6 +18,7 @@ const react_dom_1 = require("react-dom");
10
18
  const react_toastify_1 = require("react-toastify");
11
19
  const utils_1 = require("@snack-uikit/utils");
12
20
  const components_1 = require("./components");
21
+ const ToastUploadToaster_1 = require("./components/ToastUpload/ToastUploadToaster");
13
22
  const constants_1 = require("./constants");
14
23
  function getToasterContainer(_ref) {
15
24
  let {
@@ -60,6 +69,8 @@ function getToastComponent(_ref3) {
60
69
  return (0, jsx_runtime_1.jsx)(components_1.ToastUserAction, Object.assign({}, toasterProps));
61
70
  case constants_1.TOASTER_TYPE.SystemEvent:
62
71
  return (0, jsx_runtime_1.jsx)(components_1.ToastSystemEvent, Object.assign({}, toasterProps));
72
+ case constants_1.TOASTER_TYPE.Upload:
73
+ return (0, jsx_runtime_1.jsx)(ToastUploadToaster_1.ToastUploadForToaster, Object.assign({}, toasterProps));
63
74
  default:
64
75
  return undefined;
65
76
  }
@@ -318,7 +329,38 @@ const systemEvent = {
318
329
  return react_toastify_1.toast.dismiss(id);
319
330
  }
320
331
  };
332
+ const upload = {
333
+ startOrUpdate(_a) {
334
+ var {
335
+ id
336
+ } = _a,
337
+ options = __rest(_a, ["id"]);
338
+ const toastId = id || constants_1.TOASTER_TYPE.Upload;
339
+ if (react_toastify_1.toast.isActive(toastId)) {
340
+ return (0, exports.updateToast)(toastId, {
341
+ type: constants_1.TOASTER_TYPE.Upload,
342
+ toasterProps: Object.assign(Object.assign({}, options), {
343
+ loading: true
344
+ })
345
+ });
346
+ }
347
+ return (0, exports.openToast)({
348
+ type: constants_1.TOASTER_TYPE.Upload,
349
+ toasterProps: Object.assign(Object.assign({}, options), {
350
+ loading: true
351
+ }),
352
+ toastOptions: {
353
+ id: toastId,
354
+ onClose: options.onClose
355
+ }
356
+ });
357
+ },
358
+ dismiss(id) {
359
+ return react_toastify_1.toast.dismiss(id);
360
+ }
361
+ };
321
362
  exports.toaster = {
322
363
  userAction,
323
- systemEvent
364
+ systemEvent,
365
+ upload
324
366
  };
@@ -1,4 +1,4 @@
1
1
  export { toaster, openToast, updateToast, dismissToast } from './helpers';
2
- export type { ToastSystemEventProps, ToastUserActionProps, ToasterContainerProps } from './components';
3
- export type { Toaster, UpdateToast, OpenToast, UserActionOptions, SystemEventOptions, ToasterId, ToastOptions, } from './types';
2
+ export type { ToastSystemEventProps, ToastUserActionProps, ToasterContainerProps, ToastUploadProps, } from './components';
3
+ export type { Toaster, UpdateToast, OpenToast, UserActionOptions, SystemEventOptions, ToasterId, ToastOptions, UploadOptions, } from './types';
4
4
  export { TOASTER_TYPE } from './constants';