@cloud-ru/ds-uikit-product-modal-predefined 1.0.42 → 1.0.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,12 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## 1.0.43 (2026-10-07)
7
+
8
+ ### Bug Fixes
9
+
10
+ - **FF-8797:** render DeleteModal and RecallModal actions through ModalCustom footer slots ([4c3467e](https://github.com/cloud-ru-tech/snack-v2/commit/4c3467e63dbf8ddbecbd0a87ae29bc9fc5e9a3d4))
11
+
6
12
  ## 1.0.42 (2026-10-06)
7
13
 
8
14
  **Note:** Version bump only for package @ds/uikit-product-modal-predefined
@@ -35,5 +35,10 @@ function DeleteModal({ open, onClose, mode, closeOnPopstate, objectType, titleTo
35
35
  }
36
36
  onDelete(handleClose);
37
37
  };
38
- return ((0, jsx_runtime_1.jsxs)(modal_1.ModalCustom, { open: open, onClose: handleClose, mode: mode, closeOnPopstate: closeOnPopstate, width: modal_1.WIDTH.S, "data-test-id": constants_1.TEST_IDS.deleteModal, ...rest, children: [(0, jsx_runtime_1.jsx)(modal_1.ModalCustom.Header, { title: title, subtitle: subtitle, slotAfterTitle: titleTooltip ? (0, jsx_runtime_1.jsx)(tooltip_1.QuestionTooltip, { size: 's', tip: titleTooltip }) : undefined }), (0, jsx_runtime_1.jsx)(modal_1.ModalCustom.Body, { className: styles_module_scss_1.default.body, content: (0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.content, children: [content ?? t('deleteModal.content'), shouldShowConfirm && ((0, jsx_runtime_1.jsx)(helperComponents_1.InputConfirm, { ref: inputRef, confirmText: confirmText ?? '', hideConfirmCopyButton: hideConfirmCopyButton, value: value, error: error, size: 'l', copyLineAlign: 'start', confirmLabel: t('deleteModal.confirmLabel'), placeholder: confirmPlaceholder, onChange: handleChange }))] }) }), (0, jsx_runtime_1.jsx)(modal_1.ModalCustom.Footer, { children: (0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.footer, children: [(0, jsx_runtime_1.jsx)(button_1.Button, { size: button_1.SIZE.L, view: button_1.VIEW.Outline, appearance: button_1.APPEARANCE.Neutral, label: t('deleteModal.cancel'), onClick: handleClose, "data-test-id": constants_1.TEST_IDS.cancelButton }), (0, jsx_runtime_1.jsx)(button_1.Button, { size: button_1.SIZE.L, view: button_1.VIEW.Filled, appearance: button_1.APPEARANCE.Critical, label: t('deleteModal.approve'), loading: deleting, onClick: handleApproveClick, "data-test-id": constants_1.TEST_IDS.approveButton })] }) })] }));
38
+ return ((0, jsx_runtime_1.jsxs)(modal_1.ModalCustom, { open: open, onClose: handleClose, mode: mode, closeOnPopstate: closeOnPopstate, width: modal_1.WIDTH.S, "data-test-id": constants_1.TEST_IDS.deleteModal, ...rest, children: [(0, jsx_runtime_1.jsx)(modal_1.ModalCustom.Header, { title: title, subtitle: subtitle, slotAfterTitle: titleTooltip ? (0, jsx_runtime_1.jsx)(tooltip_1.QuestionTooltip, { size: 's', tip: titleTooltip }) : undefined }), (0, jsx_runtime_1.jsx)(modal_1.ModalCustom.Body, { className: styles_module_scss_1.default.body, content: (0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.content, children: [content ?? t('deleteModal.content'), shouldShowConfirm && ((0, jsx_runtime_1.jsx)(helperComponents_1.InputConfirm, { ref: inputRef, confirmText: confirmText ?? '', hideConfirmCopyButton: hideConfirmCopyButton, value: value, error: error, size: 'l', copyLineAlign: 'start', confirmLabel: t('deleteModal.confirmLabel'), placeholder: confirmPlaceholder, onChange: handleChange }))] }) }), (0, jsx_runtime_1.jsx)(modal_1.ModalCustom.Footer, { cancelButton: { label: t('deleteModal.cancel'), onClick: handleClose }, approveButton: {
39
+ label: t('deleteModal.approve'),
40
+ appearance: button_1.APPEARANCE.Critical,
41
+ loading: deleting,
42
+ onClick: handleApproveClick,
43
+ } })] }));
39
44
  }
