skillgrid 0.0.36-dev-40511-42085-40506-alert-placeholder-modal-fix.1221738 → 0.0.36-dev-40511-42085-40506-alert-placeholder-modal-fix.1230719

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.
@@ -1,8 +1,10 @@
1
1
  import { DialogProps } from '../Dialog';
2
- import { ReactNode } from 'react';
2
+ import { HTMLProps, ReactNode } from 'react';
3
3
  import { AvatarProps } from '../Avatar';
4
4
  export type AlertVariant = 'info' | 'success' | 'warning' | 'error' | 'dialog' | 'avatar';
5
- export interface AlertProps extends Pick<DialogProps, 'placement' | 'open' | 'onOpenChange' | 'children'> {
5
+ /** Поля плейсхолдера для стилизации. */
6
+ type AlertFields = 'title' | 'subTitle' | 'iconSlot' | 'children' | 'textBlock' | 'container' | 'dialog';
7
+ export interface AlertProps extends Omit<DialogProps, 'style' | 'className'> {
6
8
  /**
7
9
  * Вариант отображения Alert. Определяет иконку и цветовую схему.
8
10
  * Вариант `avatar` позволяет отобразить кастомный аватар.
@@ -20,6 +22,9 @@ export interface AlertProps extends Pick<DialogProps, 'placement' | 'open' | 'on
20
22
  title: ReactNode;
21
23
  /** Основной контент/описание Alert. */
22
24
  description?: ReactNode;
23
- /** ID для тестирования. */
24
- 'data-testid'?: string;
25
+ /** Inline-стили для отдельных частей Alert. */
26
+ styles?: Partial<Record<AlertFields, HTMLProps<HTMLDivElement>['style']>>;
27
+ /** CSS-классы для отдельных частей Alert. */
28
+ classNames?: Partial<Record<AlertFields, HTMLProps<HTMLDivElement>['className']>>;
25
29
  }
30
+ export {};
@@ -1,5 +1,5 @@
1
1
  import { ComponentProps, HTMLProps } from 'react';
2
- import { FloatingOverlay, FloatingPortalProps } from '@floating-ui/react';
2
+ import { FloatingFocusManagerProps, FloatingOverlay, FloatingPortalProps } from '@floating-ui/react';
3
3
  /**
4
4
  * Определяет вариант расположения диалогового окна на экране.
5
5
  * - `default`: Вверху экрана с вертикальными и горизонтальными отступами.
@@ -48,6 +48,14 @@ export interface DialogProps extends Pick<HTMLProps<HTMLDivElement>, 'className'
48
48
  'data-testid'?: string;
49
49
  /** Дополнительные пропсы для кастомизации оверлея (фона). */
50
50
  overlayProps?: Pick<ComponentProps<typeof FloatingOverlay>, 'lockScroll' | 'className' | 'style'>;
51
- /** Дополнительные пропсы для `FloatingPortal`, который используется для рендеринга диалога. */
51
+ /**
52
+ * Дополнительные пропсы для `FloatingPortal`, который используется для рендеринга диалога.
53
+ * @extends https://floating-ui.com/docs/FloatingPortal
54
+ * */
52
55
  portalProps?: FloatingPortalProps;
56
+ /**
57
+ * Дополнительные пропсы для `FloatingFocusManager`, который используется для рендеринга диалога.
58
+ * @extends https://floating-ui.com/docs/floatingfocusmanager
59
+ * */
60
+ focusManagement?: FloatingFocusManagerProps;
53
61
  }
@@ -2,7 +2,7 @@ import { DialogProps } from '../Dialog';
2
2
  import { FC, HTMLProps, PropsWithChildren, ReactNode } from 'react';
3
3
  import { ButtonProps } from '../Button';
4
4
  /** Поля модального окна для стилизации. */
5
- type ModalFields = 'container' | 'leftActionsStack' | 'rightActionsStack' | 'title' | 'subTitle' | 'content' | 'footer' | 'header' | 'grabber';
5
+ type ModalFields = 'dialog' | 'container' | 'leftActionsStack' | 'rightActionsStack' | 'title' | 'subTitle' | 'content' | 'footer' | 'header' | 'grabber';
6
6
  export type ModalActionButtonProps = {
7
7
  /** Пропсы кнопки действия; можно обернуть кнопку через wrapper. */
8
8
  props?: ButtonProps;
@@ -10,7 +10,7 @@ export type ModalActionButtonProps = {
10
10
  wrapper?: FC<PropsWithChildren>;
11
11
  };
12
12
  /** Пропсы компонента Modal. @extends DialogProps */
13
- export interface ModalProps extends DialogProps {
13
+ export interface ModalProps extends Omit<DialogProps, 'style' | 'className'> {
14
14
  /** Заголовок модального окна. */
15
15
  title?: ReactNode;
16
16
  /** Подзаголовок под основным заголовком. */
@@ -24,20 +24,23 @@ export interface ModalProps extends DialogProps {
24
24
  /** CSS-классы для отдельных частей модального окна. */
25
25
  classNames?: Partial<Record<ModalFields, HTMLProps<HTMLDivElement>['className']>>;
26
26
  /** Слот для элементов в правом верхнем углу (рядом с кнопкой закрытия). */
27
- rightActionsButtons?: ModalActionButtonProps[];
28
- leftActionsButtons?: ModalActionButtonProps[];
27
+ rightActionsSlot?: ReactNode[];
28
+ /** Слот для элементов в правом верхнем углу (рядом с кнопкой закрытия). */
29
+ leftActionsSlot?: ReactNode[];
30
+ /** Пропсы для кнопки закрытия в правом верхнем углу */
29
31
  closeButton?: {
30
32
  /**
31
33
  * Показывать кнопку закрытия.
32
34
  * @default true */
33
35
  show: boolean;
34
36
  } & ModalActionButtonProps;
37
+ /** Пропсы для кнопки "назад" в левом верхнем углу */
35
38
  backButton?: {
36
- /**
37
- * Показывать кнопку закрытия.
39
+ /** Показывать кнопку 'назад'.
38
40
  * @default true */
39
41
  show: boolean;
40
42
  } & ModalActionButtonProps;
43
+ /** Шаблон расположения элементов в шапке модального окна. */
41
44
  headerTemplate?: 'title-actions-actions' | 'actions-title-actions';
42
45
  /** Скрыть разделитель в шапке. */
43
46
  hideHeaderDivider?: boolean;