@cloud-ru/ds-uikit-product-modal-predefined 1.0.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 (155) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/LICENSE +201 -0
  3. package/README.md +359 -0
  4. package/dist/cjs/components/DeleteModal/DeleteModal.d.ts +2 -0
  5. package/dist/cjs/components/DeleteModal/DeleteModal.js +39 -0
  6. package/dist/cjs/components/DeleteModal/index.d.ts +1 -0
  7. package/dist/cjs/components/DeleteModal/index.js +17 -0
  8. package/dist/cjs/components/DeleteModal/styles.module.css +33 -0
  9. package/dist/cjs/components/RecallModal/RecallModal.d.ts +2 -0
  10. package/dist/cjs/components/RecallModal/RecallModal.js +37 -0
  11. package/dist/cjs/components/RecallModal/index.d.ts +1 -0
  12. package/dist/cjs/components/RecallModal/index.js +17 -0
  13. package/dist/cjs/components/RecallModal/styles.module.css +33 -0
  14. package/dist/cjs/components/ReleaseNotes/ReleaseNotes.d.ts +7 -0
  15. package/dist/cjs/components/ReleaseNotes/ReleaseNotes.js +15 -0
  16. package/dist/cjs/components/ReleaseNotes/index.d.ts +1 -0
  17. package/dist/cjs/components/ReleaseNotes/index.js +17 -0
  18. package/dist/cjs/components/index.d.ts +3 -0
  19. package/dist/cjs/components/index.js +19 -0
  20. package/dist/cjs/constants.d.ts +27 -0
  21. package/dist/cjs/constants.js +30 -0
  22. package/dist/cjs/helperComponents/DesktopReleaseNotes/DesktopReleaseNotes.d.ts +2 -0
  23. package/dist/cjs/helperComponents/DesktopReleaseNotes/DesktopReleaseNotes.js +21 -0
  24. package/dist/cjs/helperComponents/DesktopReleaseNotes/index.d.ts +1 -0
  25. package/dist/cjs/helperComponents/DesktopReleaseNotes/index.js +17 -0
  26. package/dist/cjs/helperComponents/DesktopReleaseNotes/styles.module.css +19 -0
  27. package/dist/cjs/helperComponents/InputConfirm/InputConfirm.d.ts +48 -0
  28. package/dist/cjs/helperComponents/InputConfirm/InputConfirm.js +15 -0
  29. package/dist/cjs/helperComponents/InputConfirm/index.d.ts +1 -0
  30. package/dist/cjs/helperComponents/InputConfirm/index.js +17 -0
  31. package/dist/cjs/helperComponents/InputConfirm/styles.module.css +38 -0
  32. package/dist/cjs/helperComponents/MobileReleaseNotes/MobileReleaseNotes.d.ts +2 -0
  33. package/dist/cjs/helperComponents/MobileReleaseNotes/MobileReleaseNotes.js +26 -0
  34. package/dist/cjs/helperComponents/MobileReleaseNotes/index.d.ts +1 -0
  35. package/dist/cjs/helperComponents/MobileReleaseNotes/index.js +17 -0
  36. package/dist/cjs/helperComponents/NoteItem/NoteItem.d.ts +6 -0
  37. package/dist/cjs/helperComponents/NoteItem/NoteItem.js +20 -0
  38. package/dist/cjs/helperComponents/NoteItem/index.d.ts +1 -0
  39. package/dist/cjs/helperComponents/NoteItem/index.js +17 -0
  40. package/dist/cjs/helperComponents/NoteItem/styles.module.css +53 -0
  41. package/dist/cjs/helperComponents/ReleaseNotesContent/ReleaseNotesContent.d.ts +28 -0
  42. package/dist/cjs/helperComponents/ReleaseNotesContent/ReleaseNotesContent.js +30 -0
  43. package/dist/cjs/helperComponents/ReleaseNotesContent/index.d.ts +1 -0
  44. package/dist/cjs/helperComponents/ReleaseNotesContent/index.js +17 -0
  45. package/dist/cjs/helperComponents/ReleaseNotesContent/styles.module.css +40 -0
  46. package/dist/cjs/helperComponents/ReleaseNotesFooter/ReleaseNotesFooter.d.ts +25 -0
  47. package/dist/cjs/helperComponents/ReleaseNotesFooter/ReleaseNotesFooter.js +17 -0
  48. package/dist/cjs/helperComponents/ReleaseNotesFooter/index.d.ts +1 -0
  49. package/dist/cjs/helperComponents/ReleaseNotesFooter/index.js +17 -0
  50. package/dist/cjs/helperComponents/ReleaseNotesFooter/styles.module.css +27 -0
  51. package/dist/cjs/helperComponents/index.d.ts +6 -0
  52. package/dist/cjs/helperComponents/index.js +22 -0
  53. package/dist/cjs/hooks.d.ts +26 -0
  54. package/dist/cjs/hooks.js +59 -0
  55. package/dist/cjs/index.d.ts +4 -0
  56. package/dist/cjs/index.js +20 -0
  57. package/dist/cjs/locale/index.d.ts +143 -0
  58. package/dist/cjs/locale/index.js +76 -0
  59. package/dist/cjs/package.json +3 -0
  60. package/dist/cjs/style.css +243 -0
  61. package/dist/cjs/types.d.ts +67 -0
  62. package/dist/cjs/types.js +2 -0
  63. package/dist/esm/components/DeleteModal/DeleteModal.d.ts +2 -0
  64. package/dist/esm/components/DeleteModal/DeleteModal.js +33 -0
  65. package/dist/esm/components/DeleteModal/index.d.ts +1 -0
  66. package/dist/esm/components/DeleteModal/index.js +1 -0
  67. package/dist/esm/components/DeleteModal/styles.module.css +33 -0
  68. package/dist/esm/components/RecallModal/RecallModal.d.ts +2 -0
  69. package/dist/esm/components/RecallModal/RecallModal.js +31 -0
  70. package/dist/esm/components/RecallModal/index.d.ts +1 -0
  71. package/dist/esm/components/RecallModal/index.js +1 -0
  72. package/dist/esm/components/RecallModal/styles.module.css +33 -0
  73. package/dist/esm/components/ReleaseNotes/ReleaseNotes.d.ts +7 -0
  74. package/dist/esm/components/ReleaseNotes/ReleaseNotes.js +12 -0
  75. package/dist/esm/components/ReleaseNotes/index.d.ts +1 -0
  76. package/dist/esm/components/ReleaseNotes/index.js +1 -0
  77. package/dist/esm/components/index.d.ts +3 -0
  78. package/dist/esm/components/index.js +3 -0
  79. package/dist/esm/constants.d.ts +27 -0
  80. package/dist/esm/constants.js +27 -0
  81. package/dist/esm/helperComponents/DesktopReleaseNotes/DesktopReleaseNotes.d.ts +2 -0
  82. package/dist/esm/helperComponents/DesktopReleaseNotes/DesktopReleaseNotes.js +15 -0
  83. package/dist/esm/helperComponents/DesktopReleaseNotes/index.d.ts +1 -0
  84. package/dist/esm/helperComponents/DesktopReleaseNotes/index.js +1 -0
  85. package/dist/esm/helperComponents/DesktopReleaseNotes/styles.module.css +19 -0
  86. package/dist/esm/helperComponents/InputConfirm/InputConfirm.d.ts +48 -0
  87. package/dist/esm/helperComponents/InputConfirm/InputConfirm.js +9 -0
  88. package/dist/esm/helperComponents/InputConfirm/index.d.ts +1 -0
  89. package/dist/esm/helperComponents/InputConfirm/index.js +1 -0
  90. package/dist/esm/helperComponents/InputConfirm/styles.module.css +38 -0
  91. package/dist/esm/helperComponents/MobileReleaseNotes/MobileReleaseNotes.d.ts +2 -0
  92. package/dist/esm/helperComponents/MobileReleaseNotes/MobileReleaseNotes.js +23 -0
  93. package/dist/esm/helperComponents/MobileReleaseNotes/index.d.ts +1 -0
  94. package/dist/esm/helperComponents/MobileReleaseNotes/index.js +1 -0
  95. package/dist/esm/helperComponents/NoteItem/NoteItem.d.ts +6 -0
  96. package/dist/esm/helperComponents/NoteItem/NoteItem.js +14 -0
  97. package/dist/esm/helperComponents/NoteItem/index.d.ts +1 -0
  98. package/dist/esm/helperComponents/NoteItem/index.js +1 -0
  99. package/dist/esm/helperComponents/NoteItem/styles.module.css +53 -0
  100. package/dist/esm/helperComponents/ReleaseNotesContent/ReleaseNotesContent.d.ts +28 -0
  101. package/dist/esm/helperComponents/ReleaseNotesContent/ReleaseNotesContent.js +24 -0
  102. package/dist/esm/helperComponents/ReleaseNotesContent/index.d.ts +1 -0
  103. package/dist/esm/helperComponents/ReleaseNotesContent/index.js +1 -0
  104. package/dist/esm/helperComponents/ReleaseNotesContent/styles.module.css +40 -0
  105. package/dist/esm/helperComponents/ReleaseNotesFooter/ReleaseNotesFooter.d.ts +25 -0
  106. package/dist/esm/helperComponents/ReleaseNotesFooter/ReleaseNotesFooter.js +11 -0
  107. package/dist/esm/helperComponents/ReleaseNotesFooter/index.d.ts +1 -0
  108. package/dist/esm/helperComponents/ReleaseNotesFooter/index.js +1 -0
  109. package/dist/esm/helperComponents/ReleaseNotesFooter/styles.module.css +27 -0
  110. package/dist/esm/helperComponents/index.d.ts +6 -0
  111. package/dist/esm/helperComponents/index.js +6 -0
  112. package/dist/esm/hooks.d.ts +26 -0
  113. package/dist/esm/hooks.js +55 -0
  114. package/dist/esm/index.d.ts +4 -0
  115. package/dist/esm/index.js +4 -0
  116. package/dist/esm/locale/index.d.ts +143 -0
  117. package/dist/esm/locale/index.js +73 -0
  118. package/dist/esm/style.css +243 -0
  119. package/dist/esm/types.d.ts +67 -0
  120. package/dist/esm/types.js +1 -0
  121. package/dist/tsconfig.cjs.tsbuildinfo +1 -0
  122. package/dist/tsconfig.esm.tsbuildinfo +1 -0
  123. package/package.json +63 -0
  124. package/src/components/DeleteModal/DeleteModal.tsx +116 -0
  125. package/src/components/DeleteModal/index.ts +1 -0
  126. package/src/components/DeleteModal/styles.module.scss +37 -0
  127. package/src/components/RecallModal/RecallModal.tsx +111 -0
  128. package/src/components/RecallModal/index.ts +1 -0
  129. package/src/components/RecallModal/styles.module.scss +37 -0
  130. package/src/components/ReleaseNotes/ReleaseNotes.tsx +15 -0
  131. package/src/components/ReleaseNotes/index.ts +1 -0
  132. package/src/components/index.ts +3 -0
  133. package/src/constants.ts +29 -0
  134. package/src/helperComponents/DesktopReleaseNotes/DesktopReleaseNotes.tsx +85 -0
  135. package/src/helperComponents/DesktopReleaseNotes/index.ts +1 -0
  136. package/src/helperComponents/DesktopReleaseNotes/styles.module.scss +24 -0
  137. package/src/helperComponents/InputConfirm/InputConfirm.tsx +72 -0
  138. package/src/helperComponents/InputConfirm/index.ts +1 -0
  139. package/src/helperComponents/InputConfirm/styles.module.scss +30 -0
  140. package/src/helperComponents/MobileReleaseNotes/MobileReleaseNotes.tsx +88 -0
  141. package/src/helperComponents/MobileReleaseNotes/index.ts +1 -0
  142. package/src/helperComponents/NoteItem/NoteItem.tsx +58 -0
  143. package/src/helperComponents/NoteItem/index.ts +1 -0
  144. package/src/helperComponents/NoteItem/styles.module.scss +54 -0
  145. package/src/helperComponents/ReleaseNotesContent/ReleaseNotesContent.tsx +119 -0
  146. package/src/helperComponents/ReleaseNotesContent/index.ts +1 -0
  147. package/src/helperComponents/ReleaseNotesContent/styles.module.scss +45 -0
  148. package/src/helperComponents/ReleaseNotesFooter/ReleaseNotesFooter.tsx +84 -0
  149. package/src/helperComponents/ReleaseNotesFooter/index.ts +1 -0
  150. package/src/helperComponents/ReleaseNotesFooter/styles.module.scss +25 -0
  151. package/src/helperComponents/index.ts +6 -0
  152. package/src/hooks.ts +89 -0
  153. package/src/index.ts +4 -0
  154. package/src/locale/index.ts +77 -0
  155. package/src/types.ts +80 -0
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ReleaseNotesContent = ReleaseNotesContent;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const button_1 = require("@cloud-ru/ds-button");
9
+ const carousel_1 = require("@cloud-ru/ds-carousel");
10
+ const system_1 = require("@cloud-ru/ds-icons/interface/system");
11
+ const info_block_1 = require("@cloud-ru/ds-info-block");
12
+ const skeleton_1 = require("@cloud-ru/ds-skeleton");
13
+ const classnames_1 = __importDefault(require("classnames"));
14
+ const constants_1 = require("../../constants");
15
+ const NoteItem_1 = require("../NoteItem");
16
+ const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
17
+ function ReleaseNotesContent({ contentState, items, loading, pageIndex, surface, noDataTitle, noDataDescription, errorTitle, errorDescription, retryLabel, onPageChange, onDataErrorRetryClick, }) {
18
+ const total = items.length;
19
+ const hasItems = total > 0;
20
+ if (loading) {
21
+ return ((0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.loading, "data-surface": surface, children: (0, jsx_runtime_1.jsx)(skeleton_1.Skeleton, { loading: true, width: '100%', height: '100%', borderRadius: 'var(--border-radius-l)' }) }));
22
+ }
23
+ if (contentState === constants_1.CONTENT_STATE.Error) {
24
+ return ((0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.stateWrapper, "data-surface": surface, children: (0, jsx_runtime_1.jsx)(info_block_1.InfoBlock, { className: styles_module_scss_1.default.state, size: 'l', title: errorTitle, content: errorDescription, icon: { icon: system_1.CrossSVG, appearance: 'neutral', background: true }, "data-test-id": constants_1.TEST_IDS.releaseNotesError, footer: (0, jsx_runtime_1.jsx)(button_1.Button, { view: 'filled', appearance: 'neutral', size: 'l', label: retryLabel, onClick: onDataErrorRetryClick, "data-test-id": constants_1.TEST_IDS.releaseNotesRetryButton }) }) }));
25
+ }
26
+ if (contentState === constants_1.CONTENT_STATE.NoData || !hasItems) {
27
+ return ((0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.stateWrapper, "data-surface": surface, children: (0, jsx_runtime_1.jsx)(info_block_1.InfoBlock, { className: styles_module_scss_1.default.state, size: 'l', title: noDataTitle, content: noDataDescription, "data-test-id": constants_1.TEST_IDS.releaseNotesNoData }) }));
28
+ }
29
+ return ((0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)(styles_module_scss_1.default.root, styles_module_scss_1.default[surface]), children: (0, jsx_runtime_1.jsx)(carousel_1.Carousel, { arrows: false, pagination: false, swipe: true, state: { page: pageIndex, onChange: onPageChange }, className: styles_module_scss_1.default.carousel, children: items.map(item => ((0, jsx_runtime_1.jsx)(NoteItem_1.NoteItem, { ...item, surface: surface }, `${item.title}-${item.image.src}`))) }) }));
30
+ }
@@ -0,0 +1 @@
1
+ export * from './ReleaseNotesContent';
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./ReleaseNotesContent"), exports);
@@ -0,0 +1,40 @@
1
+ .root{
2
+ display:flex;
3
+ flex-direction:column;
4
+ row-gap:var(--sn-primitive-dimension-16, 16px);
5
+ }
6
+
7
+ .modal{
8
+ min-width:calc(11 * var(--sn-primitive-dimension-64, 64px));
9
+ }
10
+
11
+ .bottomSheet{
12
+ min-width:0;
13
+ }
14
+
15
+ .carousel{
16
+ min-width:0;
17
+ }
18
+
19
+ .stateWrapper{
20
+ display:flex;
21
+ flex-direction:column;
22
+ align-items:center;
23
+ justify-content:center;
24
+ width:100%;
25
+ }
26
+ .stateWrapper[data-surface=modal]{
27
+ height:calc(7 * var(--sn-primitive-dimension-64, 64px) - var(--sn-primitive-dimension-4, 4px));
28
+ }
29
+ .stateWrapper[data-surface=bottomSheet]{
30
+ min-height:calc(7 * var(--sn-primitive-dimension-64, 64px));
31
+ }
32
+
33
+ .state{
34
+ width:100%;
35
+ max-width:calc(9 * var(--sn-primitive-dimension-64, 64px) + 3 * var(--sn-primitive-dimension-16, 16px));
36
+ }
37
+
38
+ .loading{
39
+ height:calc(5 * var(--sn-primitive-dimension-64, 64px));
40
+ }
@@ -0,0 +1,25 @@
1
+ import { ButtonProps } from '@cloud-ru/ds-button';
2
+ import { MouseEvent } from 'react';
3
+ export type ReleaseNotesFooterProps = {
4
+ /** Поверхность отображения */
5
+ surface: 'modal' | 'bottomSheet';
6
+ /** Количество страниц */
7
+ total: number;
8
+ /** Текущая страница, zero-based */
9
+ pageIndex: number;
10
+ /** Номер страницы для отображения */
11
+ readablePageNumber: number;
12
+ /** Текст счётчика «1 из N» (используется на bottomSheet) */
13
+ counterLabel: string;
14
+ /** Label кнопки «Ознакомиться позже» */
15
+ readLaterLabel: string;
16
+ /** Действие «Ознакомиться позже» */
17
+ onReadLaterClick(event: MouseEvent<HTMLButtonElement>): void;
18
+ /** Предыдущая страница */
19
+ onPrevPageClick(): void;
20
+ /** Следующая страница */
21
+ onNextPageClick(): void;
22
+ /** Дополнительные пропсы кнопки «Ознакомиться позже» */
23
+ readLaterButtonProps?: Partial<ButtonProps>;
24
+ };
25
+ export declare function ReleaseNotesFooter({ surface, total, pageIndex, readablePageNumber, counterLabel, readLaterLabel, onReadLaterClick, onPrevPageClick, onNextPageClick, readLaterButtonProps, }: ReleaseNotesFooterProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ReleaseNotesFooter = ReleaseNotesFooter;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const button_1 = require("@cloud-ru/ds-button");
9
+ const system_1 = require("@cloud-ru/ds-icons/interface/system");
10
+ const constants_1 = require("../../constants");
11
+ const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
12
+ function ReleaseNotesFooter({ surface, total, pageIndex, readablePageNumber, counterLabel, readLaterLabel, onReadLaterClick, onPrevPageClick, onNextPageClick, readLaterButtonProps, }) {
13
+ const hasPagination = total > 1;
14
+ const isModal = surface === 'modal';
15
+ const buttonSize = isModal ? 'm' : 'l';
16
+ return ((0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.root, "data-surface": surface, children: [(0, jsx_runtime_1.jsx)(button_1.Button, { view: 'function', appearance: 'neutral', size: buttonSize, label: readLaterLabel, "data-test-id": constants_1.TEST_IDS.releaseNotesReadLaterButton, ...readLaterButtonProps, onClick: onReadLaterClick }), hasPagination && ((0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.controls, children: [!isModal && (0, jsx_runtime_1.jsx)("span", { className: styles_module_scss_1.default.counter, children: counterLabel }), (0, jsx_runtime_1.jsx)(button_1.Button, { view: 'outline', appearance: 'neutral', size: buttonSize, icon: (0, jsx_runtime_1.jsx)(system_1.ChevronLeftSVG, {}), disabled: pageIndex === 0, onClick: onPrevPageClick, "data-test-id": constants_1.TEST_IDS.releaseNotesPrevButton }), (0, jsx_runtime_1.jsx)(button_1.Button, { view: 'outline', appearance: 'neutral', size: buttonSize, icon: (0, jsx_runtime_1.jsx)(system_1.ChevronRightSVG, {}), disabled: readablePageNumber === total, onClick: onNextPageClick, "data-test-id": constants_1.TEST_IDS.releaseNotesNextButton })] }))] }));
17
+ }
@@ -0,0 +1 @@
1
+ export * from './ReleaseNotesFooter';
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./ReleaseNotesFooter"), exports);
@@ -0,0 +1,27 @@
1
+ .root{
2
+ position:relative;
3
+ display:flex;
4
+ -moz-column-gap:var(--sn-primitive-dimension-16, 16px);
5
+ column-gap:var(--sn-primitive-dimension-16, 16px);
6
+ align-items:center;
7
+ justify-content:space-between;
8
+ width:100%;
9
+ }
10
+
11
+ .controls{
12
+ display:flex;
13
+ -moz-column-gap:var(--sn-primitive-dimension-8, 8px);
14
+ column-gap:var(--sn-primitive-dimension-8, 8px);
15
+ align-items:center;
16
+ }
17
+
18
+ .counter{
19
+ font-family:var(--sn-regular-body-m-fontFamily, var(--sn-brand-font-fontFamily-regular-body, var(--sn-primitive-fontFamily-brandA-sans, SB Sans Interface)));
20
+ font-weight:var(--sn-regular-body-m-fontWeight, var(--sn-theme-typography-fontWeight-regular-body-m, var(--sn-brand-font-fontWeight-light-regular-body-m, var(--sn-primitive-font-fontWeightValue-400, 400))));
21
+ line-height:var(--sn-regular-body-m-lineHeight, var(--sn-density-typography-roleBody-lineHeightM, var(--sn-primitive-font-lineHeight-by16, 24px)));
22
+ font-size:var(--sn-regular-body-m-fontSize, var(--sn-density-typography-roleBody-fontSizeM, var(--sn-primitive-font-fontSize-16, 16px)));
23
+ letter-spacing:var(--sn-regular-body-m-letterSpacing, var(--sn-primitive-font-letterSpacing-m, 0.1px));
24
+ paragraph-spacing:var(--sn-regular-body-m-paragraphSpacing, var(--sn-primitive-font-paragraphSpacing-byFontSize14, 7px));
25
+ color:var(--sn-theme-color-available-version-textTertiary, var(--sn-brand-color-text-version-tertiary, rgba(65, 66, 78, 0.5490196078)));
26
+ white-space:nowrap;
27
+ }
@@ -0,0 +1,6 @@
1
+ export * from './DesktopReleaseNotes';
2
+ export * from './InputConfirm';
3
+ export * from './MobileReleaseNotes';
4
+ export * from './NoteItem';
5
+ export * from './ReleaseNotesContent';
6
+ export * from './ReleaseNotesFooter';
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./DesktopReleaseNotes"), exports);
18
+ __exportStar(require("./InputConfirm"), exports);
19
+ __exportStar(require("./MobileReleaseNotes"), exports);
20
+ __exportStar(require("./NoteItem"), exports);
21
+ __exportStar(require("./ReleaseNotesContent"), exports);
22
+ __exportStar(require("./ReleaseNotesFooter"), exports);
@@ -0,0 +1,26 @@
1
+ type TextFieldValidationParams = {
2
+ target?: string;
3
+ errorText: string;
4
+ };
5
+ export declare function useTextFieldValidation({ target, errorText }: TextFieldValidationParams): {
6
+ value: string;
7
+ error: string;
8
+ handleChange: (nextValue: string) => void;
9
+ reset: () => void;
10
+ validate: () => boolean;
11
+ };
12
+ type ReleaseNotesNavigationParams = {
13
+ onClose(): void;
14
+ onReadLaterClick?(): void;
15
+ onSlideChange?(slide: number): void;
16
+ };
17
+ export declare function useReleaseNotesNavigation({ onClose, onReadLaterClick, onSlideChange }: ReleaseNotesNavigationParams): {
18
+ pageIndex: number;
19
+ readablePageNumber: number;
20
+ setPage: (nextPage: number) => void;
21
+ handleClose: () => void;
22
+ handleReadLaterClick: () => void;
23
+ handleNextPageClick: (totalPages: number) => void;
24
+ handlePrevPageClick: () => void;
25
+ };
26
+ export {};
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useTextFieldValidation = useTextFieldValidation;
4
+ exports.useReleaseNotesNavigation = useReleaseNotesNavigation;
5
+ const react_1 = require("react");
6
+ function useTextFieldValidation({ target, errorText }) {
7
+ const [value, setValue] = (0, react_1.useState)('');
8
+ const [error, setError] = (0, react_1.useState)('');
9
+ const handleChange = (0, react_1.useCallback)((nextValue) => {
10
+ setValue(nextValue);
11
+ if (target === nextValue) {
12
+ setError('');
13
+ }
14
+ }, [target]);
15
+ const reset = (0, react_1.useCallback)(() => {
16
+ setValue('');
17
+ setError('');
18
+ }, []);
19
+ const validate = (0, react_1.useCallback)(() => {
20
+ if (!target || target === value) {
21
+ setError('');
22
+ return true;
23
+ }
24
+ setError(errorText);
25
+ return false;
26
+ }, [errorText, target, value]);
27
+ return { value, error, handleChange, reset, validate };
28
+ }
29
+ function useReleaseNotesNavigation({ onClose, onReadLaterClick, onSlideChange }) {
30
+ const [pageIndex, setPageIndex] = (0, react_1.useState)(0);
31
+ const setPage = (0, react_1.useCallback)((nextPage) => {
32
+ setPageIndex(nextPage);
33
+ onSlideChange?.(nextPage);
34
+ }, [onSlideChange]);
35
+ const handleClose = (0, react_1.useCallback)(() => {
36
+ setPageIndex(0);
37
+ onClose();
38
+ }, [onClose]);
39
+ const handleReadLaterClick = (0, react_1.useCallback)(() => {
40
+ setPageIndex(0);
41
+ onReadLaterClick?.();
42
+ onClose();
43
+ }, [onClose, onReadLaterClick]);
44
+ const handleNextPageClick = (0, react_1.useCallback)((totalPages) => {
45
+ setPage(Math.min(totalPages - 1, pageIndex + 1));
46
+ }, [pageIndex, setPage]);
47
+ const handlePrevPageClick = (0, react_1.useCallback)(() => {
48
+ setPage(Math.max(0, pageIndex - 1));
49
+ }, [pageIndex, setPage]);
50
+ return {
51
+ pageIndex,
52
+ readablePageNumber: pageIndex + 1,
53
+ setPage,
54
+ handleClose,
55
+ handleReadLaterClick,
56
+ handleNextPageClick,
57
+ handlePrevPageClick,
58
+ };
59
+ }
@@ -0,0 +1,4 @@
1
+ export * from './components';
2
+ export * from './constants';
3
+ export * from './types';
4
+ export * from './locale';
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./components"), exports);
18
+ __exportStar(require("./constants"), exports);
19
+ __exportStar(require("./types"), exports);
20
+ __exportStar(require("./locale"), exports);
@@ -0,0 +1,143 @@
1
+ declare const MODAL_PREDEFINED_MESSAGES: {
2
+ readonly 'en-GB': {
3
+ readonly deleteModal: {
4
+ readonly title: "Delete {{objectType}}";
5
+ readonly fallbackTitle: "Delete object";
6
+ readonly content: "This action cannot be undone.";
7
+ readonly confirmLabel: "To allow deletion, enter:";
8
+ readonly approve: "Delete";
9
+ readonly cancel: "Cancel";
10
+ };
11
+ readonly recallModal: {
12
+ readonly title: "Recall request";
13
+ readonly content: "This action cannot be undone.";
14
+ readonly confirmLabel: "To recall the request, enter:";
15
+ readonly approve: "Recall request";
16
+ readonly cancel: "Cancel";
17
+ };
18
+ readonly confirm: {
19
+ readonly nameLabel: "Enter name to confirm";
20
+ readonly textLabel: "Enter text to confirm";
21
+ readonly namePlaceholder: "Name";
22
+ readonly textPlaceholder: "Text";
23
+ readonly error: "The entered value does not match the confirmation text";
24
+ };
25
+ readonly releaseNotes: {
26
+ readonly title: "What is new";
27
+ readonly readLater: "Read later";
28
+ readonly counter: "{{page}} of {{total}}";
29
+ readonly noDataTitle: "No news yet";
30
+ readonly noDataDescription: "Platform news will appear here soon";
31
+ readonly errorTitle: "Could not get data";
32
+ readonly errorDescription: "Try to reload the page";
33
+ readonly retry: "Refresh";
34
+ };
35
+ };
36
+ readonly 'ru-RU': {
37
+ readonly deleteModal: {
38
+ readonly title: "Удаление {{objectType}}";
39
+ readonly fallbackTitle: "Удалить объект";
40
+ readonly content: "Это действие нельзя отменить.";
41
+ readonly confirmLabel: "Чтобы разрешить удаление, введите:";
42
+ readonly approve: "Удалить";
43
+ readonly cancel: "Отмена";
44
+ };
45
+ readonly recallModal: {
46
+ readonly title: "Отзыв заявки";
47
+ readonly content: "Это действие нельзя отменить.";
48
+ readonly confirmLabel: "Чтобы отозвать заявку, введите:";
49
+ readonly approve: "Отозвать заявку";
50
+ readonly cancel: "Отмена";
51
+ };
52
+ readonly confirm: {
53
+ readonly nameLabel: "Введите название для подтверждения";
54
+ readonly textLabel: "Введите текст для подтверждения";
55
+ readonly namePlaceholder: "Введите название";
56
+ readonly textPlaceholder: "Текст";
57
+ readonly error: "Введенное значение не совпадает с текстом подтверждения";
58
+ };
59
+ readonly releaseNotes: {
60
+ readonly title: "Что нового";
61
+ readonly readLater: "Ознакомиться позже";
62
+ readonly counter: "{{page}} из {{total}}";
63
+ readonly noDataTitle: "Новостей пока нет";
64
+ readonly noDataDescription: "Скоро здесь появятся новости платформы";
65
+ readonly errorTitle: "Не удалось получить данные";
66
+ readonly errorDescription: "Попробуйте перезагрузить страницу";
67
+ readonly retry: "Обновить";
68
+ };
69
+ };
70
+ };
71
+ export type ModalPredefinedMessages = (typeof MODAL_PREDEFINED_MESSAGES)['en-GB'];
72
+ /** locale компонента ModalPredefined: `modalPredefinedLocale.useTranslations()` в коде, `.extend(...)` в сервисе. */
73
+ export declare const modalPredefinedLocale: import("@cloud-ru/ds-locale").DefinedLocale<{
74
+ readonly 'en-GB': {
75
+ readonly deleteModal: {
76
+ readonly title: "Delete {{objectType}}";
77
+ readonly fallbackTitle: "Delete object";
78
+ readonly content: "This action cannot be undone.";
79
+ readonly confirmLabel: "To allow deletion, enter:";
80
+ readonly approve: "Delete";
81
+ readonly cancel: "Cancel";
82
+ };
83
+ readonly recallModal: {
84
+ readonly title: "Recall request";
85
+ readonly content: "This action cannot be undone.";
86
+ readonly confirmLabel: "To recall the request, enter:";
87
+ readonly approve: "Recall request";
88
+ readonly cancel: "Cancel";
89
+ };
90
+ readonly confirm: {
91
+ readonly nameLabel: "Enter name to confirm";
92
+ readonly textLabel: "Enter text to confirm";
93
+ readonly namePlaceholder: "Name";
94
+ readonly textPlaceholder: "Text";
95
+ readonly error: "The entered value does not match the confirmation text";
96
+ };
97
+ readonly releaseNotes: {
98
+ readonly title: "What is new";
99
+ readonly readLater: "Read later";
100
+ readonly counter: "{{page}} of {{total}}";
101
+ readonly noDataTitle: "No news yet";
102
+ readonly noDataDescription: "Platform news will appear here soon";
103
+ readonly errorTitle: "Could not get data";
104
+ readonly errorDescription: "Try to reload the page";
105
+ readonly retry: "Refresh";
106
+ };
107
+ };
108
+ readonly 'ru-RU': {
109
+ readonly deleteModal: {
110
+ readonly title: "Удаление {{objectType}}";
111
+ readonly fallbackTitle: "Удалить объект";
112
+ readonly content: "Это действие нельзя отменить.";
113
+ readonly confirmLabel: "Чтобы разрешить удаление, введите:";
114
+ readonly approve: "Удалить";
115
+ readonly cancel: "Отмена";
116
+ };
117
+ readonly recallModal: {
118
+ readonly title: "Отзыв заявки";
119
+ readonly content: "Это действие нельзя отменить.";
120
+ readonly confirmLabel: "Чтобы отозвать заявку, введите:";
121
+ readonly approve: "Отозвать заявку";
122
+ readonly cancel: "Отмена";
123
+ };
124
+ readonly confirm: {
125
+ readonly nameLabel: "Введите название для подтверждения";
126
+ readonly textLabel: "Введите текст для подтверждения";
127
+ readonly namePlaceholder: "Введите название";
128
+ readonly textPlaceholder: "Текст";
129
+ readonly error: "Введенное значение не совпадает с текстом подтверждения";
130
+ };
131
+ readonly releaseNotes: {
132
+ readonly title: "Что нового";
133
+ readonly readLater: "Ознакомиться позже";
134
+ readonly counter: "{{page}} из {{total}}";
135
+ readonly noDataTitle: "Новостей пока нет";
136
+ readonly noDataDescription: "Скоро здесь появятся новости платформы";
137
+ readonly errorTitle: "Не удалось получить данные";
138
+ readonly errorDescription: "Попробуйте перезагрузить страницу";
139
+ readonly retry: "Обновить";
140
+ };
141
+ };
142
+ }, "@cloud-ru/ds-uikit-product-modal-predefined">;
143
+ export {};
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.modalPredefinedLocale = void 0;
4
+ const locale_1 = require("@cloud-ru/ds-locale");
5
+ const MODAL_PREDEFINED_MESSAGES = (0, locale_1.defineMessages)({
6
+ 'en-GB': {
7
+ deleteModal: {
8
+ title: 'Delete {{objectType}}',
9
+ fallbackTitle: 'Delete object',
10
+ content: 'This action cannot be undone.',
11
+ confirmLabel: 'To allow deletion, enter:',
12
+ approve: 'Delete',
13
+ cancel: 'Cancel',
14
+ },
15
+ recallModal: {
16
+ title: 'Recall request',
17
+ content: 'This action cannot be undone.',
18
+ confirmLabel: 'To recall the request, enter:',
19
+ approve: 'Recall request',
20
+ cancel: 'Cancel',
21
+ },
22
+ confirm: {
23
+ nameLabel: 'Enter name to confirm',
24
+ textLabel: 'Enter text to confirm',
25
+ namePlaceholder: 'Name',
26
+ textPlaceholder: 'Text',
27
+ error: 'The entered value does not match the confirmation text',
28
+ },
29
+ releaseNotes: {
30
+ title: 'What is new',
31
+ readLater: 'Read later',
32
+ counter: '{{page}} of {{total}}',
33
+ noDataTitle: 'No news yet',
34
+ noDataDescription: 'Platform news will appear here soon',
35
+ errorTitle: 'Could not get data',
36
+ errorDescription: 'Try to reload the page',
37
+ retry: 'Refresh',
38
+ },
39
+ },
40
+ 'ru-RU': {
41
+ deleteModal: {
42
+ title: 'Удаление {{objectType}}',
43
+ fallbackTitle: 'Удалить объект',
44
+ content: 'Это действие нельзя отменить.',
45
+ confirmLabel: 'Чтобы разрешить удаление, введите:',
46
+ approve: 'Удалить',
47
+ cancel: 'Отмена',
48
+ },
49
+ recallModal: {
50
+ title: 'Отзыв заявки',
51
+ content: 'Это действие нельзя отменить.',
52
+ confirmLabel: 'Чтобы отозвать заявку, введите:',
53
+ approve: 'Отозвать заявку',
54
+ cancel: 'Отмена',
55
+ },
56
+ confirm: {
57
+ nameLabel: 'Введите название для подтверждения',
58
+ textLabel: 'Введите текст для подтверждения',
59
+ namePlaceholder: 'Введите название',
60
+ textPlaceholder: 'Текст',
61
+ error: 'Введенное значение не совпадает с текстом подтверждения',
62
+ },
63
+ releaseNotes: {
64
+ title: 'Что нового',
65
+ readLater: 'Ознакомиться позже',
66
+ counter: '{{page}} из {{total}}',
67
+ noDataTitle: 'Новостей пока нет',
68
+ noDataDescription: 'Скоро здесь появятся новости платформы',
69
+ errorTitle: 'Не удалось получить данные',
70
+ errorDescription: 'Попробуйте перезагрузить страницу',
71
+ retry: 'Обновить',
72
+ },
73
+ },
74
+ });
75
+ /** locale компонента ModalPredefined: `modalPredefinedLocale.useTranslations()` в коде, `.extend(...)` в сервисе. */
76
+ exports.modalPredefinedLocale = (0, locale_1.defineLocale)('@cloud-ru/ds-uikit-product-modal-predefined', MODAL_PREDEFINED_MESSAGES);
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "commonjs"
3
+ }