@snack-uikit/toaster 0.8.18 → 0.8.19-preview-9cd1b89a.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 (123) hide show
  1. package/README.md +74 -37
  2. package/dist/cjs/components/ToastSystemEvent/styles.module.css +2 -3
  3. package/dist/cjs/components/ToastUpload/ToastUpload.d.ts +59 -0
  4. package/dist/cjs/components/ToastUpload/ToastUpload.js +131 -0
  5. package/dist/cjs/components/ToastUpload/constants.d.ts +16 -0
  6. package/dist/cjs/components/ToastUpload/constants.js +26 -0
  7. package/dist/cjs/components/ToastUpload/helperComponents/ButtonIcon/ButtonIcon.d.ts +3 -0
  8. package/dist/cjs/components/ToastUpload/helperComponents/ButtonIcon/ButtonIcon.js +32 -0
  9. package/dist/cjs/components/ToastUpload/helperComponents/ButtonIcon/index.d.ts +1 -0
  10. package/dist/cjs/components/ToastUpload/helperComponents/ButtonIcon/index.js +25 -0
  11. package/dist/cjs/components/ToastUpload/helperComponents/ButtonIcon/styles.module.css +32 -0
  12. package/dist/cjs/components/ToastUpload/helperComponents/ButtonTextNeutral/ButtonTextNeutral.d.ts +7 -0
  13. package/dist/cjs/components/ToastUpload/helperComponents/ButtonTextNeutral/ButtonTextNeutral.js +28 -0
  14. package/dist/cjs/components/ToastUpload/helperComponents/ButtonTextNeutral/index.d.ts +1 -0
  15. package/dist/cjs/components/ToastUpload/helperComponents/ButtonTextNeutral/index.js +25 -0
  16. package/dist/cjs/components/ToastUpload/helperComponents/ButtonTextNeutral/styles.module.css +33 -0
  17. package/dist/cjs/components/ToastUpload/helperComponents/FileItem/FileItem.d.ts +5 -0
  18. package/dist/cjs/components/ToastUpload/helperComponents/FileItem/FileItem.js +89 -0
  19. package/dist/cjs/components/ToastUpload/helperComponents/FileItem/index.d.ts +1 -0
  20. package/dist/cjs/components/ToastUpload/helperComponents/FileItem/index.js +25 -0
  21. package/dist/cjs/components/ToastUpload/helperComponents/FileItem/styles.module.css +85 -0
  22. package/dist/cjs/components/ToastUpload/helperComponents/LoadingStatus/LoadingStatus.d.ts +6 -0
  23. package/dist/cjs/components/ToastUpload/helperComponents/LoadingStatus/LoadingStatus.js +42 -0
  24. package/dist/cjs/components/ToastUpload/helperComponents/LoadingStatus/index.d.ts +1 -0
  25. package/dist/cjs/components/ToastUpload/helperComponents/LoadingStatus/index.js +25 -0
  26. package/dist/cjs/components/ToastUpload/helperComponents/LoadingStatus/styles.module.css +3 -0
  27. package/dist/cjs/components/ToastUpload/index.d.ts +1 -0
  28. package/dist/cjs/components/ToastUpload/index.js +25 -0
  29. package/dist/cjs/components/ToastUpload/styles.module.css +110 -0
  30. package/dist/cjs/components/ToastUpload/types.d.ts +55 -0
  31. package/dist/cjs/components/ToastUpload/types.js +5 -0
  32. package/dist/cjs/components/ToastUpload/utils/formatPercent.d.ts +1 -0
  33. package/dist/cjs/components/ToastUpload/utils/formatPercent.js +8 -0
  34. package/dist/cjs/components/ToastUpload/utils/index.d.ts +1 -0
  35. package/dist/cjs/components/ToastUpload/utils/index.js +25 -0
  36. package/dist/cjs/components/ToasterContainer/styles.module.css +9 -9
  37. package/dist/cjs/components/index.d.ts +1 -0
  38. package/dist/cjs/components/index.js +2 -1
  39. package/dist/cjs/constants.d.ts +2 -4
  40. package/dist/cjs/constants.js +10 -2
  41. package/dist/cjs/helperComponents/ButtonAction/styles.module.css +2 -2
  42. package/dist/cjs/helpers.d.ts +4 -0
  43. package/dist/cjs/helpers.js +42 -1
  44. package/dist/cjs/index.d.ts +2 -2
  45. package/dist/cjs/index.js +20 -0
  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 +59 -0
  51. package/dist/esm/components/ToastUpload/ToastUpload.js +45 -0
  52. package/dist/esm/components/ToastUpload/constants.d.ts +16 -0
  53. package/dist/esm/components/ToastUpload/constants.js +20 -0
  54. package/dist/esm/components/ToastUpload/helperComponents/ButtonIcon/ButtonIcon.d.ts +3 -0
  55. package/dist/esm/components/ToastUpload/helperComponents/ButtonIcon/ButtonIcon.js +18 -0
  56. package/dist/esm/components/ToastUpload/helperComponents/ButtonIcon/index.d.ts +1 -0
  57. package/dist/esm/components/ToastUpload/helperComponents/ButtonIcon/index.js +1 -0
  58. package/dist/esm/components/ToastUpload/helperComponents/ButtonIcon/styles.module.css +32 -0
  59. package/dist/esm/components/ToastUpload/helperComponents/ButtonTextNeutral/ButtonTextNeutral.d.ts +7 -0
  60. package/dist/esm/components/ToastUpload/helperComponents/ButtonTextNeutral/ButtonTextNeutral.js +5 -0
  61. package/dist/esm/components/ToastUpload/helperComponents/ButtonTextNeutral/index.d.ts +1 -0
  62. package/dist/esm/components/ToastUpload/helperComponents/ButtonTextNeutral/index.js +1 -0
  63. package/dist/esm/components/ToastUpload/helperComponents/ButtonTextNeutral/styles.module.css +33 -0
  64. package/dist/esm/components/ToastUpload/helperComponents/FileItem/FileItem.d.ts +5 -0
  65. package/dist/esm/components/ToastUpload/helperComponents/FileItem/FileItem.js +26 -0
  66. package/dist/esm/components/ToastUpload/helperComponents/FileItem/index.d.ts +1 -0
  67. package/dist/esm/components/ToastUpload/helperComponents/FileItem/index.js +1 -0
  68. package/dist/esm/components/ToastUpload/helperComponents/FileItem/styles.module.css +85 -0
  69. package/dist/esm/components/ToastUpload/helperComponents/LoadingStatus/LoadingStatus.d.ts +6 -0
  70. package/dist/esm/components/ToastUpload/helperComponents/LoadingStatus/LoadingStatus.js +16 -0
  71. package/dist/esm/components/ToastUpload/helperComponents/LoadingStatus/index.d.ts +1 -0
  72. package/dist/esm/components/ToastUpload/helperComponents/LoadingStatus/index.js +1 -0
  73. package/dist/esm/components/ToastUpload/helperComponents/LoadingStatus/styles.module.css +3 -0
  74. package/dist/esm/components/ToastUpload/index.d.ts +1 -0
  75. package/dist/esm/components/ToastUpload/index.js +1 -0
  76. package/dist/esm/components/ToastUpload/styles.module.css +110 -0
  77. package/dist/esm/components/ToastUpload/types.d.ts +55 -0
  78. package/dist/esm/components/ToastUpload/types.js +1 -0
  79. package/dist/esm/components/ToastUpload/utils/formatPercent.d.ts +1 -0
  80. package/dist/esm/components/ToastUpload/utils/formatPercent.js +1 -0
  81. package/dist/esm/components/ToastUpload/utils/index.d.ts +1 -0
  82. package/dist/esm/components/ToastUpload/utils/index.js +1 -0
  83. package/dist/esm/components/ToasterContainer/styles.module.css +9 -9
  84. package/dist/esm/components/index.d.ts +1 -0
  85. package/dist/esm/components/index.js +1 -0
  86. package/dist/esm/constants.d.ts +2 -4
  87. package/dist/esm/constants.js +8 -0
  88. package/dist/esm/helperComponents/ButtonAction/styles.module.css +2 -2
  89. package/dist/esm/helpers.d.ts +4 -0
  90. package/dist/esm/helpers.js +42 -1
  91. package/dist/esm/index.d.ts +2 -2
  92. package/dist/esm/index.js +1 -0
  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 +10 -6
  97. package/src/components/ToastSystemEvent/styles.module.scss +2 -2
  98. package/src/components/ToastUpload/ToastUpload.tsx +182 -0
  99. package/src/components/ToastUpload/constants.ts +26 -0
  100. package/src/components/ToastUpload/helperComponents/ButtonIcon/ButtonIcon.tsx +10 -0
  101. package/src/components/ToastUpload/helperComponents/ButtonIcon/index.ts +1 -0
  102. package/src/components/ToastUpload/helperComponents/ButtonIcon/styles.module.scss +46 -0
  103. package/src/components/ToastUpload/helperComponents/ButtonTextNeutral/ButtonTextNeutral.tsx +23 -0
  104. package/src/components/ToastUpload/helperComponents/ButtonTextNeutral/index.ts +1 -0
  105. package/src/components/ToastUpload/helperComponents/ButtonTextNeutral/styles.module.scss +41 -0
  106. package/src/components/ToastUpload/helperComponents/FileItem/FileItem.tsx +85 -0
  107. package/src/components/ToastUpload/helperComponents/FileItem/index.ts +1 -0
  108. package/src/components/ToastUpload/helperComponents/FileItem/styles.module.scss +93 -0
  109. package/src/components/ToastUpload/helperComponents/LoadingStatus/LoadingStatus.tsx +38 -0
  110. package/src/components/ToastUpload/helperComponents/LoadingStatus/index.ts +1 -0
  111. package/src/components/ToastUpload/helperComponents/LoadingStatus/styles.module.scss +8 -0
  112. package/src/components/ToastUpload/index.ts +1 -0
  113. package/src/components/ToastUpload/styles.module.scss +123 -0
  114. package/src/components/ToastUpload/types.ts +62 -0
  115. package/src/components/ToastUpload/utils/formatPercent.ts +1 -0
  116. package/src/components/ToastUpload/utils/index.ts +1 -0
  117. package/src/components/ToasterContainer/styles.module.scss +1 -1
  118. package/src/components/index.ts +1 -0
  119. package/src/constants.ts +9 -1
  120. package/src/helpers.tsx +38 -0
  121. package/src/index.ts +2 -10
  122. package/src/testIds.ts +17 -0
  123. package/src/types.ts +7 -1