@@ -33,5 +33,10 @@ function RecallModal({ open, onClose, mode, closeOnPopstate, titleTooltip, onRec
33
33
  }
34
34
  onRecall(handleClose);
35
35
  };
36
- return ((0, jsx_runtime_1.jsxs)(modal_1.ModalCustom, { open: open, onClose: handleClose, mode: mode, closeOnPopstate: closeOnPopstate, width: modal_1.WIDTH.S, "data-test-id": constants_1.TEST_IDS.recallModal, ...rest, children: [(0, jsx_runtime_1.jsx)(modal_1.ModalCustom.Header, { title: t('recallModal.title'), subtitle: subtitle, slotAfterTitle: titleTooltip ? (0, jsx_runtime_1.jsx)(tooltip_1.QuestionTooltip, { size: 's', tip: titleTooltip }) : undefined }), (0, jsx_runtime_1.jsx)(modal_1.ModalCustom.Body, { className: styles_module_scss_1.default.body, content: (0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.content, children: [content ?? t('recallModal.content'), shouldShowConfirm && ((0, jsx_runtime_1.jsx)(helperComponents_1.InputConfirm, { ref: inputRef, confirmText: confirmText ?? '', confirmLabel: t('recallModal.confirmLabel'), hideConfirmCopyButton: hideConfirmCopyButton, value: value, error: error, size: 'l', copyLineAlign: 'start', placeholder: t('confirm.namePlaceholder'), onChange: handleChange }))] }) }), (0, jsx_runtime_1.jsx)(modal_1.ModalCustom.Footer, { children: (0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.footer, children: [(0, jsx_runtime_1.jsx)(button_1.Button, { size: button_1.SIZE.L, view: button_1.VIEW.Outline, appearance: button_1.APPEARANCE.Neutral, label: t('recallModal.cancel'), onClick: handleClose, "data-test-id": constants_1.TEST_IDS.cancelButton }), (0, jsx_runtime_1.jsx)(button_1.Button, { size: button_1.SIZE.L, view: button_1.VIEW.Filled, appearance: button_1.APPEARANCE.Critical, label: t('recallModal.approve'), loading: loading, onClick: handleApproveClick, "data-test-id": constants_1.TEST_IDS.approveButton })] }) })] }));
36
+ return ((0, jsx_runtime_1.jsxs)(modal_1.ModalCustom, { open: open, onClose: handleClose, mode: mode, closeOnPopstate: closeOnPopstate, width: modal_1.WIDTH.S, "data-test-id": constants_1.TEST_IDS.recallModal, ...rest, children: [(0, jsx_runtime_1.jsx)(modal_1.ModalCustom.Header, { title: t('recallModal.title'), subtitle: subtitle, slotAfterTitle: titleTooltip ? (0, jsx_runtime_1.jsx)(tooltip_1.QuestionTooltip, { size: 's', tip: titleTooltip }) : undefined }), (0, jsx_runtime_1.jsx)(modal_1.ModalCustom.Body, { className: styles_module_scss_1.default.body, content: (0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.content, children: [content ?? t('recallModal.content'), shouldShowConfirm && ((0, jsx_runtime_1.jsx)(helperComponents_1.InputConfirm, { ref: inputRef, confirmText: confirmText ?? '', confirmLabel: t('recallModal.confirmLabel'), hideConfirmCopyButton: hideConfirmCopyButton, value: value, error: error, size: 'l', copyLineAlign: 'start', placeholder: t('confirm.namePlaceholder'), onChange: handleChange }))] }) }), (0, jsx_runtime_1.jsx)(modal_1.ModalCustom.Footer, { cancelButton: { label: t('recallModal.cancel'), onClick: handleClose }, approveButton: {
37
+ label: t('recallModal.approve'),
38
+ appearance: button_1.APPEARANCE.Critical,
39
+ loading: loading,
40
+ onClick: handleApproveClick,
41
+ } })] }));
37
42
  }
