@foxford/ui 2.72.0 → 2.73.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 (60) hide show
  1. package/components/Dialog/Dialog.js +1 -1
  2. package/components/Dialog/Dialog.js.map +1 -1
  3. package/components/Dialog/Dialog.mjs +1 -1
  4. package/components/Dialog/Dialog.mjs.map +1 -1
  5. package/components/Dialog/{constants.js → positions.js} +1 -1
  6. package/components/Dialog/positions.js.map +1 -0
  7. package/components/Dialog/{constants.mjs → positions.mjs} +1 -1
  8. package/components/Dialog/positions.mjs.map +1 -0
  9. package/components/Dialog/sizes.js +2 -0
  10. package/components/Dialog/sizes.js.map +1 -0
  11. package/components/Dialog/sizes.mjs +2 -0
  12. package/components/Dialog/sizes.mjs.map +1 -0
  13. package/components/DialogComponent/DialogComponent.js +1 -1
  14. package/components/DialogComponent/DialogComponent.js.map +1 -1
  15. package/components/DialogComponent/DialogComponent.mjs +1 -1
  16. package/components/DialogComponent/DialogComponent.mjs.map +1 -1
  17. package/components/DialogComponent/layouts.js +2 -0
  18. package/components/DialogComponent/layouts.js.map +1 -0
  19. package/components/DialogComponent/layouts.mjs +2 -0
  20. package/components/DialogComponent/layouts.mjs.map +1 -0
  21. package/components/DialogComponent/sizes.js +2 -0
  22. package/components/DialogComponent/sizes.js.map +1 -0
  23. package/components/DialogComponent/sizes.mjs +2 -0
  24. package/components/DialogComponent/sizes.mjs.map +1 -0
  25. package/components/DialogComponent/style.js +1 -1
  26. package/components/DialogComponent/style.js.map +1 -1
  27. package/components/DialogComponent/style.mjs +1 -1
  28. package/components/DialogComponent/style.mjs.map +1 -1
  29. package/components/PopoverComponent/PopoverComponent.js +1 -1
  30. package/components/PopoverComponent/PopoverComponent.js.map +1 -1
  31. package/components/PopoverComponent/PopoverComponent.mjs +1 -1
  32. package/components/PopoverComponent/PopoverComponent.mjs.map +1 -1
  33. package/dts/index.d.ts +508 -243
  34. package/package.json +1 -1
  35. package/components/Dialog/constants.js.map +0 -1
  36. package/components/Dialog/constants.mjs.map +0 -1
  37. package/components/DialogComponent/DialogContainer.js +0 -2
  38. package/components/DialogComponent/DialogContainer.js.map +0 -1
  39. package/components/DialogComponent/DialogContainer.mjs +0 -2
  40. package/components/DialogComponent/DialogContainer.mjs.map +0 -1
  41. package/components/DialogComponent/ProgressLineContainer.js +0 -2
  42. package/components/DialogComponent/ProgressLineContainer.js.map +0 -1
  43. package/components/DialogComponent/ProgressLineContainer.mjs +0 -2
  44. package/components/DialogComponent/ProgressLineContainer.mjs.map +0 -1
  45. package/components/DialogComponent/constants.js +0 -2
  46. package/components/DialogComponent/constants.js.map +0 -1
  47. package/components/DialogComponent/constants.mjs +0 -2
  48. package/components/DialogComponent/constants.mjs.map +0 -1
  49. package/components/DialogComponent/utils.js +0 -2
  50. package/components/DialogComponent/utils.js.map +0 -1
  51. package/components/DialogComponent/utils.mjs +0 -2
  52. package/components/DialogComponent/utils.mjs.map +0 -1
  53. package/components/Visibility/Visibility.js +0 -2
  54. package/components/Visibility/Visibility.js.map +0 -1
  55. package/components/Visibility/Visibility.mjs +0 -2
  56. package/components/Visibility/Visibility.mjs.map +0 -1
  57. package/components/Visibility/style.js +0 -2
  58. package/components/Visibility/style.js.map +0 -1
  59. package/components/Visibility/style.mjs +0 -2
  60. package/components/Visibility/style.mjs.map +0 -1
package/dts/index.d.ts CHANGED
@@ -884,8 +884,8 @@ declare type CSSColor = RGB | RGBA | HEX | CSSGlobalValue | 'currentcolor' | 'tr
884
884
  declare type CSSBorderStyle = CSSGlobalValue | 'none' | 'hidden' | 'dotted' | 'dashed' | 'solid' | 'double' | 'groove' | 'ridge' | 'inset' | 'outset';
885
885
  declare type CSSVerticalAlign = CSSGlobalValue | 'baseline' | 'sub' | 'super' | 'text-top' | 'text-bottom' | 'middle' | 'top' | 'bottom';
886
886
  declare type CSSFontWeight = CSSGlobalValue | 'normal' | 'bold' | 'lighter' | 'bolder' | number;
887
- declare type Size$2 = 'xxxl' | 'xxl' | 'xl' | 'l' | 'm' | 's' | 'xs' | 'xxs' | 'xxxs';
888
- declare type SizeValue = Size$2 | CSSGlobalValue | number;
887
+ declare type Size$4 = 'xxxl' | 'xxl' | 'xl' | 'l' | 'm' | 's' | 'xs' | 'xxs' | 'xxxs';
888
+ declare type SizeValue = Size$4 | CSSGlobalValue | number;
889
889
  declare type Breakpoint = 'XXS' | 'XS' | 'S' | 'M' | 'L' | 'XL';
890
890
  declare type Color = keyof typeof ColorNames | CSSColor;
891
891
  declare type ColorPaletteKey = 'color' | `color${string}` | `${string}Color` | `${string}Color${string}`;
@@ -985,7 +985,7 @@ declare const adultDarkTheme: DefaultTheme;
985
985
  /**
986
986
  * Value for breakpoint
987
987
  */
988
- declare type PossibleValues = number | Size$2 | 'auto' | 'initial' | 'inherit' | boolean;
988
+ declare type PossibleValues = number | Size$4 | 'auto' | 'initial' | 'inherit' | boolean;
989
989
  declare type PropsProperties = 'size' | 'fontSize' | 'height' | 'width' | 'top' | 'right' | 'bottom' | 'left' | 'padding' | 'paddingTop' | 'paddingRight' | 'paddingBottom' | 'paddingLeft' | 'margin' | 'marginTop' | 'marginRight' | 'marginBottom' | 'marginLeft' | 'fluid';
990
990
  declare type CalcProperty = (_size: number | 'auto' | 'initial' | 'inherit' | boolean, _sizing?: null | string) => FlattenSimpleInterpolation | null;
991
991
  declare type CssProperty = string | CalcProperty;
@@ -993,15 +993,15 @@ declare type ResponsiveKeys = '' | 'XXS' | 'XS' | 'S' | 'M' | 'L' | 'XL';
993
993
  declare type ResponsiveNamedProperty<T extends PropsProperties, V extends PossibleValues = PossibleValues> = {
994
994
  [key in `${T}${ResponsiveKeys}`]?: V;
995
995
  };
996
- declare type ResponsiveProperty<V = number | Size$2> = V | [desktop: V, tablet: V, mobile: V] | [xl: V, l: V, m: V, s: V, xs: V, xxs: V];
997
- declare const property: (value: PossibleValues, cssProperty?: CssProperty, sizing?: null | string, sizes?: Record<Size$2, number>) => () => () => FlattenSimpleInterpolation | null;
996
+ declare type ResponsiveProperty<V = number | Size$4> = V | [desktop: V, tablet: V, mobile: V] | [xl: V, l: V, m: V, s: V, xs: V, xxs: V];
997
+ declare const property: (value: PossibleValues, cssProperty?: CssProperty, sizing?: null | string, sizes?: Record<Size$4, number>) => () => () => FlattenSimpleInterpolation | null;
998
998
  interface ResponsiveNamedPropertyPayload<T extends PropsProperties> {
999
999
  sizes: ResponsiveNamedProperty<T>;
1000
1000
  cssProperty: CssProperty;
1001
1001
  sizing?: null | string;
1002
1002
  customSizeHandler?: (_value: PossibleValues) => PossibleValues;
1003
1003
  sort?: (_a: string, _b: string) => number;
1004
- predefinedSizes?: Record<Size$2, number>;
1004
+ predefinedSizes?: Record<Size$4, number>;
1005
1005
  }
1006
1006
  /**
1007
1007
  * Миксин для генерации media запросов
@@ -1111,7 +1111,7 @@ interface ExpandButtonProps extends React.ComponentPropsWithoutRef<'button'> {
1111
1111
  /** Кастомные цвета */
1112
1112
  palette?: Partial<Record<keyof ExpandButtonPalette, Color>>;
1113
1113
  }
1114
- interface TextProps extends ResponsiveSizeProps<Size$2, SizeValue>, ResponsiveMarginProps,
1114
+ interface TextProps extends ResponsiveSizeProps<Size$4, SizeValue>, ResponsiveMarginProps,
1115
1115
  /** @deprecated */