@@ -0,0 +1,89 @@
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.FileItem = FileItem;
12
+ const jsx_runtime_1 = require("react/jsx-runtime");
13
+ const react_1 = require("react");
14
+ const icons_1 = require("@snack-uikit/icons");
15
+ const link_1 = require("@snack-uikit/link");
16
+ const progress_bar_1 = require("@snack-uikit/progress-bar");
17
+ const truncate_string_1 = require("@snack-uikit/truncate-string");
18
+ const testIds_1 = require("../../../../testIds");
19
+ const constants_1 = require("../../constants");
20
+ const utils_1 = require("../../utils");
21
+ const ButtonIcon_1 = require("../ButtonIcon");
22
+ const LoadingStatus_1 = require("../LoadingStatus");
23
+ const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
24
+ function FileItem(_ref) {
25
+ let {
26
+ item: initItem
27
+ } = _ref;
28
+ var _a, _b, _c;
29
+ const [item, setItem] = (0, react_1.useState)(initItem);
30
+ const showLink = item.status === 'uploaded' && item.link;
31
+ const showCancelButton = !showLink;
32
+ (0, react_1.useEffect)(() => {
33
+ if (initItem.subscribeToState) {
34
+ return initItem.subscribeToState(newValue => setItem(prev => Object.assign(Object.assign({}, prev), newValue)));
35
+ }
36
+ return setItem(initItem);
37
+ }, [initItem]);
38
+ const isError = item.status === 'error';
39
+ return (0, jsx_runtime_1.jsxs)("div", {
40
+ className: styles_module_scss_1.default.fileLine,
41
+ "data-test-id": testIds_1.TOAST_UPLOAD_TEST_IDS.uploadItem,
42
+ children: [(0, jsx_runtime_1.jsxs)("div", {
43
+ className: styles_module_scss_1.default.fileHeadLine,
44
+ children: [(0, jsx_runtime_1.jsx)(truncate_string_1.TruncateString, {
45
+ text: item.title,
46
+ className: styles_module_scss_1.default.fileTitle,
47
+ maxLines: 1
48
+ }), showLink && (0, jsx_runtime_1.jsx)(link_1.Link, {
49
+ text: (_a = item.link) === null || _a === void 0 ? void 0 : _a.text,
50
+ href: (_b = item.link) === null || _b === void 0 ? void 0 : _b.href,
51
+ size: 's',
52
+ truncateVariant: 'end',
53
+ onClick: (_c = item.link) === null || _c === void 0 ? void 0 : _c.onClick,
54
+ appearance: 'invert-neutral',
55
+ textMode: 'accent',
56
+ "data-test-id": testIds_1.TOAST_UPLOAD_TEST_IDS.uploadItemLink
57
+ }), showCancelButton && (0, jsx_runtime_1.jsx)(ButtonIcon_1.ButtonIcon, {
58
+ onClick: item.actions.onCancel,
59
+ "data-test-id": testIds_1.TOAST_UPLOAD_TEST_IDS.uploadItemCancel,
60
+ children: (0, jsx_runtime_1.jsx)(icons_1.CrossSVG, {})
61
+ })]
62
+ }), (0, jsx_runtime_1.jsx)(progress_bar_1.ProgressBar, {
63
+ progress: isError ? 100 : item.progress,
64
+ size: 'xs',
65
+ appearance: constants_1.progressBarAppearanceByStatus[item.status]
66
+ }), (0, jsx_runtime_1.jsxs)("div", {
67
+ className: styles_module_scss_1.default.fileStatusLine,
68
+ children: [(0, jsx_runtime_1.jsxs)("div", {
69
+ className: styles_module_scss_1.default.fileStatusWrap,
70
+ children: [(0, jsx_runtime_1.jsx)(LoadingStatus_1.LoadingStatus, {
71
+ status: item.status,
72
+ actions: item.actions
73
+ }), (0, jsx_runtime_1.jsx)("span", {
74
+ className: styles_module_scss_1.default.fileStatusDescription,
75
+ "data-status": item.status,
76
+ children: item.statusLabel
77
+ })]
78
+ }), (0, jsx_runtime_1.jsx)("span", {
79
+ className: styles_module_scss_1.default.fileSize,
80
+ "data-status": item.status,
81
+ children: item.size
82
+ }), (0, jsx_runtime_1.jsx)("span", {
83
+ className: styles_module_scss_1.default.fileStatusPercentage,
84
+ "data-status": item.status,
85
+ children: (0, utils_1.formatPercent)(isError ? 0 : item.progress)
86
+ })]
87
+ })]
88
+ });
89
+ }
@@ -0,0 +1 @@
1
+ export * from './FileItem';
@@ -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("./FileItem"), exports);
@@ -0,0 +1,85 @@
1
+ .fileLine{
2
+ padding-top:var(--space-toaster-toast-upload-file-line-vertical-padding, 4px);
3
+ padding-bottom:var(--space-toaster-toast-upload-file-line-vertical-padding, 4px);
4
+ display:flex;
5
+ flex-direction:column;
6
+ }
7
+
8
+ .fileHeadLine{
9
+ gap:var(--space-toaster-toast-upload-headline-gap, 16px);
10
+ min-height:var(--size-toaster-toast-upload-file-line-headline-height, 24px);
11
+ display:flex;
12
+ align-items:center;
13
+ }
14
+
15
+ .fileTitle{
16
+ font-family:var(--sans-body-s-font-family, SB Sans Interface);
17
+ font-weight:var(--sans-body-s-font-weight, Regular);
18
+ line-height:var(--sans-body-s-line-height, 16px);
19
+ font-size:var(--sans-body-s-font-size, 12px);
20
+ letter-spacing:var(--sans-body-s-letter-spacing, 0.1px);
21
+ paragraph-spacing:var(--sans-body-s-paragraph-spacing, 6.6px);
22
+ flex-grow:1;
23
+ color:var(--sys-invert-neutral-text-main, #e6e8ef);
24
+ }
25
+
26
+ .fileStatusLine{
27
+ gap:var(--space-toaster-toast-upload-status-line-gap, 8px);
28
+ display:flex;
29
+ align-items:center;
30
+ }
31
+
32
+ .fileStatusWrap{
33
+ gap:var(--space-toaster-toast-upload-status-wrap-gap, 4px);
34
+ display:flex;
35
+ flex-grow:1;
36
+ align-items:center;
37
+ }
38
+
39
+ .fileStatusDescription{
40
+ font-family:var(--sans-body-s-font-family, SB Sans Interface);
41
+ font-weight:var(--sans-body-s-font-weight, Regular);
42
+ line-height:var(--sans-body-s-line-height, 16px);
43
+ font-size:var(--sans-body-s-font-size, 12px);
44
+ letter-spacing:var(--sans-body-s-letter-spacing, 0.1px);
45
+ paragraph-spacing:var(--sans-body-s-paragraph-spacing, 6.6px);
46
+ color:var(--sys-invert-neutral-text-main, #e6e8ef);
47
+ }
48
+ .fileStatusDescription[data-status=loading]{
49
+ color:var(--sys-invert-neutral-text-disabled, #656774);
50
+ }
51
+ .fileStatusDescription[data-status=uploaded]{
52
+ color:var(--sys-invert-neutral-text-disabled, #656774);
53
+ }
54
+
55
+ .fileSize{
56
+ font-family:var(--sans-body-s-font-family, SB Sans Interface);
57
+ font-weight:var(--sans-body-s-font-weight, Regular);
58
+ line-height:var(--sans-body-s-line-height, 16px);
59
+ font-size:var(--sans-body-s-font-size, 12px);
60
+ letter-spacing:var(--sans-body-s-letter-spacing, 0.1px);
61
+ paragraph-spacing:var(--sans-body-s-paragraph-spacing, 6.6px);
62
+ color:var(--sys-invert-neutral-text-disabled, #656774);
63
+ }
64
+ .fileSize[data-status=loading]{
65
+ color:var(--sys-invert-neutral-text-main, #e6e8ef);
66
+ }
67
+ .fileSize[data-status=uploaded]{
68
+ color:var(--sys-invert-neutral-text-main, #e6e8ef);
69
+ }
70
+
71
+ .fileStatusPercentage{
72
+ font-family:var(--sans-body-s-font-family, SB Sans Interface);
73
+ font-weight:var(--sans-body-s-font-weight, Regular);
74
+ line-height:var(--sans-body-s-line-height, 16px);
75
+ font-size:var(--sans-body-s-font-size, 12px);
76
+ letter-spacing:var(--sans-body-s-letter-spacing, 0.1px);
77
+ paragraph-spacing:var(--sans-body-s-paragraph-spacing, 6.6px);
78
+ color:var(--sys-invert-neutral-text-disabled, #656774);
79
+ }
80
+ .fileStatusPercentage[data-status=loading]{
81
+ color:var(--sys-invert-neutral-text-main, #e6e8ef);
82
+ }
83
+ .fileStatusPercentage[data-status=uploaded]{
84
+ color:var(--sys-invert-neutral-text-main, #e6e8ef);
85
+ }
@@ -0,0 +1,6 @@
1
+ import { ToastUploadStatus, UploadActions } from '../../types';
2
+ export type LoadingStatusProps = {
3
+ status: ToastUploadStatus;
4
+ actions: UploadActions;
5
+ };
6
+ export declare function LoadingStatus({ status, actions }: LoadingStatusProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,42 @@
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.LoadingStatus = LoadingStatus;
12
+ const jsx_runtime_1 = require("react/jsx-runtime");
13
+ const icons_1 = require("@snack-uikit/icons");
14
+ const ButtonIcon_1 = require("../ButtonIcon");
15
+ const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
16
+ function LoadingStatus(_ref) {
17
+ let {
18
+ status,
19
+ actions
20
+ } = _ref;
21
+ if (status === 'loading') {
22
+ return (0, jsx_runtime_1.jsx)(ButtonIcon_1.ButtonIcon, {
23
+ onClick: actions.onPause,
24
+ children: (0, jsx_runtime_1.jsx)(icons_1.PauseSVG, {})
25
+ });
26
+ }
27
+ if (status === 'pause') {
28
+ return (0, jsx_runtime_1.jsx)(ButtonIcon_1.ButtonIcon, {
29
+ onClick: actions.onContinue,
30
+ children: (0, jsx_runtime_1.jsx)(icons_1.PlaySVG, {})
31
+ });
32
+ }
33
+ if (status === 'uploaded') {
34
+ return (0, jsx_runtime_1.jsx)(icons_1.CheckFilledSVG, {
35
+ className: styles_module_scss_1.default.successIcon
36
+ });
37
+ }
38
+ return (0, jsx_runtime_1.jsx)(ButtonIcon_1.ButtonIcon, {
39
+ onClick: actions.onRetry,
40
+ children: (0, jsx_runtime_1.jsx)(icons_1.UpdateSVG, {})
41
+ });
42
+ }
@@ -0,0 +1 @@
1
+ export * from './LoadingStatus';
@@ -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
+ gap:0;
11
+ box-sizing:border-box;
12
+ width:calc(var(--size-toaster-toast-system-event-container, 320px) - var(--space-toaster-toast-system-event-container-padding, 16px));
13
+ max-width:100%;
14
+ max-height:386px;
15
+ padding:var(--space-toaster-toast-system-event-container-padding, 16px) 0;
16
+ background-color:var(--sys-invert-neutral-background, #30303c);
17
+ }
18
+
19
+ .titleLine{
20
+ display:flex;
21
+ flex-direction:column;
22
+ padding:0 var(--space-toaster-toast-system-event-container-padding, 16px);
23
+ }
24
+
25
+ .titleLineBody{
26
+ gap:var(--space-toaster-toast-upload-body-gap, 16px);
27
+ display:flex;
28
+ align-items:center;
29
+ }
30
+
31
+ .title{
32
+ font-family:var(--sans-title-s-font-family, SB Sans Interface);
33
+ font-weight:var(--sans-title-s-font-weight, Semibold);
34
+ line-height:var(--sans-title-s-line-height, 20px);
35
+ font-size:var(--sans-title-s-font-size, 14px);
36
+ letter-spacing:var(--sans-title-s-letter-spacing, 0.15px);
37
+ paragraph-spacing:var(--sans-title-s-paragraph-spacing, 7.7px);
38
+ flex-grow:1;
39
+ color:var(--sys-invert-neutral-text-main, #e6e8ef);
40
+ }
41
+
42
+ .generalProgress{
43
+ gap:var(--space-toaster-toast-upload-general-progress-gap, 4px);
44
+ display:flex;
45
+ flex-direction:column;
46
+ align-self:stretch;
47
+ }
48
+
49
+ .statusLine{
50
+ gap:var(--space-toaster-toast-upload-status-line-gap, 8px);
51
+ display:flex;
52
+ align-items:center;
53
+ }
54
+
55
+ .statusWrap{
56
+ gap:var(--space-toaster-toast-upload-status-wrap-gap, 4px);
57
+ display:flex;
58
+ flex-grow:1;
59
+ align-items:center;
60
+ }
61
+
62
+ .description{
63
+ font-family:var(--sans-body-m-font-family, SB Sans Interface);
64
+ font-weight:var(--sans-body-m-font-weight, Regular);
65
+ line-height:var(--sans-body-m-line-height, 20px);
66
+ font-size:var(--sans-body-m-font-size, 14px);
67
+ letter-spacing:var(--sans-body-m-letter-spacing, 0.1px);
68
+ paragraph-spacing:var(--sans-body-m-paragraph-spacing, 7.7px);
69
+ color:var(--sys-invert-neutral-text-main, #e6e8ef);
70
+ }
71
+ .description[data-status=loading]{
72
+ color:var(--sys-invert-neutral-text-light, #8b8e9b);
73
+ }
74
+ .description[data-status=uploaded]{
75
+ color:var(--sys-invert-neutral-text-light, #8b8e9b);
76
+ }
77
+
78
+ .totalCounter{
79
+ font-family:var(--sans-body-m-font-family, SB Sans Interface);
80
+ font-weight:var(--sans-body-m-font-weight, Regular);
81
+ line-height:var(--sans-body-m-line-height, 20px);
82
+ font-size:var(--sans-body-m-font-size, 14px);
83
+ letter-spacing:var(--sans-body-m-letter-spacing, 0.1px);
84
+ paragraph-spacing:var(--sans-body-m-paragraph-spacing, 7.7px);
85
+ color:var(--sys-invert-neutral-text-support, #bec2cf);
86
+ }
87
+
88
+ .totalPercentage{
89
+ font-family:var(--sans-body-m-font-family, SB Sans Interface);
90
+ font-weight:var(--sans-body-m-font-weight, Regular);
91
+ line-height:var(--sans-body-m-line-height, 20px);
92
+ font-size:var(--sans-body-m-font-size, 14px);
93
+ letter-spacing:var(--sans-body-m-letter-spacing, 0.1px);
94
+ paragraph-spacing:var(--sans-body-m-paragraph-spacing, 7.7px);
95
+ color:var(--sys-invert-neutral-text-support, #bec2cf);
96
+ }
97
+
98
+ .list{
99
+ overflow-x:hidden;
100
+ display:flex;
101
+ flex-direction:column;
102
+ max-height:0;
103
+ margin-top:0;
104
+ padding:0 var(--space-toaster-toast-system-event-container-padding, 16px);
105
+ transition:all 0.1s;
106
+ }
107
+ [data-collapsed] .list{
108
+ max-height:288px;
109
+ margin-top:var(--space-toaster-toast-system-event-container-gap, 16px);
110
+ }
@@ -0,0 +1,55 @@
1
+ import { LinkProps } from '@snack-uikit/link';
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 = Pick<LinkProps, 'target' | 'href' | 'onClick' | 'text'>;
16
+ export type UploadActions = {
17
+ onCancel?: () => void;
18
+ onPause?: () => void;
19
+ onRetry?: () => void;
20
+ onContinue?: () => void;
21
+ };
22
+ export type UploadItem = WithStateSubscription<{
23
+ /**
24
+ * Уникальный id элемента
25
+ */
26
+ id?: string;
27
+ /**
28
+ * Название элемента
29
+ */
30
+ title: string;
31
+ /**
32
+ * Статус загрузки
33
+ */
34
+ status: ToastUploadItemStatus;
35
+ /**
36
+ * Описание статуса загрузки
37
+ */
38
+ statusLabel: string;
39
+ /**
40
+ * Процент прогресса
41
+ */
42
+ progress: ProgressBarProps['progress'];
43
+ /**
44
+ * Размер файла
45
+ */
46
+ size: string;
47
+ /**
48
+ * Экшены для управления загрузкой
49
+ */
50
+ actions: UploadActions;
51
+ /**
52
+ * Ссылка на файл
53
+ */
54
+ link?: ToastUploadItemLink;
55
+ }>;
@@ -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);
@@ -3,11 +3,9 @@ import { ToasterType } from './types';
3
3
  export declare const TOASTER_TYPE: {
4
4
  readonly SystemEvent: "system-event";
5
5
  readonly UserAction: "user-action";
6
+ readonly Upload: "upload";
6
7
  };
7
8
  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
- };
9
+ export declare const AUTO_CLOSE_TIME: Record<ToasterType, number | false>;
12
10
  export declare const TOASTER_ROOT_ID = "toaster-root";
13
11
  export declare const TOASTER_CONTAINER_PREFIX = "toaster-container__";
@@ -6,7 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  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,18 @@ 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
38
  exports.TOASTER_CONTAINER_PREFIX = 'toaster-container__';
@@ -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);
@@ -2,6 +2,10 @@ import { Id } from 'react-toastify';
2
2
  import { OpenToast, Toaster, UpdateToast } from './types';
3
3
  export declare const openToast: OpenToast;
4
4
  export declare const updateToast: UpdateToast;
5
+ /**
6
+ * Закрытие тостера
7
+ * @function
8
+ */
5
9
  export declare const dismissToast: (params?: Id) => void;
6
10
  export declare const isToastActive: typeof import("react-toastify/dist/core/store").isToastActive;
7
11
  export declare const toaster: Toaster;