@@ -27,8 +27,8 @@ export declare const TEST_IDS: {
27
27
  readonly deleteModal: "delete-modal";
28
28
  readonly recallModal: "recall-modal";
29
29
  readonly releaseNotes: "release-notes";
30
- readonly approveButton: "modal-predefined__approve-button";
31
- readonly cancelButton: "modal-predefined__cancel-button";
30
+ readonly approveButton: "modal__footer-approve";
31
+ readonly cancelButton: "modal__footer-cancel";
32
32
  readonly confirmInput: "modal-predefined__confirm-input";
33
33
  readonly confirmCopyButton: "modal-predefined__confirm-copy-button";
34
34
  readonly releaseNotesItem: "modal-predefined__release-notes-item";
@@ -30,8 +30,8 @@ exports.TEST_IDS = {
30
30
  deleteModal: 'delete-modal',
31
31
  recallModal: 'recall-modal',
32
32
  releaseNotes: 'release-notes',
33
- approveButton: 'modal-predefined__approve-button',
34
- cancelButton: 'modal-predefined__cancel-button',
33
+ approveButton: 'modal__footer-approve',
34
+ cancelButton: 'modal__footer-cancel',
35
35
  confirmInput: 'modal-predefined__confirm-input',
36
36
  confirmCopyButton: 'modal-predefined__confirm-copy-button',
37
37
  releaseNotesItem: 'modal-predefined__release-notes-item',
@@ -6,12 +6,4 @@
6
6
  display:flex;
7
7
  flex-direction:column;
8
8
  row-gap:var(--sn-primitive-dimension-16, 16px);
9
- }
10
-
11
- .footer{
12
- display:flex;
13
- -moz-column-gap:var(--sn-primitive-dimension-8, 8px);
14
- column-gap:var(--sn-primitive-dimension-8, 8px);
15
- justify-content:flex-end;
16
- width:100%;
17
9
  }
@@ -208,12 +208,4 @@
208
208
  display:flex;
209
209
  flex-direction:column;
210
210
  row-gap:var(--sn-primitive-dimension-16, 16px);
211
- }
212
-
213
- .footer{
214
- display:flex;
215
- -moz-column-gap:var(--sn-primitive-dimension-8, 8px);
216
- column-gap:var(--sn-primitive-dimension-8, 8px);
217
- justify-content:flex-end;
218
- width:100%;
219
211
  }
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { APPEARANCE, Button, SIZE, VIEW } from '@cloud-ru/ds-button';
2
+ import { APPEARANCE } from '@cloud-ru/ds-button';
3
3
  import { ModalCustom, WIDTH } from '@cloud-ru/ds-modal';
4
4
  import { QuestionTooltip } from '@cloud-ru/ds-tooltip';
5
5
  import { useRef } from 'react';
@@ -29,5 +29,10 @@ export function DeleteModal({ open, onClose, mode, closeOnPopstate, objectType,
29
29
  }
30
30
  onDelete(handleClose);
31
31
  };