1116
1116
  DisplayProperty, ColorProperty, Omit<React.HTMLAttributes<HTMLElement>, 'color'>, Omit<React.BlockquoteHTMLAttributes<HTMLElement>, 'color'>, Omit<React.LabelHTMLAttributes<HTMLElement>, 'color'> {
1117
1117
  /** Применение присета стилей и размеров */
@@ -1188,7 +1188,7 @@ declare const Text: React.ForwardRefExoticComponent<TextProps> & {
1188
1188
  declare type IconPackIconName = Uncapitalize<keyof typeof IconPack>;
1189
1189
  declare type IconNameDefault = 'book' | 'blackBoard' | 'burger' | 'eye' | 'email' | 'sort' | 'unsort' | 'person' | 'diamond' | 'diamondFilled' | 'infoInverse' | 'list' | 'login' | 'logout' | 'fire' | 'camps' | 'cart' | 'clock' | 'clockFilled' | 'courses' | 'discount' | 'externat' | 'headphones' | 'page' | 'priceTag' | 'phone' | 'prof' | 'star' | 'settings' | 'student' | 'target' | 'textbook' | 'trophy' | 'message' | 'wallet' | 'edit' | 'copy' | 'print' | 'objective' | 'present' | 'coins' | 'calendar' | 'calendar_simple' | 'chevronDown' | 'chevronUp' | 'chevronRight' | 'chevronLeft' | 'cross' | 'dialog' | 'dropDownArrow' | 'externalLink' | 'file' | 'fileBordered' | 'lessons' | 'pencil' | 'phoneNoFill' | 'radioChecked' | 'radioNotChecked' | 'search' | 'tasks' | 'tinyCross' | 'sharpCross' | 'plus' | 'plusThin' | 'play' | 'reload' | 'checkCircle' | 'info' | 'check' | 'home' | 'questionFilled' | 'document' | 'cancel' | 'playPause' | 'video';
1190
1190
  declare type IconName = IconPackIconName | IconNameDefault;
1191
- interface IconProps extends ResponsiveSizeProps<Size$2, SizeValue>, ResponsiveMarginProps, Omit<React.ComponentPropsWithRef<'span'>, 'children'> {
1191
+ interface IconProps extends ResponsiveSizeProps<Size$4, SizeValue>, ResponsiveMarginProps, Omit<React.ComponentPropsWithRef<'span'>, 'children'> {
1192
1192
  /** UI: brand (v3), or default (v2) */
1193
1193
  preset?: ThemePreset;
1194
1194
  /** Icon color */
@@ -1292,7 +1292,7 @@ declare type AnchorPalette = {
1292
1292
  colorHover: CSSColor;
1293
1293
  colorDisabled: CSSColor;
1294
1294
  };
1295
- interface AnchorProps extends ResponsiveSizeProps<Size$2, SizeValue>, ResponsiveMarginProps, Omit<React.ComponentPropsWithRef<'a'>, 'color' | 'children'>,
1295
+ interface AnchorProps extends ResponsiveSizeProps<Size$4, SizeValue>, ResponsiveMarginProps, Omit<React.ComponentPropsWithRef<'a'>, 'color' | 'children'>,
1296
1296
  /** @deprecated Use palette */
1297
1297
  ColorProperty<'color'>,
1298
1298
  /** @deprecated Use children as function */
@@ -1366,7 +1366,7 @@ declare type ButtonPalette = {
1366
1366
  borderColorDisabled: CSSColor;
1367
1367
  shadowColor: CSSColor;
1368
1368
  };
1369
- interface ButtonProps extends ResponsiveSizeProps<Size$2, SizeValue>, ColorProperty, ColorProperty<'fontColor'>, ResponsiveNamedProperty<'margin'>, ResponsiveNamedProperty<'marginTop'>, ResponsiveNamedProperty<'marginRight'>, ResponsiveNamedProperty<'marginBottom'>, ResponsiveNamedProperty<'marginLeft'>, ResponsiveNamedProperty<'fluid', boolean>, ResponsiveNamedProperty<'width', 'auto' | 'l' | 'm' | 's' | 'xs' | number>, Omit<React.ComponentPropsWithRef<'button'>, 'color' | 'children'>,
1369
+ interface ButtonProps extends ResponsiveSizeProps<Size$4, SizeValue>, ColorProperty, ColorProperty<'fontColor'>, ResponsiveNamedProperty<'margin'>, ResponsiveNamedProperty<'marginTop'>, ResponsiveNamedProperty<'marginRight'>, ResponsiveNamedProperty<'marginBottom'>, ResponsiveNamedProperty<'marginLeft'>, ResponsiveNamedProperty<'fluid', boolean>, ResponsiveNamedProperty<'width', 'auto' | 'l' | 'm' | 's' | 'xs' | number>, Omit<React.ComponentPropsWithRef<'button'>, 'color' | 'children'>,
1370
1370
  /** @deprecated Use children as function or inline prop */
1371
1371
  DisplayProperty,
1372
1372
  /** @deprecated */
@@ -1581,7 +1581,7 @@ declare type ArrowPalette = {
1581
1581
  borderColorDisabled: CSSColor;
1582
1582
  shadowColor: CSSColor;
1583
1583
  };
1584
- interface ArrowProps extends ResponsiveSizeProps<Size$2, SizeValue>, ResponsiveMarginProps, Omit<React.ComponentPropsWithRef<'button'>, 'children'> {
1584
+ interface ArrowProps extends ResponsiveSizeProps<Size$4, SizeValue>, ResponsiveMarginProps, Omit<React.ComponentPropsWithRef<'button'>, 'children'> {
1585
1585
  /**
1586
1586
  * UI: v3 (brand), or v2 (default)
1587
1587
  * @default "default" */
@@ -1871,7 +1871,7 @@ declare type ArrowBadgePalette = {
1871
1871
  color: CSSColor;
1872
1872
  backgroundColor: CSSColor;
1873
1873
  };
1874
- interface ArrowBadgeProps extends ResponsiveSizeProps<Size$2, SizeValue>, ResponsiveMarginProps,
1874
+ interface ArrowBadgeProps extends ResponsiveSizeProps<Size$4, SizeValue>, ResponsiveMarginProps,
1875
1875
  /** @deprecated Use palette */
1876
1876
  ColorProperty<'color'>,
1877
1877
  /** @deprecated Use palette */
@@ -1924,7 +1924,7 @@ declare type TabPalette = {
1924
1924
  backgroundColorDisabled: CSSColor;
1925
1925
  borderColorDisabled: CSSColor;
1926
1926
  };
1927
- interface TabProps extends ResponsiveSizeProps<Size$2, SizeValue>, ResponsiveMarginProps,
1927
+ interface TabProps extends ResponsiveSizeProps<Size$4, SizeValue>, ResponsiveMarginProps,
1928
1928
  /** @deprecated Use palette */
1929
1929
  ColorProperty<'color'>,
1930
1930
  /** @deprecated Use palette */
@@ -1982,7 +1982,7 @@ declare type BadgePalette = {
1982
1982
  color: CSSColor;
1983
1983
  backgroundColor: CSSColor;
1984
1984
  };
1985
- interface BadgeProps extends ResponsiveSizeProps<Size$2, SizeValue>, ResponsiveMarginProps,
1985
+ interface BadgeProps extends ResponsiveSizeProps<Size$4, SizeValue>, ResponsiveMarginProps,
1986
1986
  /** @deprecated Use palette */
1987
1987
  ColorProperty,
1988
1988
  /** @deprecated Use children as function */
@@ -2318,14 +2318,14 @@ declare const Tooltip: React.ForwardRefExoticComponent<TooltipProps> & {
2318
2318
  Component: typeof TooltipComponent;
2319
2319
  };
2320
2320
 
2321
- declare type Size$1 = 'xl' | 'l' | 'm' | 's' | 'xs';
2322
- declare type Layout$1 = 'vertical' | 'horizontal';
2321
+ declare type Size$3 = 'xl' | 'l' | 'm' | 's' | 'xs';
2322
+ declare type Layout$3 = 'vertical' | 'horizontal';
2323
2323
  declare type PopoverComponentPalette = {
2324
2324
  color: CSSColor;
2325
2325
  backgroundColor: CSSColor;
2326
2326
  shadowColor: CSSColor;
2327
2327
  };
2328
- interface PopoverComponentBaseProps extends ResponsiveSizeProps<Size$1>, ResponsiveLayoutProps<Layout$1> {
2328
+ interface PopoverComponentBaseProps extends ResponsiveSizeProps<Size$3>, ResponsiveLayoutProps<Layout$3> {
2329
2329
  /**
2330
2330
  * Кастомные цвета.
2331
2331
  *
@@ -2354,7 +2354,10 @@ interface PopoverComponentBaseProps extends ResponsiveSizeProps<Size$1>, Respons
2354
2354
  * Кастомный хедер.
2355
2355
  *
2356
2356
  * @default undefined */
2357
- header?: React.ReactNode;
2357
+ header?: React.ReactNode | ((headerProps: {
2358
+ badgeProps: BadgeProps;
2359
+ captionProps: TextProps;
2360
+ }) => React.ReactNode);
2358
2361
  /**
2359
2362
  * Заголовок.
2360
2363
  *
@@ -2372,7 +2375,10 @@ interface PopoverComponentBaseProps extends ResponsiveSizeProps<Size$1>, Respons
2372
2375
  * Кастомный блок с основным контентом.
2373
2376
  *
2374
2377
  * @default undefined */
2375
- body?: React.ReactNode;
2378
+ body?: React.ReactNode | ((bodyProps: {
2379
+ titleProps: TextProps;
2380
+ contentProps: TextProps;
2381
+ }) => React.ReactNode);
2376
2382
  /**
2377
2383
  * Кастомный футер.
2378
2384
  *
@@ -2430,9 +2436,9 @@ declare type PopoverComponentProps = PopoverComponentBaseProps & Omit<React.Comp
2430
2436
 
2431
2437
  declare const PopoverComponent: React.ForwardRefExoticComponent<PopoverComponentProps>;
2432
2438
 
2433
- declare type Size = 's' | 'xl' | 'l' | 'm' | 'xs';
2434
- declare type Layout = 'vertical' | 'horizontal';
2435
- interface PopoverBaseProps extends ResponsiveSizeProps<Size>, ResponsiveLayoutProps<Layout> {
2439
+ declare type Size$2 = 's' | 'xl' | 'l' | 'm' | 'xs';
2440
+ declare type Layout$2 = 'vertical' | 'horizontal';
2441
+ interface PopoverBaseProps extends ResponsiveSizeProps<Size$2>, ResponsiveLayoutProps<Layout$2> {
2436
2442
  /**
2437
2443
  * Кастомные цвета.
2438
2444
  *
@@ -2572,7 +2578,10 @@ interface PopoverBaseProps extends ResponsiveSizeProps<Size>, ResponsiveLayoutPr
2572
2578
  *
2573
2579
  * @slot
2574
2580
  * @default undefined */
2575
- header?: React.ReactNode;
2581
+ header?: React.ReactNode | ((headerProps: {
2582
+ badgeProps: BadgeProps;
2583
+ captionProps: TextProps;
2584
+ }) => React.ReactNode);
2576
2585
  /**
2577
2586
  * Заголовок.
2578
2587
  *
@@ -2594,7 +2603,10 @@ interface PopoverBaseProps extends ResponsiveSizeProps<Size>, ResponsiveLayoutPr
2594
2603
  *
2595
2604
  * @slot
2596
2605
  * @default undefined */
2597
- body?: React.ReactNode;
2606
+ body?: React.ReactNode | ((bodyProps: {
2607
+ titleProps: TextProps;
2608
+ contentProps: TextProps;
2609
+ }) => React.ReactNode);
2598
2610
  /**
2599
2611
  * Кастомный футер.
2600
2612
  *
@@ -2642,43 +2654,43 @@ interface PopoverBaseProps extends ResponsiveSizeProps<Size>, ResponsiveLayoutPr
2642
2654
  *
2643
2655
  * @general
2644
2656
  * @default 's' */
2645
- size?: Size | [DESKTOP: Size, TABLET: Size, MOBILE: Size] | [XL: Size, L: Size, M: Size, S: Size, XS: Size, XXS: Size];
2657
+ size?: Size$2 | [DESKTOP: Size$2, TABLET: Size$2, MOBILE: Size$2] | [XL: Size$2, L: Size$2, M: Size$2, S: Size$2, XS: Size$2, XXS: Size$2];
2646
2658
  /**
2647
2659
  * Размер для XXS брейкпоинта.
2648
2660
  *
2649
2661
  * @default undefined */
2650
- sizeXXS?: Size;
2662
+ sizeXXS?: Size$2;
2651
2663
  /**
2652
2664
  * Размер для XS брейкпоинта.
2653
2665
  *
2654
2666
  * @default undefined */
2655
- sizeXS?: Size;
2667
+ sizeXS?: Size$2;
2656
2668
  /**
2657
2669
  * Размер для S брейкпоинта.
2658
2670
  *
2659
2671
  * @default undefined */
2660
- sizeS?: Size;
2672
+ sizeS?: Size$2;
2661
2673
  /**
2662
2674
  * Размер для M брейкпоинта.
2663
2675
  *
2664
2676
  * @default undefined */
2665
- sizeM?: Size;
2677
+ sizeM?: Size$2;
2666
2678
  /**
2667
2679
  * Размер для L брейкпоинта.
2668
2680
  *
2669
2681
  * @default undefined */
2670
- sizeL?: Size;
2682
+ sizeL?: Size$2;
2671
2683
  /**
2672
2684
  * Размер для XL брейкпоинта.
2673
2685
  *
2674
2686
  * @default undefined */
2675
- sizeXL?: Size;
2687
+ sizeXL?: Size$2;
2676
2688
  /**
2677
2689
  * Модификация размеров.
2678
2690
  *
2679
2691
  * @general
2680
2692
  * @default undefined */
2681
- sizes?: Partial<Record<Size, React.CSSProperties>>;
2693
+ sizes?: Partial<Record<Size$2, React.CSSProperties>>;
2682
2694
  /**
2683
2695
  * Вариант шаблона лейаута.
2684
2696
  *
@@ -2686,37 +2698,37 @@ interface PopoverBaseProps extends ResponsiveSizeProps<Size>, ResponsiveLayoutPr
2686
2698
  *
2687
2699
  * @general
2688
2700
  * @default 'vertical' */
2689
- layout?: Layout | [DESKTOP: Layout, TABLET: Layout, MOBILE: Layout] | [XL: Layout, L: Layout, M: Layout, S: Layout, XS: Layout, XXS: Layout];
2701
+ layout?: Layout$2 | [DESKTOP: Layout$2, TABLET: Layout$2, MOBILE: Layout$2] | [XL: Layout$2, L: Layout$2, M: Layout$2, S: Layout$2, XS: Layout$2, XXS: Layout$2];
2690
2702
  /**
2691
2703
  * Лейаут для XXS брейкпоинта.
2692
2704
  *
2693
2705
  * @default undefined */
2694
- layoutXXS?: Layout;
2706
+ layoutXXS?: Layout$2;
2695
2707
  /**
2696
2708
  * Лейаут для XS брейкпоинта.
2697
2709
  *
2698
2710
  * @default undefined */
2699
- layoutXS?: Layout;
2711
+ layoutXS?: Layout$2;
2700
2712
  /**
2701
2713
  * Лейаут для S брейкпоинта.
2702
2714
  *
2703
2715
  * @default undefined */
2704
- layoutS?: Layout;
2716
+ layoutS?: Layout$2;
2705
2717
  /**
2706
2718
  * Лейаут для M брейкпоинта.
2707
2719
  *
2708
2720
  * @default undefined */
2709
- layoutM?: Layout;
2721
+ layoutM?: Layout$2;
2710
2722
  /**
2711
2723
  * Лейаут для L брейкпоинта.
2712
2724
  *
2713
2725
  * @default undefined */
2714
- layoutL?: Layout;
2726
+ layoutL?: Layout$2;
2715
2727
  /**
2716
2728
  * Лейаут для XL брейкпоинта.
2717
2729
  *
2718
2730
  * @default undefined */
2719
- layoutXL?: Layout;
2731
+ layoutXL?: Layout$2;
2720
2732
  /**
2721
2733
  * Кастомный рутовый блок.
2722
2734
  *
@@ -2804,7 +2816,7 @@ declare type ListItemPalette = {
2804
2816
  backgroundColorHover: CSSColor;
2805
2817
  mediaPlaceholderColor: CSSColor;
2806
2818
  };
2807
- interface ListItemProps extends ResponsiveSizeProps<Size$2, SizeValue>, ResponsiveMarginProps, Omit<React.HTMLAttributes<HTMLElement>, 'children' | 'title'>, Omit<React.ButtonHTMLAttributes<HTMLElement>, 'children' | 'title' | 'type'>, Omit<React.AnchorHTMLAttributes<HTMLElement>, 'children' | 'title' | 'type' | 'media'> {
2819
+ interface ListItemProps extends ResponsiveSizeProps<Size$4, SizeValue>, ResponsiveMarginProps, Omit<React.HTMLAttributes<HTMLElement>, 'children' | 'title'>, Omit<React.ButtonHTMLAttributes<HTMLElement>, 'children' | 'title' | 'type'>, Omit<React.AnchorHTMLAttributes<HTMLElement>, 'children' | 'title' | 'type' | 'media'> {
2808
2820
  /** Root node type */
2809
2821
  as?: React.ElementType;
2810
2822
  /** Main text content or render function */
@@ -2882,7 +2894,7 @@ declare type IndicatorPalette = {
2882
2894
  backgroundColor: CSSColor;
2883
2895
  shadowColor: CSSColor;
2884
2896
  };
2885
- interface IndicatorProps extends ResponsiveSizeProps<Size$2, SizeValue>, ResponsiveMarginProps, React.ComponentPropsWithRef<'span'> {
2897
+ interface IndicatorProps extends ResponsiveSizeProps<Size$4, SizeValue>, ResponsiveMarginProps, React.ComponentPropsWithRef<'span'> {
2886
2898
  /** Custom colors */
2887
2899
  palette?: Partial<Record<keyof IndicatorPalette, Color>>;
2888
2900
  /** Text content */
@@ -2927,7 +2939,7 @@ declare type AvatarPalette = {
2927
2939
  shadowColor: CSSColor;
2928
2940
  };
2929
2941
  declare type AvatarSize = SizeValue | 'sm';
2930
- interface AvatarProps extends ResponsiveSizeProps<Size$2, AvatarSize>, ResponsiveMarginProps,
2942
+ interface AvatarProps extends ResponsiveSizeProps<Size$4, AvatarSize>, ResponsiveMarginProps,
2931
2943
  /** @deprecated Use palette */
2932
2944
  ColorProperty<'color'>, Omit<React.ComponentPropsWithRef<'span'>, 'color'> {
2933
2945
  /** UI: brand (v3), or default (v2) */
@@ -3238,152 +3250,181 @@ declare const Menu: React.ForwardRefExoticComponent<MenuProps> & {
3238
3250
  Divider: typeof MenuDivider;
3239
3251
  };
3240
3252
 
3241
- declare type SkeletonPalette = {
3242
- color: CSSColor;
3243
- gradientColor: CSSColor;
3244
- gradientHighlightColor: CSSColor;
3245
- };
3246
- interface SkeletonProps extends ResponsiveMarginProps, React.ComponentPropsWithRef<'div'> {
3247
- /** Element to infer sizing */
3248
- children?: React.ReactNode;
3249
- /** Custom colors */
3250
- palette?: Partial<Record<keyof SkeletonPalette, Color>>;
3251
- /** Display 'inline-block' */
3252
- inline?: boolean;
3253
- /** Root border-radius: 50% */
3254
- round?: boolean;
3255
- /** Root border-radius */
3256
- borderRadius?: string | number;
3257
- /** Root width */
3258
- width?: string | number;
3259
- /** Root height */
3260
- height?: string | number;
3261
- /** Value (ms) to control animation speed */
3262
- animationDuration?: number;
3263
- /** Delay to animation start (ms) to avoid flicker at fast connection */
3264
- animationDelay?: number;
3265
- /** Appearance variant */
3266
- primary?: boolean;
3267
- /** Appearance variant */
3268
- secondary?: boolean;
3269
- /** Appearance variant */
3270
- onColored?: boolean;
3271
- /** Root node type */
3272
- as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'span';
3273
- }
3274
-
3275
- /**
3276
- *
3277
- * Component accepts all \<div\> attributes.
3278
- *
3279
- * Responsive "margin" props are supported.
3280
- *
3281
- * Exposed "ref" attached to root node.
3282
- *
3283
- * See full [SkeletonProps](https://github.com/foxford/ui/blob/master/src/components/Skeleton/types.ts)
3284
- */
3285
- declare const Skeleton: React.ForwardRefExoticComponent<SkeletonProps>;
3286
-
3287
- declare type DialogComponentCommonSize = 'xxl' | 'xl' | 'l' | 'm' | 's' | 'xs';
3288
- declare type DialogComponentSize = DialogComponentCommonSize | 'xxl-landscape' | 'xl-landscape' | 'l-landscape';
3253
+ declare type Size$1 = 'xxl' | 'xl' | 'l' | 'm' | 's' | 'xs';
3254
+ declare type Layout$1 = 'vertical' | 'horizontal' | 'vertical-reverse' | 'horizontal-reverse';
3289
3255
  declare type DialogComponentPalette = {
3290
3256
  color: CSSColor;
3291
3257
  backgroundColor: CSSColor;
3292
3258
  shadowColor: CSSColor;
3293
3259
  };
3294
- interface DialogComponentProps extends ResponsiveSizeProps<DialogComponentSize>, Omit<React.ComponentPropsWithRef<'div'>, 'children' | 'title' | 'draggable'> {
3295
- /** Текст над заголовком диалога */
3296
- caption?: React.ReactNode;
3297
- /** Пропсы для типографики текста над заголовком */
3298
- captionProps?: Partial<TextProps>;
3299
- /** Класс для элемента с бекграундом диалога */
3260
+ interface DialogComponentBaseProps extends ResponsiveSizeProps<Size$1>, ResponsiveLayoutProps<Layout$1> {
3261
+ /**
3262
+ * Кнопка закрытия.
3263
+ *
3264
+ * @default undefined */
3265
+ closeButton?: React.ReactNode | ((closeButtonProps: IconButtonProps) => React.ReactNode);
3266
+ /**
3267
+ * Текст над заголовком.
3268
+ *
3269
+ * Если передана строка или число используется встроенная типографика.
3270
+ *
3271
+ * @default undefined */
3272
+ caption?: React.ReactNode | ((captionProps: TextProps) => React.ReactNode);
3273
+ /**
3274
+ * Текст заголовка.
3275
+ *
3276
+ * Если передана строка или число используется встроенная типографика.
3277
+ *
3278
+ * @default undefined */
3279
+ title?: React.ReactNode | ((titleProps: TextProps) => React.ReactNode);
3280
+ /**
3281
+ * Текст подзаголовка.
3282
+ *
3283
+ * Если передана строка или число используется встроенная типографика.
3284
+ *
3285
+ * @default undefined */
3286
+ subtitle?: React.ReactNode | ((subtitleProps: TextProps) => React.ReactNode);
3287
+ /**
3288
+ * Контент.
3289
+ *
3290
+ * @default undefined */
3291
+ children?: React.ReactNode;
3292
+ /**
3293
+ * Дополнительные элементы с позицией относительно рута диалога.
3294
+ *
3295
+ * @default undefined */
3296
+ floats?: React.ReactNode;
3297
+ /**
3298
+ * Кастомный блок с медиа.
3299
+ *
3300
+ * Для корректного отображения в горизонтальном лейауте у рута должна быть определена высота.
3301
+ *
3302
+ * @default undefined */
3303
+ media?: React.ReactNode;
3304
+ /**
3305
+ * Кастомный блок с основным контентом.
3306
+ *
3307
+ * @default undefined */
3308
+ body?: React.ReactNode | ((bodyProps: {
3309
+ captionProps: TextProps;
3310
+ titleProps: TextProps;
3311
+ subtitleProps: TextProps;
3312
+ }) => React.ReactNode);
3313
+ /**
3314
+ * Картинка для вертикального шаблона лейаута.
3315
+ *
3316
+ * Ожидаемое соотношение сторон 3:1.
3317
+ *
3318
+ * @default undefined */
3319
+ imgSrcVertical?: string;
3320
+ /**
3321
+ * Картинка для горизонтального шаблона лейаута.
3322
+ *
3323
+ * Ожидаемое соотношение сторон 5:7.
3324
+ *
3325
+ * Для корректного отображения у рута должна быть определена высота.
3326
+ *
3327
+ * @default undefined */
3328
+ imgSrcHorizontal?: string;
3329
+ /**
3330
+ * Индикатор прогресса.
3331
+ *
3332
+ * @default undefined */
3333
+ progressLine?: React.ReactNode | ((progressLineProps: ProgressLineProps) => React.ReactNode);
3334
+ /**
3335
+ * Кастомный футер.
3336
+ *
3337
+ * @default undefined */
3338
+ footer?: React.ReactNode;
3339
+ /**
3340
+ * Включить скролл контента.
3341
+ *
3342
+ * @default false */
3343
+ scrollable?: boolean;
3344
+ /**
3345
+ * Включить эффект фейдинга при скролле контента.
3346
+ *
3347
+ * @default false */
3348
+ scrollFading?: boolean;
3349
+ /**
3350
+ * Класс для элемента с бекграундом диалога.
3351
+ *
3352
+ * @default undefined */
3300
3353
  backgroundClassName?: string;
3301
- /** Основной контент или функция для рендера основного контента (аргументом получает текущие пропсы размеров) */
3302
- children?: React.ReactNode | ((sizeProps: Pick<ResponsiveSizeProps<DialogComponentCommonSize>, 'size' | 'sizeXXS' | 'sizeXS' | 'sizeS' | 'sizeM' | 'sizeL' | 'sizeXL'>) => React.ReactNode);
3303
3354
  /**
3304
- * Пропсы для кнопки действия в правом верхнем углу диалога (дефолт иконка close).
3305
- * Для рендера кнопки нужно передать iconButtonProps.onClick
3306
- */
3307
- iconButtonProps?: Partial<IconButtonProps>;
3308
- /** Функция для рендера контролов диалога (аргументом получает текущие пропсы размеров) */
3309
- controls?: (sizeProps: Pick<ResponsiveSizeProps<DialogComponentCommonSize>, 'size' | 'sizeXXS' | 'sizeXS' | 'sizeS' | 'sizeM' | 'sizeL' | 'sizeXL'>) => React.ReactNode;
3310
- /** Рендер области для захвата окна для перетаскивания */
3355
+ * Рендер области для захвата окна для перетаскивания.
3356
+ *
3357
+ * @default false */
3311
3358
  draggable?: boolean;
3312
- /** Диалог находится в состоянии перетаскивания (использование визуальной индикации) */
3359
+ /**
3360
+ * Индикация того, что диалог находится в состоянии перетаскивания.
3361
+ *
3362
+ * @default false */
3313
3363
  dragging?: boolean;
3314
- /** Пропсы для иконки в области захвата для перетаскивания */
3315
- draggingIconProps?: Partial<IconProps>;
3316
- /** Вариант внешнего вида со скошенным верхним сегментом */
3364
+ /**
3365
+ * Внешний вид со скошенным верхним сегментом.
3366
+ *
3367
+ * @default false */
3317
3368
  fancy?: boolean;
3318
- /** Функция для рендера дополнительных элементов с позицией относительно рута диалога (аргументом получает текущие пропсы размеров) */
3319
- floats?: (sizeProps: Pick<ResponsiveSizeProps<DialogComponentCommonSize>, 'size' | 'sizeXXS' | 'sizeXS' | 'sizeS' | 'sizeM' | 'sizeL' | 'sizeXL'>) => React.ReactNode;
3320
- /** Рендер картинки справа в горизонтальной ориентации (дефолт слева) */
3321
- imgLandscapePositionRight?: boolean;
3322
- /** Рендер картинки снизу в вертикальной ориентации (дефолт сверху) */
3323
- imgPortraitPositionBottom?: boolean;
3324
- /**
3325
- * Пути картинок в зависимости от ориентации окна диалога.
3326
- */
3327
- imgSrc?: {
3328
- portrait?: string;
3329
- landscape?: string;
3330
- };
3331
3369
  /**
3332
- * Cоотношение сторон картинок.
3333
- * Дефолтное соотношение сторон: 3:1 portrait, 5:7 landscape
3334
- */
3335
- imgAspectRatio?: {
3336
- portrait?: '1:1' | '3:1' | '5:2';
3337
- landscape?: '1:1' | '4:5' | '5:7';
3338
- };
3339
- /** Использование скелетонов вместо реального контента */
3370
+ * Использование скелетонов вместо реального контента.
3371
+ *
3372
+ * @default false */
3340
3373
  loading?: boolean;
3341
- /** Колбек будет передан в onPointerDown элемента области захвата */
3342
- onGrab?: React.PointerEventHandler<HTMLElement>;
3343
- /** Колбек будет передан в onKeyDown элемента с иконкой в области захвата */
3344
- onNudge?: React.KeyboardEventHandler<HTMLElement>;
3345
- /** Кастомные цвета */
3374
+ /**
3375
+ * Кастомные цвета.
3376
+ *
3377
+ * @default undefined */
3346
3378
  palette?: Partial<Record<keyof DialogComponentPalette, Color>>;
3347
- /** Использование индикатора прогресса */
3348
- progressLine?: boolean;
3349
- /** Пропсы для индикатора прогресса */
3350
- progressLineProps?: Partial<ProgressLineProps>;
3351
- /** Пропсы для скелетонов */
3352
- skeletonProps?: Partial<SkeletonProps>;
3353
- /** Отключить эффект фейдинга при скролле контента */
3354
- scrollFadingDisabled?: boolean;
3355
- /** Подзаголовок диалога */
3356
- subtitle?: React.ReactNode;
3357
- /** Пропсы для типографики подзаголовка */
3358
- subtitleProps?: Partial<TextProps>;
3359
- /** Заголовок диалога */
3360
- title?: React.ReactNode;
3361
- /** Пропсы типографики для заголовка */
3362
- titleProps?: Partial<TextProps>;
3363
- /** z-index рутового элемента */
3379
+ /**
3380
+ * z-index рутового элемента.
3381
+ *
3382
+ * @default undefined */
3364
3383
  zIndex?: number;
3384
+ /**
3385
+ * Кастомный рутовый блок.
3386
+ *
3387
+ * Использование компонента только как контейнер.
3388
+ *
3389
+ * @default undefined */
3390
+ root?: React.ReactNode | ((rootProps: {
3391
+ captionProps: TextProps;
3392
+ titleProps: TextProps;
3393
+ subtitleProps: TextProps;
3394
+ closeButtonProps: IconButtonProps;
3395
+ progressLineProps: ProgressLineProps;
3396
+ onGrab?: React.PointerEventHandler<HTMLElement>;
3397
+ onNudge?: React.KeyboardEventHandler<HTMLElement>;
3398
+ }) => React.ReactNode);
3399
+ /**
3400
+ * Колбек будет передан в onPointerDown элемента области захвата.
3401
+ *
3402
+ * @default undefined */
3403
+ onGrab?: React.PointerEventHandler<HTMLElement>;
3404
+ /**
3405
+ * Колбек будет передан в onKeyDown элемента с иконкой в области захвата.
3406
+ *
3407
+ * @default undefined */
3408
+ onNudge?: React.KeyboardEventHandler<HTMLElement>;
3365
3409
  }
3410
+ declare type DialogComponentProps = DialogComponentBaseProps & Omit<React.ComponentPropsWithRef<'div'>, keyof DialogComponentBaseProps>;
3366
3411
 
3367
- /**
3368
- *
3369
- * Компонент поддерживает все атрибуты \<div\> элемента.
3370
- *
3371
- * Можно передать "ref", который будет ассоциирован с рутовым элементом.
3372
- *
3373
- * Поддерживаются пропсы определения размеров в зависимости от ширины вьюпорта.
3374
- *
3375
- * Полный интерфейс можно посмотреть [тут](https://github.com/foxford/ui/blob/master/src/components/DialogComponent/types.ts).
3376
- */
3377
3412
  declare const DialogComponent: React.ForwardRefExoticComponent<DialogComponentProps>;
3378
3413
 
3379
- declare type DialogPosition = 'center' | 'top-center' | 'bottom-left' | 'bottom-right' | 'bottom-center';
3380
- interface DialogProps extends ResponsiveSizeProps<DialogComponentSize>, ResponsivePositionProps<DialogPosition>, Omit<React.ComponentPropsWithRef<'div'>, 'children' | 'className' | 'title' | 'draggable'> {
3414
+ declare type Size = 'xxl' | 'xl' | 'l' | 'm' | 's' | 'xs';
3415
+ declare type Layout = 'vertical' | 'horizontal' | 'vertical-reverse' | 'horizontal-reverse';
3416
+ declare type Position = 'center' | 'top-center' | 'bottom-left' | 'bottom-right' | 'bottom-center';
3417
+ interface DialogBaseProps extends ResponsiveSizeProps<Size>, ResponsiveLayoutProps<Layout>, ResponsivePositionProps<Position> {
3381
3418
  /**
3382
3419
  * Открыто диалоговое окно.
3420
+ *
3421
+ * @floating
3383
3422
  * @default undefined */
3384
3423
  open: boolean;
3385
3424
  /**
3386
3425
  * Колбек, который будет вызван после открытия.
3426
+ *
3427
+ * @floating
3387
3428
  * @default undefined */
3388
3429
  onAfterOpen?: (refs?: {
3389
3430
  overlayEl?: Element;
@@ -3391,14 +3432,19 @@ interface DialogProps extends ResponsiveSizeProps<DialogComponentSize>, Responsi
3391
3432
  }) => void;
3392
3433
  /**
3393
3434
  * Колбек, который будет вызван после закрытия.
3435
+ *
3436
+ * @floating
3394
3437
  * @default undefined */
3395
3438
  onAfterClose?: () => void;
3396
3439
  /**
3397
- * Колбек, который будет вызван по клику на оверлей или нажатию "Esc".
3440
+ * Колбек, который будет вызван по клику на оверлей или нажатию Esc.
3441
+ *
3442
+ * @floating
3398
3443
  * @default undefined */
3399
3444
  onRequestClose?: (evt: React.MouseEvent | React.KeyboardEvent) => void;
3400
3445
  /**
3401
3446
  * Класс (или классы) для диалогового окна.
3447
+ *
3402
3448
  * @default undefined */
3403
3449
  className?: string | {
3404
3450
  base: string;
@@ -3407,38 +3453,52 @@ interface DialogProps extends ResponsiveSizeProps<DialogComponentSize>, Responsi
3407
3453
  };
3408
3454
  /**
3409
3455
  * Задержка перед фактическим закрытием (мс).
3456
+ *
3457
+ * @floating
3410
3458
  * @default 0 */
3411
3459
  closeTimeoutMS?: number;
3412
3460
  /**
3413
3461
  * Класс для элемента портала диалога.
3462
+ *
3414
3463
  * @default "ReactModalPortal" */
3415
3464
  portalClassName?: string;
3416
3465
  /**
3417
3466
  * Класс для body при открытом диалоговом окне.
3467
+ *
3418
3468
  * @default "ReactModal__Body--open" */
3419
3469
  bodyOpenClassName?: string;
3420
3470
  /**
3421
3471
  * Класс для html при открытом диалоговом окне.
3472
+ *
3422
3473
  * @default null */
3423
3474
  htmlOpenClassName?: string;
3424
3475
  /**
3425
- * Вызов `onRequestClose` при клике на оверлей.
3476
+ * Вызов onRequestClose при клике на оверлей.
3477
+ *
3478
+ * @floating
3426
3479
  * @default true */
3427
3480
  shouldCloseOnOverlayClick?: boolean;
3428
3481
  /**
3429
- * Вызов `onRequestClose` при нажатии "Esc".
3482
+ * Вызов onRequestClose при нажатии Esc.
3483
+ *
3484
+ * @floating
3430
3485
  * @default true */
3431
3486
  shouldCloseOnEsc?: boolean;
3432
3487
  /**
3433
3488
  * Возврат фокуса на элемент, который был в фокусе до открытия диалога.
3489
+ *
3490
+ * @floating
3434
3491
  * @default true */
3435
3492
  shouldReturnFocusAfterClose?: boolean;
3436
3493
  /**
3437
3494
  * После закрытия не скроллить до элемента, который имел фокус до открытия.
3495
+ *
3496
+ * @floating
3438
3497
  * @default false */
3439
3498
  preventScrollAfterClose?: boolean;
3440
3499
  /**
3441
3500
  * Класс (или классы) для оверлея.
3501
+ *
3442
3502
  * @default undefined */
3443
3503
  overlayClassName?: string | {
3444
3504
  base: string;
@@ -3448,105 +3508,159 @@ interface DialogProps extends ResponsiveSizeProps<DialogComponentSize>, Responsi
3448
3508
  /**
3449
3509
  * Колбек, который должен вернуть элемент для рендера диалога.
3450
3510
  *
3451
- * По дефолту будет использован `document.body`.
3511
+ * По дефолту будет использован document.body.
3512
+ *
3513
+ * @floating
3452
3514
  * @default undefined */
3453
3515
  parentSelector?: () => HTMLElement;
3454
3516
  /**
3455
3517
  * Колбек, который получает аргументом элемент оверлея.
3518
+ *
3456
3519
  * @default undefined */
3457
3520
  overlayRef?: (ref: HTMLElement | null) => void;
3458
3521
  /**
3459
3522
  * Колбек, который получает аргументом элемент рута диалогового окна.
3523
+ *
3460
3524
  * @default undefined */
3461
3525
  contentRef?: (ref: HTMLElement | null) => void;
3462
3526
  /**
3463
3527
  * Класс для элемента с бекграундом диалога.
3528
+ *
3464
3529
  * @default undefined */
3465
3530
  backgroundClassName?: string;
3531
+ /**
3532
+ * Кнопка закрытия.
3533
+ *
3534
+ * @slot
3535
+ * @default undefined */
3536
+ closeButton?: React.ReactNode | ((closeButtonProps: IconButtonProps) => React.ReactNode);
3466
3537
  /**
3467
3538
  * Текст над заголовком диалога.
3539
+ *
3540
+ * Если передана строка или число используется встроенная типографика.
3541
+ *
3542
+ * @slot
3468
3543
  * @default undefined */
3469
- caption?: React.ReactNode;
3544
+ caption?: React.ReactNode | ((captionProps: TextProps) => React.ReactNode);
3470
3545
  /**
3471
- * Пропсы для типографики текста над заголовком.
3472
- * @default {} */
3473
- captionProps?: Partial<TextProps>;
3546
+ * Текст заголовка.
3547
+ *
3548
+ * Если передана строка или число используется встроенная типографика.
3549
+ *
3550
+ * @slot
3551
+ * @default undefined */
3552
+ title?: React.ReactNode | ((titleProps: TextProps) => React.ReactNode);
3474
3553
  /**
3475
- * Основной контент диалогового окна.
3554
+ * Текст подзаголовка.
3476
3555
  *
3477
- * Если используется функция, то в аргументе будут переданы пропсы размеров.
3556
+ * Если передана строка или число используется встроенная типографика.
3557
+ *
3558
+ * @slot
3478
3559
  * @default undefined */
3479
- children?: React.ReactNode | ((sizeProps: Pick<ResponsiveSizeProps<DialogComponentCommonSize>, 'size' | 'sizeXXS' | 'sizeXS' | 'sizeS' | 'sizeM' | 'sizeL' | 'sizeXL'>) => React.ReactNode);
3560
+ subtitle?: React.ReactNode | ((subtitleProps: TextProps) => React.ReactNode);
3480
3561
  /**
3481
- * Пропсы для кнопки действия в правом верхнем углу диалога.
3562
+ * Контент.
3482
3563
  *
3483
- * Для рендера кнопки нужно передать `iconButtonProps.onClick`.
3484
- * @default {} */
3485
- iconButtonProps?: Partial<IconButtonProps>;
3564
+ * @slot
3565
+ * @default undefined */
3566
+ children?: React.ReactNode;
3486
3567
  /**
3487
- * Функция для рендера контролов диалога.
3568
+ * Дополнительные элементы с позицией относительно рута диалога.
3488
3569
  *
3489
- * В аргументе будут переданы пропсы размеров.
3570
+ * @slot
3490
3571
  * @default undefined */
3491
- controls?: (sizeProps: Pick<ResponsiveSizeProps<DialogComponentCommonSize>, 'size' | 'sizeXXS' | 'sizeXS' | 'sizeS' | 'sizeM' | 'sizeL' | 'sizeXL'>) => React.ReactNode;
3572
+ floats?: React.ReactNode;
3492
3573
  /**
3493
- * Диалоговое окно можно перетаскивать.
3574
+ * Кастомный блок с медиа.
3494
3575
  *
3495
- * В этом случае оверлей не используется и диалог рендерит область захвата.
3576
+ * Для корректного отображения в горизонтальном лейауте у рута должна быть определена высота.
3577
+ *
3578
+ * @slot
3496
3579
  * @default undefined */
3497
- draggable?: boolean;
3580
+ media?: React.ReactNode;
3498
3581
  /**
3499
- * Пропсы для иконки в области захвата для перетаскивания.
3500
- * @default {} */
3501
- draggingIconProps?: Partial<IconProps>;
3582
+ * Кастомный блок с основным контентом.
3583
+ *
3584
+ * @slot
3585
+ * @default undefined */
3586
+ body?: React.ReactNode;
3502
3587
  /**
3503
- * Вариант внешнего вида со скошенным верхним сегментом.
3588
+ * Картинка для вертикального шаблона лейаута.
3589
+ *
3590
+ * Ожидаемое соотношение сторон 3:1.
3591
+ *
3592
+ * @general
3504
3593
  * @default undefined */
3505
- fancy?: boolean;
3594
+ imgSrcVertical?: string;
3506
3595
  /**
3507
- * Функция для рендера дополнительных элементов с позицией относительно рута диалога.
3596
+ * Картинка для горизонтального шаблона лейаута.
3597
+ *
3598
+ * Ожидаемое соотношение сторон 5:7.
3508
3599
  *
3509
- * Aргументом получает текущие пропсы размеров.
3600
+ * Для корректного отображения у рута должна быть определена высота.
3601
+ *
3602
+ * @general
3510
3603
  * @default undefined */
3511
- floats?: (sizeProps: Pick<ResponsiveSizeProps<DialogComponentCommonSize>, 'size' | 'sizeXXS' | 'sizeXS' | 'sizeS' | 'sizeM' | 'sizeL' | 'sizeXL'>) => React.ReactNode;
3604
+ imgSrcHorizontal?: string;
3512
3605
  /**
3513
- * Рендер картинки справа в горизонтальной ориентации (дефолт слева).
3606
+ * Индикатор прогресса.
3607
+ *
3608
+ * @slot
3514
3609
  * @default undefined */
3515
- imgLandscapePositionRight?: boolean;
3610
+ progressLine?: React.ReactNode | ((progressLineProps: ProgressLineProps) => React.ReactNode);
3516
3611
  /**
3517
- * Рендер картинки снизу в вертикальной ориентации (дефолт сверху).
3612
+ * Кастомный футер.
3613
+ *
3614
+ * @slot
3518
3615
  * @default undefined */
3519
- imgPortraitPositionBottom?: boolean;
3616
+ footer?: React.ReactNode;
3520
3617
  /**
3521
- * Пути картинок в зависимости от ориентации окна диалога.
3522
- * @default {} */
3523
- imgSrc?: {
3524
- portrait?: string;
3525
- landscape?: string;
3526
- };
3618
+ * Включить скролл контента.
3619
+ *
3620
+ * @general
3621
+ * @default false */
3622
+ scrollable?: boolean;
3527
3623
  /**
3528
- * Cоотношение сторон картинок.
3624
+ * Включить эффект фейдинга при скролле контента.
3529
3625
  *
3530
- * Дефолтное соотношение сторон: 3:1 portrait, 5:7 landscape.
3531
- * @default {} */
3532
- imgAspectRatio?: {
3533
- portrait?: '1:1' | '3:1' | '5:2';
3534
- landscape?: '1:1' | '4:5' | '5:7';
3535
- };
3626
+ * @default false */
3627
+ scrollFading?: boolean;
3628
+ /**
3629
+ * Диалоговое окно можно перетаскивать.
3630
+ *
3631
+ * В этом случае оверлей не используется и диалог рендерит область захвата.
3632
+ *
3633
+ * @floating
3634
+ * @default undefined */
3635
+ draggable?: boolean;
3636
+ /**
3637
+ * Внешний вид со скошенным верхним сегментом.
3638
+ *
3639
+ * @general
3640
+ * @default undefined */
3641
+ fancy?: boolean;
3536
3642
  /**
3537
3643
  * Использование скелетонов вместо реального контента.
3644
+ *
3645
+ * @general
3538
3646
  * @default undefined */
3539
3647
  loading?: boolean;
3540
3648
  /**
3541
3649
  * Применение стилей размытия для оверлея.
3650
+ *
3651
+ * @floating
3542
3652
  * @default undefined */
3543
3653
  overlayBlur?: boolean;
3544
3654
  /**
3545
3655
  * Оверлей не используется.
3656
+ *
3657
+ * @floating
3546
3658
  * @default undefined */
3547
3659
  overlayDisabled?: boolean;
3548
3660
  /**
3549
3661
  * Кастомные цвета.
3662
+ *
3663
+ * @general
3550
3664
  * @default {} */
3551
3665
  palette?: {
3552
3666
  color?: Color;
@@ -3555,55 +3669,160 @@ interface DialogProps extends ResponsiveSizeProps<DialogComponentSize>, Responsi
3555
3669
  overlayBackgroundColor?: Color;
3556
3670
  };
3557
3671
  /**
3558
- * Использование индикатора прогресса.
3672
+ * z-index оверлея или рутового элемента, если оверлей не используется.
3673
+ *
3559
3674
  * @default undefined */
3560
- progressLine?: boolean;
3675
+ zIndex?: number;
3561
3676
  /**
3562
- * Пропсы для индикатора прогресса.
3563
- * @default {} */
3564
- progressLineProps?: Partial<ProgressLineProps>;
3677
+ * Кастомный рутовый блок.
3678
+ *
3679
+ * Использование компонента только как контейнера.
3680
+ *
3681
+ * @slot
3682
+ * @default undefined */
3683
+ root?: React.ReactNode | ((rootProps: {
3684
+ captionProps: TextProps;
3685
+ titleProps: TextProps;
3686
+ subtitleProps: TextProps;
3687
+ closeButtonProps: IconButtonProps;
3688
+ progressLineProps: ProgressLineProps;
3689
+ onGrab?: React.PointerEventHandler<HTMLElement>;
3690
+ onNudge?: React.KeyboardEventHandler<HTMLElement>;
3691
+ }) => React.ReactNode);
3565
3692
  /**
3566
- * Отключить эффект фейдинга при скролле контента.
3693
+ * Размер.
3694
+ *
3695
+ * Использование кортежей включает применение размеров в зависимости от ширины вьюпорта.
3696
+ *
3697
+ * @general
3698
+ * @default 's' */
3699
+ size?: Size | [DESKTOP: Size, TABLET: Size, MOBILE: Size] | [XL: Size, L: Size, M: Size, S: Size, XS: Size, XXS: Size];
3700
+ /**
3701
+ * Размер для XXS брейкпоинта.
3702
+ *
3567
3703
  * @default undefined */
3568
- scrollFadingDisabled?: boolean;
3704
+ sizeXXS?: Size;
3569
3705
  /**
3570
- * Пропсы для скелетонов.
3571
- * @default {} */
3572
- skeletonProps?: Partial<SkeletonProps>;
3706
+ * Размер для XS брейкпоинта.
3707
+ *
3708
+ * @default undefined */
3709
+ sizeXS?: Size;
3573
3710
  /**
3574
- * Подзаголовок диалога.
3711
+ * Размер для S брейкпоинта.
3712
+ *
3575
3713
  * @default undefined */
3576
- subtitle?: React.ReactNode;
3714
+ sizeS?: Size;
3577
3715
  /**
3578
- * Пропсы для типографики подзаголовка.
3579
- * @default {} */
3580
- subtitleProps?: Partial<TextProps>;
3716
+ * Размер для M брейкпоинта.
3717
+ *
3718
+ * @default undefined */
3719
+ sizeM?: Size;
3581
3720
  /**
3582
- * Заголовок диалога.
3721
+ * Размер для L брейкпоинта.
3722
+ *
3583
3723
  * @default undefined */
3584
- title?: React.ReactNode;
3724
+ sizeL?: Size;
3585
3725
  /**
3586
- * Пропсы типографики для заголовка.
3587
- * @default {} */
3588
- titleProps?: Partial<TextProps>;
3726
+ * Размер для XL брейкпоинта.
3727
+ *
3728
+ * @default undefined */
3729
+ sizeXL?: Size;
3589
3730
  /**
3590
- * z-index оверлея или рутового элемента, если оверлей не используется.
3731
+ * Модификация размеров.
3732
+ *
3733
+ * @general
3591
3734
  * @default undefined */
3592
- zIndex?: number;
3735
+ sizes?: Partial<Record<Size, React.CSSProperties>>;
3736
+ /**
3737
+ * Вариант шаблона лейаута.
3738
+ *
3739
+ * Использование кортежей включает применение шаблонов в зависимости от ширины вьюпорта.
3740
+ *
3741
+ * @general
3742
+ * @default 'vertical' */
3743
+ layout?: Layout | [DESKTOP: Layout, TABLET: Layout, MOBILE: Layout] | [XL: Layout, L: Layout, M: Layout, S: Layout, XS: Layout, XXS: Layout];
3744
+ /**
3745
+ * Лейаут для XXS брейкпоинта.
3746
+ *
3747
+ * @default undefined */
3748
+ layoutXXS?: Layout;
3749
+ /**
3750
+ * Лейаут для XS брейкпоинта.
3751
+ *
3752
+ * @default undefined */
3753
+ layoutXS?: Layout;
3754
+ /**
3755
+ * Лейаут для S брейкпоинта.
3756
+ *
3757
+ * @default undefined */
3758
+ layoutS?: Layout;
3759
+ /**
3760
+ * Лейаут для M брейкпоинта.
3761
+ *
3762
+ * @default undefined */
3763
+ layoutM?: Layout;
3764
+ /**
3765
+ * Лейаут для L брейкпоинта.
3766
+ *
3767
+ * @default undefined */
3768
+ layoutL?: Layout;
3769
+ /**
3770
+ * Лейаут для XL брейкпоинта.
3771
+ *
3772
+ * @default undefined */
3773
+ layoutXL?: Layout;
3774
+ /**
3775
+ * Позиция диалога.
3776
+ *
3777
+ * Использование кортежей включает применение позиций в зависимости от ширины вьюпорта.
3778
+ *
3779
+ * @floating
3780
+ * @default 'center' */
3781
+ position?: Position | [DESKTOP: Position, TABLET: Position, MOBILE: Position] | [XL: Position, L: Position, M: Position, S: Position, XS: Position, XXS: Position];
3782
+ /**
3783
+ * Позиция для XXS брейкпоинта.
3784
+ *
3785
+ * @default undefined */
3786
+ positionXXS?: Position;
3787
+ /**
3788
+ * Позиция для XS брейкпоинта.
3789
+ *
3790
+ * @default undefined */
3791
+ positionXS?: Position;
3792
+ /**
3793
+ * Позиция для S брейкпоинта.
3794
+ *
3795
+ * @default undefined */
3796
+ positionS?: Position;
3797
+ /**
3798
+ * Позиция для M брейкпоинта.
3799
+ *
3800
+ * @default undefined */
3801
+ positionM?: Position;
3802
+ /**
3803
+ * Позиция для L брейкпоинта.
3804
+ *
3805
+ * @default undefined */
3806
+ positionL?: Position;
3807
+ /**
3808
+ * Позиция для XL брейкпоинта.
3809
+ *
3810
+ * @default undefined */
3811
+ positionXL?: Position;
3812
+ /**
3813
+ * Модификация позиций.
3814
+ *
3815
+ * @floating
3816
+ * @default undefined */
3817
+ positions?: Partial<Record<Position, React.CSSProperties>>;
3593
3818
  }
3819
+ declare type DialogProps = DialogBaseProps & Omit<React.ComponentPropsWithRef<'div'>, keyof DialogBaseProps>;
3594
3820
 
3595
3821
  /**
3596
3822
  *
3597
- * Компонент поддерживает все атрибуты \<div\> элемента.
3598
- *
3599
- * Поддерживаются пропсы определения размеров и позиции в зависимости от ширины вьюпорта.
3600
- *
3601
- * Компонент основан на ["react-modal"](https://www.npmjs.com/package/react-modal).
3602
- *
3603
- * Получить доступ к компоненту, не подключенному к библиотеке, можно через Dialog.Component.
3604
- *
3605
- * Полный интерфейс Dialog можно посмотреть [тут](https://github.com/foxford/ui/blob/master/src/components/Dialog/types.ts), интерфейс Dialog.Component [тут](https://github.com/foxford/ui/blob/master/src/components/DialogComponent/types.ts).
3823
+ * Компонент для отображения контента поверх основного интерфейса.
3606
3824
  *
3825
+ * Поддерживаются все нативные атрибуты \<div\> элемента.
3607
3826
  */
3608
3827
  declare const Dialog: React.ForwardRefExoticComponent<DialogProps> & {
3609
3828
  Component: typeof DialogComponent;
@@ -3664,6 +3883,52 @@ interface NotificationProps extends ResponsiveSizeProps<NotificationSize>, Respo
3664
3883
  */
3665
3884
  declare const Notification: React.ForwardRefExoticComponent<NotificationProps>;
3666
3885
 
3886
+ declare type SkeletonPalette = {
3887
+ color: CSSColor;
3888
+ gradientColor: CSSColor;
3889
+ gradientHighlightColor: CSSColor;
3890
+ };
3891
+ interface SkeletonProps extends ResponsiveMarginProps, React.ComponentPropsWithRef<'div'> {
3892
+ /** Element to infer sizing */
3893
+ children?: React.ReactNode;
3894
+ /** Custom colors */
3895
+ palette?: Partial<Record<keyof SkeletonPalette, Color>>;
3896
+ /** Display 'inline-block' */
3897
+ inline?: boolean;
3898
+ /** Root border-radius: 50% */
3899
+ round?: boolean;
3900
+ /** Root border-radius */
3901
+ borderRadius?: string | number;
3902
+ /** Root width */
3903
+ width?: string | number;
3904
+ /** Root height */
3905
+ height?: string | number;
3906
+ /** Value (ms) to control animation speed */
3907
+ animationDuration?: number;
3908
+ /** Delay to animation start (ms) to avoid flicker at fast connection */
3909
+ animationDelay?: number;
3910
+ /** Appearance variant */
3911
+ primary?: boolean;
3912
+ /** Appearance variant */
3913
+ secondary?: boolean;
3914
+ /** Appearance variant */
3915
+ onColored?: boolean;
3916
+ /** Root node type */
3917
+ as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'span';
3918
+ }
3919
+
3920
+ /**
3921
+ *
3922
+ * Component accepts all \<div\> attributes.
3923
+ *
3924
+ * Responsive "margin" props are supported.
3925
+ *
3926
+ * Exposed "ref" attached to root node.
3927
+ *
3928
+ * See full [SkeletonProps](https://github.com/foxford/ui/blob/master/src/components/Skeleton/types.ts)
3929
+ */
3930
+ declare const Skeleton: React.ForwardRefExoticComponent<SkeletonProps>;
3931
+
3667
3932
  declare type AccordionSize = 'l' | 'm' | 's' | 'xs';
3668
3933
  declare type AccordionPalette = {
3669
3934
  color: CSSColor;
@@ -3921,7 +4186,7 @@ declare const useScrollMonitor: ({ target, scrollThrottleMS, scrollEndDebounceMS
3921
4186
 
3922
4187
  declare const vAlign: (vAlign: 'top' | 'middle' | 'bottom' | 'text-top' | 'text-bottom' | 'baseline') => styled_components.FlattenSimpleInterpolation;
3923
4188
 
3924
- declare function buildMediaQuery(value: number | Size$2 | 'auto' | 'initial' | 'inherit' | boolean, property: string | ((_size: number | 'auto' | 'initial' | 'inherit' | boolean, _sizing?: null | string) => FlattenSimpleInterpolation | null), screenQueryFunction: typeof screenXs, sizing: null | string, sizes?: Record<Size$2, number>): ReturnType<typeof css>;
4189
+ declare function buildMediaQuery(value: number | Size$4 | 'auto' | 'initial' | 'inherit' | boolean, property: string | ((_size: number | 'auto' | 'initial' | 'inherit' | boolean, _sizing?: null | string) => FlattenSimpleInterpolation | null), screenQueryFunction: typeof screenXs, sizing: null | string, sizes?: Record<Size$4, number>): ReturnType<typeof css>;
3925
4190
  declare const desktopFirst: (a: string, b: string) => number;
3926
4191
  declare const mobileFirst: (a: string, b: string) => number;
3927
4192
 
@@ -6044,4 +6309,4 @@ declare type AspectRatioProps = AspectRatioBaseProps & Omit<React.ComponentProps
6044
6309
  */
6045
6310
  declare const AspectRatio: React.ForwardRefExoticComponent<AspectRatioProps>;
6046
6311
 
6047
- export { Accordion, type AccordionProps, ActionBtn, type ActionBtnProps, Alert, type AlertProps, Amount, type AmountProps, Anchor, Arrow, ArrowBadge, type ArrowBadgeProps, type ArrowProps, AspectRatio, type AspectRatioProps, Avatar, type AvatarProps, Badge, type BadgeProps, type BaseProps, type Breakpoint, Button, type ButtonProps, COUNTRY_DATA, type CSSBorderStyle, type CSSColor, type CSSFontWeight, type CSSGlobalValue, type CSSUnit, type CSSVerticalAlign, CURRENCY_MAP, Checkbox, type CheckboxProps, Chip, type ChipProps, type Color, ColorNames, type ColorPaletteKey, Container, type ContainerProps, ContextMenu, type ContextMenuMultiLevelProps, type ContextMenuProps, CurrencyCodes, DEFAULT_MASK, Dialog, type DialogComponentProps, type DialogProps, Dropdown, type DropdownProps, FormLabel, type FormLabelProps, type HEX, INITIAL_MASK, Icon, IconButton, type IconButtonProps, type IconName, type IconProps, Indicator, type IndicatorProps, Input, type InputCheckboxProps, type InputMaskOptions, type InputMaskState, type InputPhoneProps, type InputProps, type InputRadioProps, type KeysOfUnion, ListItem, type ListItemProps, Menu, type MenuComponentProps, type MenuContainerProps, type MenuDividerProps, type MenuListProps, type MenuProps, Modal, type ModalProps, Notification, type NotificationProps, type Nullable, Paper, type PaperProps, type PlaygroundPropControl, type PlaygroundToolbar, Popover, type PopoverComponentProps, type PopoverProps, Progress, ProgressCircle, type ProgressCircleProps, ProgressLine, type ProgressLineProps, type ProgressProps, type ProgressSegmentedProps, type RGB, type RGBA, Radio, type RadioProps, type ResponsiveLayoutInterpolationProps, type ResponsiveLayoutProps, type ResponsivePositionProps, type ResponsivePropKey, type ResponsiveProps, type ResponsiveSizeInterpolationProps, type ResponsiveSizeProps, withThemeScrollable as Scrollable, type ScrollableProps, Section, type SectionProps, Select, type SelectProps, Separator, type SeparatorProps, type Size$2 as Size, type SizeValue, Skeleton, type SkeletonProps, Spacer, type SpacerProps, Spinner, type SpinnerProps, Switch, type SwitchProps, Switcher, type SwitcherProps, Tab, type TabProps, Tabs, type TabsProps, Tag, type TagProps, Text, type TextEllipseProps, type TextHeadingProps, type TextProps, Textarea, type TextareaProps, type Theme, type ThemeMode, type ThemeName, type ThemePreset, ThemeProvider, Tooltip, type TooltipComponentProps, type TooltipProps, type WithThemePreset, adultDarkTheme, adultLightTheme, babyDarkTheme, babyLightTheme, baseInputStyle, buildMediaQuery, color, desktopFirst, hexToRgbA, isHex, mobileFirst, motherDarkTheme, motherLightTheme, property, responsiveNamedProperty, responsiveProperty, screenL, screenM, screenMaxL, screenMaxM, screenMaxS, screenMaxXl, screenMaxXs, screenMaxXxs, screenMinL, screenMinM, screenMinS, screenMinXl, screenMinXs, screenRetina, screenS, screenXl, screenXs, teenDarkTheme, teenLightTheme, defaultTheme as theme, useClickOutside, useScrollMonitor, vAlign };
6312
+ export { Accordion, type AccordionProps, ActionBtn, type ActionBtnProps, Alert, type AlertProps, Amount, type AmountProps, Anchor, Arrow, ArrowBadge, type ArrowBadgeProps, type ArrowProps, AspectRatio, type AspectRatioProps, Avatar, type AvatarProps, Badge, type BadgeProps, type BaseProps, type Breakpoint, Button, type ButtonProps, COUNTRY_DATA, type CSSBorderStyle, type CSSColor, type CSSFontWeight, type CSSGlobalValue, type CSSUnit, type CSSVerticalAlign, CURRENCY_MAP, Checkbox, type CheckboxProps, Chip, type ChipProps, type Color, ColorNames, type ColorPaletteKey, Container, type ContainerProps, ContextMenu, type ContextMenuMultiLevelProps, type ContextMenuProps, CurrencyCodes, DEFAULT_MASK, Dialog, type DialogComponentProps, type DialogProps, Dropdown, type DropdownProps, FormLabel, type FormLabelProps, type HEX, INITIAL_MASK, Icon, IconButton, type IconButtonProps, type IconName, type IconProps, Indicator, type IndicatorProps, Input, type InputCheckboxProps, type InputMaskOptions, type InputMaskState, type InputPhoneProps, type InputProps, type InputRadioProps, type KeysOfUnion, ListItem, type ListItemProps, Menu, type MenuComponentProps, type MenuContainerProps, type MenuDividerProps, type MenuListProps, type MenuProps, Modal, type ModalProps, Notification, type NotificationProps, type Nullable, Paper, type PaperProps, type PlaygroundPropControl, type PlaygroundToolbar, Popover, type PopoverComponentProps, type PopoverProps, Progress, ProgressCircle, type ProgressCircleProps, ProgressLine, type ProgressLineProps, type ProgressProps, type ProgressSegmentedProps, type RGB, type RGBA, Radio, type RadioProps, type ResponsiveLayoutInterpolationProps, type ResponsiveLayoutProps, type ResponsivePositionProps, type ResponsivePropKey, type ResponsiveProps, type ResponsiveSizeInterpolationProps, type ResponsiveSizeProps, withThemeScrollable as Scrollable, type ScrollableProps, Section, type SectionProps, Select, type SelectProps, Separator, type SeparatorProps, type Size$4 as Size, type SizeValue, Skeleton, type SkeletonProps, Spacer, type SpacerProps, Spinner, type SpinnerProps, Switch, type SwitchProps, Switcher, type SwitcherProps, Tab, type TabProps, Tabs, type TabsProps, Tag, type TagProps, Text, type TextEllipseProps, type TextHeadingProps, type TextProps, Textarea, type TextareaProps, type Theme, type ThemeMode, type ThemeName, type ThemePreset, ThemeProvider, Tooltip, type TooltipComponentProps, type TooltipProps, type WithThemePreset, adultDarkTheme, adultLightTheme, babyDarkTheme, babyLightTheme, baseInputStyle, buildMediaQuery, color, desktopFirst, hexToRgbA, isHex, mobileFirst, motherDarkTheme, motherLightTheme, property, responsiveNamedProperty, responsiveProperty, screenL, screenM, screenMaxL, screenMaxM, screenMaxS, screenMaxXl, screenMaxXs, screenMaxXxs, screenMinL, screenMinM, screenMinS, screenMinXl, screenMinXs, screenRetina, screenS, screenXl, screenXs, teenDarkTheme, teenLightTheme, defaultTheme as theme, useClickOutside, useScrollMonitor, vAlign };