32
- return (_jsxs(ModalCustom, { open: open, onClose: handleClose, mode: mode, closeOnPopstate: closeOnPopstate, width: WIDTH.S, "data-test-id": TEST_IDS.deleteModal, ...rest, children: [_jsx(ModalCustom.Header, { title: title, subtitle: subtitle, slotAfterTitle: titleTooltip ? _jsx(QuestionTooltip, { size: 's', tip: titleTooltip }) : undefined }), _jsx(ModalCustom.Body, { className: styles.body, content: _jsxs("div", { className: styles.content, children: [content ?? t('deleteModal.content'), shouldShowConfirm && (_jsx(InputConfirm, { ref: inputRef, confirmText: confirmText ?? '', hideConfirmCopyButton: hideConfirmCopyButton, value: value, error: error, size: 'l', copyLineAlign: 'start', confirmLabel: t('deleteModal.confirmLabel'), placeholder: confirmPlaceholder, onChange: handleChange }))] }) }), _jsx(ModalCustom.Footer, { children: _jsxs("div", { className: styles.footer, children: [_jsx(Button, { size: SIZE.L, view: VIEW.Outline, appearance: APPEARANCE.Neutral, label: t('deleteModal.cancel'), onClick: handleClose, "data-test-id": TEST_IDS.cancelButton }), _jsx(Button, { size: SIZE.L, view: VIEW.Filled, appearance: APPEARANCE.Critical, label: t('deleteModal.approve'), loading: deleting, onClick: handleApproveClick, "data-test-id": TEST_IDS.approveButton })] }) })] }));
32
+ return (_jsxs(ModalCustom, { open: open, onClose: handleClose, mode: mode, closeOnPopstate: closeOnPopstate, width: WIDTH.S, "data-test-id": TEST_IDS.deleteModal, ...rest, children: [_jsx(ModalCustom.Header, { title: title, subtitle: subtitle, slotAfterTitle: titleTooltip ? _jsx(QuestionTooltip, { size: 's', tip: titleTooltip }) : undefined }), _jsx(ModalCustom.Body, { className: styles.body, content: _jsxs("div", { className: styles.content, children: [content ?? t('deleteModal.content'), shouldShowConfirm && (_jsx(InputConfirm, { ref: inputRef, confirmText: confirmText ?? '', hideConfirmCopyButton: hideConfirmCopyButton, value: value, error: error, size: 'l', copyLineAlign: 'start', confirmLabel: t('deleteModal.confirmLabel'), placeholder: confirmPlaceholder, onChange: handleChange }))] }) }), _jsx(ModalCustom.Footer, { cancelButton: { label: t('deleteModal.cancel'), onClick: handleClose }, approveButton: {
33
+ label: t('deleteModal.approve'),
34
+ appearance: APPEARANCE.Critical,
35
+ loading: deleting,
36
+ onClick: handleApproveClick,
37
+ } })] }));
33
38
  }
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { APPEARANCE, Button, SIZE, VIEW } from '@cloud-ru/ds-button';
2
+ import { APPEARANCE } from '@cloud-ru/ds-button';
3
3
  import { ModalCustom, WIDTH } from '@cloud-ru/ds-modal';
4
4
  import { QuestionTooltip } from '@cloud-ru/ds-tooltip';
5
5
  import { useRef } from 'react';
@@ -27,5 +27,10 @@ export function RecallModal({ open, onClose, mode, closeOnPopstate, titleTooltip
27
27
  }
28
28
  onRecall(handleClose);
29
29
  };
30
- return (_jsxs(ModalCustom, { open: open, onClose: handleClose, mode: mode, closeOnPopstate: closeOnPopstate, width: WIDTH.S, "data-test-id": TEST_IDS.recallModal, ...rest, children: [_jsx(ModalCustom.Header, { title: t('recallModal.title'), subtitle: subtitle, slotAfterTitle: titleTooltip ? _jsx(QuestionTooltip, { size: 's', tip: titleTooltip }) : undefined }), _jsx(ModalCustom.Body, { className: styles.body, content: _jsxs("div", { className: styles.content, children: [content ?? t('recallModal.content'), shouldShowConfirm && (_jsx(InputConfirm, { ref: inputRef, confirmText: confirmText ?? '', confirmLabel: t('recallModal.confirmLabel'), hideConfirmCopyButton: hideConfirmCopyButton, value: value, error: error, size: 'l', copyLineAlign: 'start', placeholder: t('confirm.namePlaceholder'), onChange: handleChange }))] }) }), _jsx(ModalCustom.Footer, { children: _jsxs("div", { className: styles.footer, children: [_jsx(Button, { size: SIZE.L, view: VIEW.Outline, appearance: APPEARANCE.Neutral, label: t('recallModal.cancel'), onClick: handleClose, "data-test-id": TEST_IDS.cancelButton }), _jsx(Button, { size: SIZE.L, view: VIEW.Filled, appearance: APPEARANCE.Critical, label: t('recallModal.approve'), loading: loading, onClick: handleApproveClick, "data-test-id": TEST_IDS.approveButton })] }) })] }));
30
+ return (_jsxs(ModalCustom, { open: open, onClose: handleClose, mode: mode, closeOnPopstate: closeOnPopstate, width: WIDTH.S, "data-test-id": TEST_IDS.recallModal, ...rest, children: [_jsx(ModalCustom.Header, { title: t('recallModal.title'), subtitle: subtitle, slotAfterTitle: titleTooltip ? _jsx(QuestionTooltip, { size: 's', tip: titleTooltip }) : undefined }), _jsx(ModalCustom.Body, { className: styles.body, content: _jsxs("div", { className: styles.content, children: [content ?? t('recallModal.content'), shouldShowConfirm && (_jsx(InputConfirm, { ref: inputRef, confirmText: confirmText ?? '', confirmLabel: t('recallModal.confirmLabel'), hideConfirmCopyButton: hideConfirmCopyButton, value: value, error: error, size: 'l', copyLineAlign: 'start', placeholder: t('confirm.namePlaceholder'), onChange: handleChange }))] }) }), _jsx(ModalCustom.Footer, { cancelButton: { label: t('recallModal.cancel'), onClick: handleClose }, approveButton: {
31
+ label: t('recallModal.approve'),
32
+ appearance: APPEARANCE.Critical,
33
+ loading: loading,
34
+ onClick: handleApproveClick,
35
+ } })] }));
31
36
  }
@@ -27,8 +27,8 @@ export declare const TEST_IDS: {
27
27
  readonly deleteModal: "delete-modal";
28
28
  readonly recallModal: "recall-modal";
29
29
  readonly releaseNotes: "release-notes";
30
- readonly approveButton: "modal-predefined__approve-button";
31
- readonly cancelButton: "modal-predefined__cancel-button";
30
+ readonly approveButton: "modal__footer-approve";
31
+ readonly cancelButton: "modal__footer-cancel";
32
32
  readonly confirmInput: "modal-predefined__confirm-input";
33
33
  readonly confirmCopyButton: "modal-predefined__confirm-copy-button";
34
34
  readonly releaseNotesItem: "modal-predefined__release-notes-item";
@@ -27,8 +27,8 @@ export const TEST_IDS = {
27
27
  deleteModal: 'delete-modal',
28
28
  recallModal: 'recall-modal',
29
29
  releaseNotes: 'release-notes',
30
- approveButton: 'modal-predefined__approve-button',
31
- cancelButton: 'modal-predefined__cancel-button',
30
+ approveButton: 'modal__footer-approve',
31
+ cancelButton: 'modal__footer-cancel',
32
32
  confirmInput: 'modal-predefined__confirm-input',
33
33
  confirmCopyButton: 'modal-predefined__confirm-copy-button',
34
34
  releaseNotesItem: 'modal-predefined__release-notes-item',
@@ -6,12 +6,4 @@
6
6
  display:flex;
7
7
  flex-direction:column;
8
8
  row-gap:var(--sn-primitive-dimension-16, 16px);
9
- }
10
-
11
- .footer{
12
- display:flex;
13
- -moz-column-gap:var(--sn-primitive-dimension-8, 8px);
14
- column-gap:var(--sn-primitive-dimension-8, 8px);
15
- justify-content:flex-end;
16
- width:100%;
17
9
  }
@@ -208,12 +208,4 @@
208
208
  display:flex;
209
209
  flex-direction:column;
210
210
  row-gap:var(--sn-primitive-dimension-16, 16px);
211
- }
212
-
213
- .footer{
214
- display:flex;
215
- -moz-column-gap:var(--sn-primitive-dimension-8, 8px);
216
- column-gap:var(--sn-primitive-dimension-8, 8px);
217
- justify-content:flex-end;
218
- width:100%;
219
211
  }