@foxford/ui 2.14.1 → 2.15.0-beta-4a3c333-20231116

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 (47) hide show
  1. package/components/Alert/utils.js.map +1 -1
  2. package/components/ArrowBadge/ArrowBadge.js +1 -1
  3. package/components/ArrowBadge/ArrowBadge.js.map +1 -1
  4. package/components/ArrowBadge/style.js +1 -1
  5. package/components/ArrowBadge/style.js.map +1 -1
  6. package/components/Badge/Badge.js.map +1 -1
  7. package/components/Button/Button.js +1 -1
  8. package/components/Button/Button.js.map +1 -1
  9. package/components/Button/style.js +1 -1
  10. package/components/Button/style.js.map +1 -1
  11. package/components/ContextMenu.Multilevel/ContextMenu.Multilevel.js.map +1 -1
  12. package/components/Tab/Tab.js +2 -0
  13. package/components/Tab/Tab.js.map +1 -0
  14. package/components/Tab/constants.js +2 -0
  15. package/components/Tab/constants.js.map +1 -0
  16. package/components/Tab/images/arrow.module.svg.js +2 -0
  17. package/components/Tab/images/arrow.module.svg.js.map +1 -0
  18. package/components/Tab/style.js +2 -0
  19. package/components/Tab/style.js.map +1 -0
  20. package/components/Tabs/Tabs.js +1 -1
  21. package/components/Tabs/Tabs.js.map +1 -1
  22. package/components/Tabs/style.js +1 -1
  23. package/components/Tabs/style.js.map +1 -1
  24. package/components/Tag/Tag.js.map +1 -1
  25. package/components/Tag/style.js.map +1 -1
  26. package/components/Text/Text.js.map +1 -1
  27. package/components/Text/constants.js.map +1 -1
  28. package/components/Text/style.js.map +1 -1
  29. package/components/Text.Ellipse/Text.Ellipse.js.map +1 -1
  30. package/dts/index.d.ts +241 -198
  31. package/hocs/withMergedProps.js +1 -1
  32. package/hocs/withMergedProps.js.map +1 -1
  33. package/index.cjs.js +1 -1
  34. package/index.cjs.js.map +1 -1
  35. package/index.js +1 -1
  36. package/mixins/color.js.map +1 -1
  37. package/mixins/focus.js +1 -1
  38. package/mixins/focus.js.map +1 -1
  39. package/mixins/size.js.map +1 -1
  40. package/package.json +2 -1
  41. package/shared/regexp.js +1 -1
  42. package/shared/regexp.js.map +1 -1
  43. package/theme/colors-dark.js.map +1 -1
  44. package/theme/colors-light.js.map +1 -1
  45. package/theme/colors.js.map +1 -1
  46. package/components/Tabs/TabsTab.js +0 -2
  47. package/components/Tabs/TabsTab.js.map +0 -1
package/dts/index.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  /// <reference types="react" />
2
2
  import * as react from 'react';
3
- import { CSSProperties, Component, ForwardRefExoticComponent, PropsWithoutRef, RefAttributes, PureComponent } from 'react';
3
+ import { CSSProperties, ForwardRefExoticComponent, PropsWithoutRef, RefAttributes, PureComponent, Component } from 'react';
4
4
  import * as styled_components from 'styled-components';
5
5
  import { DefaultTheme, FlattenSimpleInterpolation, CSSObject, Interpolation, ThemeProps, SimpleInterpolation, css } from 'styled-components';
6
- import { Link, NavLink } from 'react-router-dom';
6
+ import { Link } from 'react-router-dom';
7
7
  import { Classes } from 'react-modal';
8
8
  import * as rc_scrollbars_lib_Scrollbars_types from 'rc-scrollbars/lib/Scrollbars/types';
9
9
  import * as rc_scrollbars from 'rc-scrollbars';
@@ -12,6 +12,69 @@ import { Styles, Props } from 'react-floater/lib/types';
12
12
  import { InputState, MaskOptions } from 'react-input-mask';
13
13
  import { ReactSelectProps } from 'react-select';
14
14
 
15
+ declare type ColorPropertyVariants = 'color' | 'fontColor' | `${string}Color` | `color${string}`;
16
+ declare type ColorCalcProperty = (_color: CSSColor) => FlattenSimpleInterpolation | null;
17
+ declare type ColorCssProperty = string | ColorCalcProperty;
18
+ declare type ColorProperty<T extends ColorPropertyVariants = 'color'> = {
19
+ [key in `${T}`]?: Color;
20
+ };
21
+ declare const color: (color?: Color | string, cssProperty?: ColorCssProperty) => () => (props: {
22
+ theme: DefaultTheme;
23
+ }) => FlattenSimpleInterpolation | null;
24
+
25
+ /**
26
+ * Value for breakpoint
27
+ */
28
+ declare type PossibleValues = number | Size | 'auto' | 'initial' | 'inherit' | boolean;
29
+ declare type PropsProperties = 'size' | 'fontSize' | 'height' | 'width' | 'top' | 'right' | 'bottom' | 'left' | 'padding' | 'paddingTop' | 'paddingRight' | 'paddingBottom' | 'paddingLeft' | 'margin' | 'marginTop' | 'marginRight' | 'marginBottom' | 'marginLeft' | 'fluid';
30
+ declare type CalcProperty = (_size: number | 'auto' | 'initial' | 'inherit' | boolean, _sizing?: null | string) => FlattenSimpleInterpolation | null;
31
+ declare type CssProperty = string | CalcProperty;
32
+ declare type ResponsiveKeys = '' | 'XXS' | 'XS' | 'S' | 'M' | 'L' | 'XL';
33
+ declare type ResponsiveNamedProperty<T extends PropsProperties, V extends PossibleValues = PossibleValues> = {
34
+ [key in `${T}${ResponsiveKeys}`]?: V;
35
+ };
36
+ declare type ResponsiveProperty<V = number | Size> = V | [desktop: V, tablet: V, mobile: V] | [xl: V, l: V, m: V, s: V, xs: V, xxs: V];
37
+ declare const property: (value: PossibleValues, cssProperty?: CssProperty, sizing?: null | string, sizes?: Record<Size, number>) => () => () => FlattenSimpleInterpolation | null;
38
+ interface ResponsiveNamedPropertyPayload<T extends PropsProperties> {
39
+ sizes: ResponsiveNamedProperty<T>;
40
+ cssProperty: CssProperty;
41
+ sizing?: null | string;
42
+ customSizeHandler?: (_value: PossibleValues) => PossibleValues;
43
+ sort?: (_a: string, _b: string) => number;
44
+ predefinedSizes?: Record<Size, number>;
45
+ }
46
+ /**
47
+ * Миксин для генерации media запросов
48
+ *
49
+ * @param obj.sizes Объект, в качестве ключей брэйкпоинт, в качестве значений - величина
50
+ * @param obj.cssProperty CSS свойство, может быть функцией, возвращающей css`` из styled-components
51
+ * @param obj.sizing значение величины, по умолчанию `px`
52
+ * @param obj.customSizeHandler функция для вычисления кастомных значений величин
53
+ * @returns строки медиазапросов
54
+ */
55
+ declare const responsiveNamedProperty: <T extends PropsProperties>({ sizes, predefinedSizes, cssProperty, sizing, customSizeHandler, sort, }: ResponsiveNamedPropertyPayload<T>) => () => () => styled_components.FlattenInterpolation<styled_components.ThemeProps<styled_components.DefaultTheme>>[];
56
+ /**
57
+ * Миксин для генерации media запросов
58
+ *
59
+ * @param propName имя пропсы
60
+ * @param cssProperty имя css свойства
61
+ * @param sizing значение величины, по умолчанию `px`
62
+ * @returns строки медиазапросов
63
+ */
64
+ declare const responsiveProperty: (propName: string, cssProperty?: string | null, sizing?: null | string) => () => (props: any) => styled_components.FlattenInterpolation<styled_components.ThemeProps<styled_components.DefaultTheme>> | null;
65
+
66
+ declare type Display = 'block' | 'inline' | 'inline-block' | 'flex' | 'inline-flex' | 'table-cell' | 'inherit' | 'none';
67
+ interface DisplayProperty {
68
+ display?: Display;
69
+ }
70
+
71
+ declare enum SizeInput {
72
+ l = 380,
73
+ m = 300,
74
+ s = 220,
75
+ xs = 140
76
+ }
77
+
15
78
  declare enum DefaultColorNames {
16
79
  white = "white",
17
80
  black = "black",
@@ -789,66 +852,6 @@ declare const ColorNames: {
789
852
  kournikovaDim: DefaultColorNames.kournikovaDim;
790
853
  };
791
854
 
792
- declare type ColorPropertyVariants = 'color' | 'fontColor' | `${string}Color` | `color${string}`;
793
- declare type ColorValue = RGB | RGBA | HEX | 'inherit' | 'initial' | 'transparent';
794
- declare type ColorCalcProperty = (_color: ColorValue) => FlattenSimpleInterpolation | null;
795
- declare type ColorCssProperty = string | ColorCalcProperty;
796
- declare type Color = keyof typeof ColorNames | ColorValue;
797
- declare type ColorProperty<T extends ColorPropertyVariants = 'color'> = {
798
- [key in `${T}`]?: Color;
799
- };
800
- declare const color: (color?: Color | string, cssProperty?: ColorCssProperty) => () => (props: {
801
- theme: DefaultTheme;
802
- }) => FlattenSimpleInterpolation | null;
803
-
804
- /**
805
- * Value for breakpoint
806
- */
807
- declare type PossibleValues = number | Size | 'auto' | 'initial' | 'inherit' | boolean;
808
- declare type PropsProperties = 'size' | 'fontSize' | 'height' | 'width' | 'top' | 'right' | 'bottom' | 'left' | 'padding' | 'paddingTop' | 'paddingRight' | 'paddingBottom' | 'paddingLeft' | 'margin' | 'marginTop' | 'marginRight' | 'marginBottom' | 'marginLeft' | 'fluid';
809
- declare type CalcProperty = (_size: number | 'auto' | 'initial' | 'inherit' | boolean, _sizing?: null | string) => FlattenSimpleInterpolation | null;
810
- declare type CssProperty = string | CalcProperty;
811
- declare type ResponsiveKeys = '' | 'XXS' | 'XS' | 'S' | 'M' | 'L' | 'XL';
812
- declare type ResponsiveNamedProperty<T extends PropsProperties, V extends PossibleValues = PossibleValues> = {
813
- [key in `${T}${ResponsiveKeys}`]?: V;
814
- };
815
- declare type ResponsiveProperty<V = number | Size> = V | [desktop: V, tablet: V, mobile: V] | [xl: V, l: V, m: V, s: V, xs: V, xxs: V];
816
- declare const property: (value: PossibleValues, cssProperty?: CssProperty, sizing?: null | string, sizes?: Record<Size, number>) => () => () => FlattenSimpleInterpolation | null;
817
- interface ResponsiveNamedPropertyPayload<T extends PropsProperties> {
818
- sizes: ResponsiveNamedProperty<T>;
819
- cssProperty: CssProperty;
820
- sizing?: null | string;
821
- customSizeHandler?: (_value: PossibleValues) => PossibleValues;
822
- sort?: (_a: string, _b: string) => number;
823
- predefinedSizes?: Record<Size, number>;
824
- }
825
- /**
826
- * Миксин для генерации media запросов
827
- *
828
- * @param obj.sizes Объект, в качестве ключей брэйкпоинт, в качестве значений - величина
829
- * @param obj.cssProperty CSS свойство, может быть функцией, возвращающей css`` из styled-components
830
- * @param obj.sizing значение величины, по умолчанию `px`
831
- * @param obj.customSizeHandler функция для вычисления кастомных значений величин
832
- * @returns строки медиазапросов
833
- */
834
- declare const responsiveNamedProperty: <T extends PropsProperties>({ sizes, predefinedSizes, cssProperty, sizing, customSizeHandler, sort, }: ResponsiveNamedPropertyPayload<T>) => () => () => styled_components.FlattenInterpolation<styled_components.ThemeProps<styled_components.DefaultTheme>>[];
835
- /**
836
- * Миксин для генерации media запросов
837
- *
838
- * @param propName имя пропсы
839
- * @param cssProperty имя css свойства
840
- * @param sizing значение величины, по умолчанию `px`
841
- * @returns строки медиазапросов
842
- */
843
- declare const responsiveProperty: (propName: string, cssProperty?: string | null, sizing?: null | string) => () => (props: any) => styled_components.FlattenInterpolation<styled_components.ThemeProps<styled_components.DefaultTheme>> | null;
844
-
845
- declare enum SizeInput {
846
- l = 380,
847
- m = 300,
848
- s = 220,
849
- xs = 140
850
- }
851
-
852
855
  declare type HEX = `#${string}`;
853
856
  declare type RGB = `rgb(${number}, ${number}, ${number})`;
854
857
  declare type RGBA = `rgba(${number}, ${number}, ${number}, ${number})`;
@@ -863,6 +866,10 @@ declare type CSSUnit = 'px' | 'rem' | 'em' | '%';
863
866
  declare type SizeValue = Size | number;
864
867
  declare type Sizes = Record<Size, CSSProperties>;
865
868
  declare type MarginProperty = 'margin' | 'marginTop' | 'marginRight' | 'marginBottom' | 'marginLeft';
869
+ declare type ColorPaletteKey = 'color' | `color${string}` | `${string}Color` | `${string}Color${string}`;
870
+ declare type CSSColor = RGB | RGBA | HEX | 'currentcolor' | 'inherit' | 'initial' | 'revert' | 'unset' | 'transparent';
871
+ declare type Color = keyof typeof ColorNames | CSSColor;
872
+ declare type TypographyAppearance = 'display' | 'heading' | 'subheading' | 'subheading-compact' | 'body' | 'caption';
866
873
  interface BaseProps {
867
874
  preset?: ThemePreset;
868
875
  className?: string;
@@ -910,12 +917,16 @@ declare type ResponsiveSizeProps = {
910
917
  } & {
911
918
  [key in `size${Breakpoint}`]?: SizeValue;
912
919
  };
920
+ declare type ColorPaletteProps<T extends ColorPaletteKey = ColorPaletteKey> = {
921
+ palette?: Partial<Record<T, Color>>;
922
+ };
913
923
  declare type DynamicSizeDeclaration = (size: number, cssProperty: keyof CSSProperties, cssUnit: CSSUnit) => CSSProperties;
914
- declare type ResponsiveSizeInterpolationProps<T extends ResponsiveSizeProps> = Omit<T, 'sizes' | 'size'> & {
924
+ declare type CommonInterpolationProps<T extends ResponsiveSizeProps & ColorPaletteProps> = Omit<T, 'sizes' | 'size' | 'palette'> & {
915
925
  dynamicSizeDeclaration?: DynamicSizeDeclaration;
916
926
  sizeProperty?: keyof CSSProperties;
917
927
  sizes: Sizes;
918
928
  size: SizeValue | [desktop: SizeValue, tablet: SizeValue, mobile: SizeValue] | [xl: SizeValue, l: SizeValue, m: SizeValue, s: SizeValue, xs: SizeValue, xxs: SizeValue];
929
+ palette: Partial<Record<ColorPaletteKey, CSSColor>>;
919
930
  };
920
931
  declare type ResponsiveMarginProps = {
921
932
  marginUnits?: CSSUnit;
@@ -928,6 +939,46 @@ declare type ColorSchemaProps = {
928
939
  tertiary?: boolean;
929
940
  quaternary?: boolean;
930
941
  };
942
+ interface TextProps extends DisplayProperty, ColorProperty, ResponsiveNamedProperty<'size'>, BaseProps {
943
+ /** Root node polymorphic type */
944
+ as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'div' | 'span';
945
+ /** Root id attribute */
946
+ id?: string;
947
+ /** Use predefined props with low priority */
948
+ appearance?: TypographyAppearance;
949
+ /** Custom sizes set */
950
+ sizes?: Record<Size, number>;
951
+ /** Sizing units */
952
+ fontUnits?: string;
953
+ /** Font family */
954
+ fontFamily?: string;
955
+ /** Font weight */
956
+ weight?: 'normal' | 'bold' | 'lighter' | 'bolder' | number | 'inherit';
957
+ /** Font style */
958
+ fontStyle?: 'normal' | 'italic';
959
+ /** Text transform */
960
+ transform?: 'capitalize' | 'uppercase' | 'lowercase';
961
+ /** Root margin */
962
+ margin?: number | string;
963
+ /** Underlined text */
964
+ underlineLinks?: boolean;
965
+ /** Text align */
966
+ textAlign?: 'left' | 'center' | 'right' | 'justify' | 'start' | 'end';
967
+ /** Line height */
968
+ lineHeight?: 'l' | 'm' | 's' | 'xs' | number;
969
+ /** Title attribute */
970
+ title?: string;
971
+ /** Component's children */
972
+ children?: React.ReactNode;
973
+ /** @deprecated Use children */
974
+ content?: string;
975
+ }
976
+ declare type TypographyProps = {
977
+ textProps?: TextProps;
978
+ };
979
+ declare type RenderProps<T> = T & {
980
+ baseTextProps: Partial<TextProps>;
981
+ };
931
982
 
932
983
  /**
933
984
  * Converts HEX color code to RGB(A) string
@@ -963,11 +1014,6 @@ declare const teenDarkTheme: DefaultTheme;
963
1014
  declare const adultLightTheme: DefaultTheme;
964
1015
  declare const adultDarkTheme: DefaultTheme;
965
1016
 
966
- declare type Display = 'block' | 'inline' | 'inline-block' | 'flex' | 'inline-flex' | 'table-cell' | 'inherit' | 'none';
967
- interface DisplayProperty {
968
- display?: Display;
969
- }
970
-
971
1017
  interface AnchorProps extends BaseProps, ColorProperty, ResponsiveNamedProperty<'size'>, DisplayProperty {
972
1018
  /**
973
1019
  * Custom CSS class name
@@ -1225,93 +1271,6 @@ declare namespace Icon {
1225
1271
  var displayName: string;
1226
1272
  }
1227
1273
 
1228
- declare type H = 'h1' | 'h2' | 'h3' | 'h4';
1229
- interface TextHeadingProps extends Omit<TextProps, 'content' | 'as'> {
1230
- /** Default set of size, lineHeight and weight props */
1231
- h?: H;
1232
- /** Children react node */
1233
- children?: React.ReactNode;
1234
- }
1235
-
1236
- interface TextEllipseProps extends Omit<TextProps, 'content'> {
1237
- /** Toggle text for folded state */
1238
- moreText?: string;
1239
- /** Toggle text for unfolded state */
1240
- lessText?: string;
1241
- /** Classname */
1242
- className?: string;
1243
- /** Html content */
1244
- content: string | string[];
1245
- /** Characters quantity for ellipsed text */
1246
- chars?: number;
1247
- /** Wrap text in quotes */
1248
- quoted?: boolean;
1249
- /** Flag to show toggler */
1250
- showToggler?: boolean;
1251
- }
1252
- interface TextEllipseState {
1253
- isUnFolded: boolean;
1254
- isEllipsed: boolean;
1255
- }
1256
- /**
1257
- * Расширен:
1258
- * - [`BaseProps`](#/Миксины)
1259
- * - [`Color`](#/Миксины)
1260
- * - [`Display`](#/Миксины)
1261
- * - [`ResponsiveNamedProperty<'size'>`](#/Миксины)
1262
- */
1263
- declare class TextEllipse extends Component<TextEllipseProps, TextEllipseState> {
1264
- static displayName: string;
1265
- constructor(props: TextEllipseProps);
1266
- componentDidUpdate({ content }: TextEllipseProps): void;
1267
- getContent: (props: Omit<TextEllipseProps, 'className' | 'moreText' | 'lessText' | 'showToggler'>) => "" | JSX.Element;
1268
- getQuted: (content: string) => string;
1269
- toggle: () => void;
1270
- render(): JSX.Element;
1271
- }
1272
-
1273
- declare type TextAppearance = 'display' | 'heading' | 'subheading' | 'subheading-compact' | 'body' | 'caption';
1274
- interface TextProps extends DisplayProperty, ColorProperty, ResponsiveNamedProperty<'size'>, BaseProps {
1275
- /** Root node polymorphic type */
1276
- as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'div' | 'span';
1277
- /** Root id attribute */
1278
- id?: string;
1279
- /** Use predefined props with low priority */
1280
- appearance?: TextAppearance;
1281
- /** Custom sizes set */
1282
- sizes?: Record<Size, number>;
1283
- /** Sizing units */
1284
- fontUnits?: string;
1285
- /** Font family */
1286
- fontFamily?: string;
1287
- /** Font weight */
1288
- weight?: 'normal' | 'bold' | 'lighter' | 'bolder' | number;
1289
- /** Font style */
1290
- fontStyle?: 'normal' | 'italic';
1291
- /** Text transform */
1292
- transform?: 'capitalize' | 'uppercase' | 'lowercase';
1293
- /** Root margin */
1294
- margin?: number | string;
1295
- /** Underlined text */
1296
- underlineLinks?: boolean;
1297
- /** Text align */
1298
- textAlign?: 'left' | 'center' | 'right' | 'justify' | 'start' | 'end';
1299
- /** Line height */
1300
- lineHeight?: 'l' | 'm' | 's' | 'xs' | number;
1301
- /** Title attribute */
1302
- title?: string;
1303
- /** Component's children */
1304
- children?: React.ReactNode;
1305
- /** @deprecated Use children */
1306
- content?: string;
1307
- }
1308
- interface TextComponent extends ForwardRefExoticComponent<PropsWithoutRef<TextProps> & RefAttributes<HTMLElement>> {
1309
- Heading: (props: TextHeadingProps) => JSX.Element;
1310
- Ellipse: typeof TextEllipse;
1311
- }
1312
-
1313
- declare const Text: TextComponent;
1314
-
1315
1274
  declare type AlertType = 'warning' | 'error' | 'info' | 'success';
1316
1275
  declare type AlertSize = 'l' | 's';
1317
1276
  interface AlertProps extends BaseProps {
@@ -1458,6 +1417,14 @@ declare const Textarea: {
1458
1417
  displayName: string;
1459
1418
  };
1460
1419
 
1420
+ declare type H = 'h1' | 'h2' | 'h3' | 'h4';
1421
+ interface TextHeadingProps extends Omit<TextProps, 'content' | 'as'> {
1422
+ /** Default set of size, lineHeight and weight props */
1423
+ h?: H;
1424
+ /** Children react node */
1425
+ children?: React.ReactNode;
1426
+ }
1427
+
1461
1428
  interface SwitcherProps extends BaseProps, ColorProperty<'color'>, ColorProperty<'inactiveColor'> {
1462
1429
  /** Input id */
1463
1430
  id?: string;
@@ -1477,9 +1444,17 @@ interface SwitcherProps extends BaseProps, ColorProperty<'color'>, ColorProperty
1477
1444
 
1478
1445
  declare const Switcher: react.ForwardRefExoticComponent<SwitcherProps & react.RefAttributes<HTMLDivElement>>;
1479
1446
 
1480
- interface ArrowBadgeProps extends ResponsiveSizeProps, ResponsiveMarginProps, ColorSchemaProps, ColorProperty<'color'>, ColorProperty<'backgroundColor'>, BaseProps, Omit<React.ComponentPropsWithRef<'div'>, 'color'> {
1447
+ declare type ArrowBadgePalette = {
1448
+ color: CSSColor;
1449
+ backgroundColor: CSSColor;
1450
+ };
1451
+ interface ArrowBadgeProps extends ResponsiveSizeProps, ResponsiveMarginProps, ColorSchemaProps,
1452
+ /** @deprecated Use palette */
1453
+ ColorProperty<'color'>,
1454
+ /** @deprecated Use palette */
1455
+ ColorProperty<'backgroundColor'>, ColorPaletteProps<keyof ArrowBadgePalette>, TypographyProps, BaseProps, Omit<React.ComponentPropsWithRef<'div'>, 'color' | 'children'> {
1481
1456
  /** React children */
1482
- children: React.ReactNode;
1457
+ children: React.ReactNode | ((props: RenderProps<TypographyProps>) => React.ReactNode);
1483
1458
  /** Pointed left */
1484
1459
  left?: boolean;
1485
1460
  /** Pointed right */
@@ -1494,13 +1469,69 @@ interface ArrowBadgeProps extends ResponsiveSizeProps, ResponsiveMarginProps, Co
1494
1469
  * - [`ResponsiveSizeProps`](#/Interfaces)
1495
1470
  * - [`ResponsiveMarginProps`](#/Interfaces)
1496
1471
  * - [`ColorSchemaProps`](#/Interfaces)
1497
- * - [`ColorProperty<'color'>`](#/Interfaces)
1498
- * - [`ColorProperty<'backgroundColor'>`](#/Interfaces)
1472
+ * - [`ColorPaletteProps<keyof ArrowBadgePalette>`](#/Interfaces)
1473
+ * - [`TypographyProps`](#/Interfaces)
1499
1474
  * - [`BaseProps`](#/Interfaces)
1500
1475
  * - [`React.ComponentPropsWithRef<'div'>`](#/Interfaces)
1501
1476
  */
1502
1477
  declare const ArrowBadge: React.ForwardRefExoticComponent<ArrowBadgeProps>;
1503
1478
 
1479
+ declare type TabPalette = {
1480
+ color: CSSColor;
1481
+ backgroundColor: CSSColor;
1482
+ borderColor: CSSColor;
1483
+ colorHover: CSSColor;
1484
+ backgroundColorHover: CSSColor;
1485
+ borderColorHover: CSSColor;
1486
+ colorDisabled: CSSColor;
1487
+ backgroundColorDisabled: CSSColor;
1488
+ borderColorDisabled: CSSColor;
1489
+ };
1490
+ interface TabProps extends ResponsiveSizeProps, ResponsiveMarginProps, BaseProps,
1491
+ /** Use palette with brand preset */
1492
+ ColorProperty<'color'>,
1493
+ /** Use palette with brand preset */
1494
+ ColorProperty<'borderColor'>,
1495
+ /** Custom colors (brand preset) */
1496
+ ColorPaletteProps<keyof TabPalette>, TypographyProps, Omit<React.ComponentPropsWithRef<'button'>, 'color' | 'children'> {
1497
+ /** React children */
1498
+ children: React.ReactNode | ((props: RenderProps<TypographyProps>) => React.ReactNode);
1499
+ /** Active styles applied */
1500
+ active?: boolean;
1501
+ /** Appearance variant (brand preset) */
1502
+ outline?: boolean;
1503
+ /** Appearance variant (brand preset) */
1504
+ onColored?: boolean;
1505
+ /** Appearance variant (default preset) */
1506
+ compact?: boolean;
1507
+ /** Appearance variant (default preset) */
1508
+ crispy?: boolean;
1509
+ /** Appearance variant (default preset) */
1510
+ crispyCompact?: boolean;
1511
+ /** Pointed left (brand preset) */
1512
+ left?: boolean;
1513
+ /** Pointed right (brand preset) */
1514
+ right?: boolean;
1515
+ /** Border radius applied (brand preset) */
1516
+ rounded?: number;
1517
+ /** @ignore @deprecated Use button interface */
1518
+ as?: React.ElementType<any>;
1519
+ /** @ignore @deprecated Use compact, crispy, crispyCompact */
1520
+ theme?: 'compact' | 'crispy' | 'crispyCompact';
1521
+ }
1522
+
1523
+ /**
1524
+ *
1525
+ * Component interface extends:
1526
+ * - [`ResponsiveSizeProps`](#/Interfaces)
1527
+ * - [`ResponsiveMarginProps`](#/Interfaces)
1528
+ * - [`ColorPaletteProps<keyof TabPalette>`](#/Interfaces)
1529
+ * - [`TypographyProps`](#/Interfaces)
1530
+ * - [`BaseProps`](#/Interfaces)
1531
+ * - [`React.ComponentPropsWithRef<'button'>`](#/Interfaces)
1532
+ */
1533
+ declare const Tab: React.ForwardRefExoticComponent<TabProps>;
1534
+
1504
1535
  interface Theme {
1505
1536
  breakpoints: Readonly<{
1506
1537
  xl: number;
@@ -1510,7 +1541,7 @@ interface Theme {
1510
1541
  xs: number;
1511
1542
  xxs: number;
1512
1543
  }>;
1513
- colors: Record<keyof typeof ColorNames, ColorValue>;
1544
+ colors: Record<keyof typeof ColorNames, CSSColor>;
1514
1545
  borderRadius: string;
1515
1546
  textColor?: string;
1516
1547
  fallbackColor?: string;
@@ -1538,6 +1569,7 @@ interface Theme {
1538
1569
  ArrowBadge?: ArrowBadgeProps;
1539
1570
  'Text.Heading'?: TextHeadingProps;
1540
1571
  Switcher?: SwitcherProps;
1572
+ Tab?: TabProps;
1541
1573
  };
1542
1574
  }
1543
1575
 
@@ -2514,42 +2546,6 @@ declare namespace Spinner {
2514
2546
  var displayName: string;
2515
2547
  }
2516
2548
 
2517
- interface TabProps extends ColorProperty, ColorProperty<'borderColor'> {
2518
- /**
2519
- * An element type to render as (string or function).
2520
- */
2521
- as?: 'div' | 'a' | 'button' | 'span' | typeof NavLink;
2522
- /**
2523
- * Primary content.
2524
- */
2525
- /**
2526
- * Children react node
2527
- */
2528
- children?: React.ReactNode;
2529
- /**
2530
- * Active tab.
2531
- */
2532
- active?: boolean;
2533
- /**
2534
- * Active tab.
2535
- */
2536
- activeClassName?: string;
2537
- /**
2538
- * Active tab.
2539
- */
2540
- theme?: 'compact' | 'crispy' | 'crispyCompact';
2541
- className?: string;
2542
- }
2543
- declare function TabsTab(props: TabProps): JSX.Element;
2544
- declare namespace TabsTab {
2545
- var defaultProps: {
2546
- as: string;
2547
- activeClassName: string;
2548
- borderColor: string;
2549
- color: string;
2550
- };
2551
- }
2552
-
2553
2549
  interface TabsProps extends BaseProps, ColorProperty, ColorProperty<'borderColor'> {
2554
2550
  /**
2555
2551
  * Primary content.
@@ -2565,6 +2561,9 @@ interface TabsProps extends BaseProps, ColorProperty, ColorProperty<'borderColor
2565
2561
  width?: ResponsiveProperty<number>;
2566
2562
  }
2567
2563
  /**
2564
+ *
2565
+ * Use only with default preset
2566
+ *
2568
2567
  * Расширен:
2569
2568
  * - [`BaseProps`](#/Миксины)
2570
2569
  * - [`Color`](#/Миксины)
@@ -2576,8 +2575,52 @@ declare namespace Tabs {
2576
2575
  borderColor: string;
2577
2576
  color: string;
2578
2577
  };
2579
- var Tab: typeof TabsTab;
2578
+ var Tab: react.ForwardRefExoticComponent<TabProps>;
2579
+ }
2580
+
2581
+ interface TextEllipseProps extends Omit<TextProps, 'content'> {
2582
+ /** Toggle text for folded state */
2583
+ moreText?: string;
2584
+ /** Toggle text for unfolded state */
2585
+ lessText?: string;
2586
+ /** Classname */
2587
+ className?: string;
2588
+ /** Html content */
2589
+ content: string | string[];
2590
+ /** Characters quantity for ellipsed text */
2591
+ chars?: number;
2592
+ /** Wrap text in quotes */
2593
+ quoted?: boolean;
2594
+ /** Flag to show toggler */
2595
+ showToggler?: boolean;
2580
2596
  }
2597
+ interface TextEllipseState {
2598
+ isUnFolded: boolean;
2599
+ isEllipsed: boolean;
2600
+ }
2601
+ /**
2602
+ * Расширен:
2603
+ * - [`BaseProps`](#/Миксины)
2604
+ * - [`Color`](#/Миксины)
2605
+ * - [`Display`](#/Миксины)
2606
+ * - [`ResponsiveNamedProperty<'size'>`](#/Миксины)
2607
+ */
2608
+ declare class TextEllipse extends Component<TextEllipseProps, TextEllipseState> {
2609
+ static displayName: string;
2610
+ constructor(props: TextEllipseProps);
2611
+ componentDidUpdate({ content }: TextEllipseProps): void;
2612
+ getContent: (props: Omit<TextEllipseProps, 'className' | 'moreText' | 'lessText' | 'showToggler'>) => "" | JSX.Element;
2613
+ getQuted: (content: string) => string;
2614
+ toggle: () => void;
2615
+ render(): JSX.Element;
2616
+ }
2617
+
2618
+ interface TextComponent extends ForwardRefExoticComponent<PropsWithoutRef<TextProps> & RefAttributes<HTMLElement>> {
2619
+ Heading: (props: TextHeadingProps) => JSX.Element;
2620
+ Ellipse: typeof TextEllipse;
2621
+ }
2622
+
2623
+ declare const Text: TextComponent;
2581
2624
 
2582
2625
  /**
2583
2626
  Matches any [primitive value](https://developer.mozilla.org/en-US/docs/Glossary/Primitive).
@@ -3224,4 +3267,4 @@ declare namespace Select {
3224
3267
  var displayName: string;
3225
3268
  }
3226
3269
 
3227
- export { ActionBtn, Alert, Amount, Anchor, Arrow, ArrowBadge, Avatar, Badge, BaseProps, Breakpoint, Button, COUNTRY_DATA, CSSUnit, CURRENCY_MAP, Checkbox, ColorNames, ColorSchemaProps, Container, ContextMenu, CurrencyCodes, DEFAULT_MASK, DynamicSizeDeclaration, FontWeight, HEX, INITIAL_MASK, Icon, Input, InputField, MarginProperty, Modal, Nullable, Paper, Progress, RGB, RGBA, Radio, ResponsiveMarginProps, ResponsiveSizeInterpolationProps, ResponsiveSizeProps, withThemeScrollable as Scrollable, Section, Select, Separator, Size, SizeValue, Sizes, Spacer, Spinner, Switcher, Tabs, Tag, Text, Textarea, Theme, ThemeMode, ThemeName, ThemePreset, ThemeProvider, Tooltip, adultDarkTheme, adultLightTheme, babyDarkTheme, babyLightTheme, baseInputStyle, buildMediaQuery, color, defaultIcons, 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, vAlign };
3270
+ export { ActionBtn, Alert, Amount, Anchor, Arrow, ArrowBadge, Avatar, Badge, BaseProps, Breakpoint, Button, COUNTRY_DATA, CSSColor, CSSUnit, CURRENCY_MAP, Checkbox, Color, ColorNames, ColorPaletteKey, ColorPaletteProps, ColorSchemaProps, CommonInterpolationProps, Container, ContextMenu, CurrencyCodes, DEFAULT_MASK, DynamicSizeDeclaration, FontWeight, HEX, INITIAL_MASK, Icon, Input, InputField, MarginProperty, Modal, Nullable, Paper, Progress, RGB, RGBA, Radio, RenderProps, ResponsiveMarginProps, ResponsiveSizeProps, withThemeScrollable as Scrollable, Section, Select, Separator, Size, SizeValue, Sizes, Spacer, Spinner, Switcher, Tab, Tabs, Tag, Text, TextProps, Textarea, Theme, ThemeMode, ThemeName, ThemePreset, ThemeProvider, Tooltip, TypographyAppearance, TypographyProps, adultDarkTheme, adultLightTheme, babyDarkTheme, babyLightTheme, baseInputStyle, buildMediaQuery, color, defaultIcons, 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, vAlign };
@@ -1,2 +1,2 @@
1
- import e from'@babel/runtime/helpers/objectSpread2';import{forwardRef as r}from'react';import{useTheme as s}from'styled-components';import{mergeDeepLeft as a}from'ramda';import{jsx as o}from'react/jsx-runtime';var i=(i,t)=>{var m=r(((r,m)=>{var p,d,l;var n=s();var v=a(r,null!==(p=null===(d=n.components)||void 0===d?void 0:d[t.displayName])&&void 0!==p?p:{});var f=null!==(l=v.preset)&&void 0!==l?l:n.preset;var u=v.sizes?a(v.sizes,t.sizes):t.sizes;return i.displayName=t.displayName,o(i,e(e({},v),{},{preset:f,sizes:u,ref:m}))}));return m.displayName="WithMergedProps".concat(t.displayName),m};export{i as withMergedProps};
1
+ import e from'@babel/runtime/helpers/objectSpread2';import{forwardRef as r}from'react';import{useTheme as a}from'styled-components';import{mergeDeepLeft as t}from'ramda';import{jsx as s}from'react/jsx-runtime';var o=(o,i)=>{var p=r(((r,p)=>{var l,m,n;var v=a();var d=t(r,null!==(l=null===(m=v.components)||void 0===m?void 0:m[i.displayName])&&void 0!==l?l:{});var u=null!==(n=d.preset)&&void 0!==n?n:v.preset;var c='function'==typeof i.sizes?i.sizes(e(e({},d),{},{preset:u})):i.sizes;var f=d.sizes?t(d.sizes,c):c;var y=d.palette?function(e,r){var a=arguments.length>0&&void 0!==e?e:{};var t=arguments.length>1?r:void 0;return Object.keys(a).reduce(((e,r)=>{var s;var o=a[r];return e[r]=null!==(s=t.colors[o])&&void 0!==s?s:o,e}),{})}(d.palette,v):{};return o.displayName=i.displayName,s(o,e(e({},d),{},{preset:u,sizes:f,palette:y,ref:p}))}));return p.displayName="WithMergedProps".concat(i.displayName),p};export{o as withMergedProps};
2
2
  //# sourceMappingURL=withMergedProps.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"withMergedProps.js","sources":["../../../src/hocs/withMergedProps.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport { useTheme } from 'styled-components'\nimport { mergeDeepLeft } from 'ramda'\n\nimport type { BaseProps, ResponsiveSizeProps, Sizes, ThemePreset } from 'shared/interfaces'\n\nexport const withMergedProps = <T extends ResponsiveSizeProps & BaseProps, P extends HTMLElement = HTMLElement>(\n Component: React.FC<Omit<T, 'sizes' | 'preset'> & { sizes: Sizes; preset: ThemePreset } & React.RefAttributes<P>>,\n options: { displayName: string; sizes: Sizes }\n) => {\n const WithMergedProps = forwardRef<P, T>((props, ref) => {\n const theme = useTheme()\n\n const forwardProps = mergeDeepLeft(props, theme.components?.[options.displayName] ?? {}) as T\n const preset = forwardProps.preset ?? theme.preset\n const sizes = (forwardProps.sizes ? mergeDeepLeft(forwardProps.sizes, options.sizes) : options.sizes) as Sizes\n\n Component.displayName = options.displayName\n\n return <Component {...forwardProps} preset={preset} sizes={sizes} ref={ref} />\n })\n\n WithMergedProps.displayName = `WithMergedProps${options.displayName}`\n return WithMergedProps\n}\n"],"names":["withMergedProps","Component","options","WithMergedProps","forwardRef","props","ref","_theme$components$opt","_theme$components","_forwardProps$preset","theme","useTheme","forwardProps","mergeDeepLeft","components","displayName","preset","sizes","_jsx","_objectSpread"],"mappings":"sNAMaA,EAAkB,CAC7BC,EACAC,KAEA,IAAMC,EAAkBC,IAAkBC,EAAOC,KAAQ,IAAAC,EAAAC,EAAAC,EACvD,IAAMC,EAAQC,IAEd,IAAMC,EAAeC,EAAcR,EAAD,UAAA,UAAQK,EAAMI,kBAAAA,IAAdN,OAAA,EAAQA,EAAmBN,EAAQa,oBAAAA,IAAnCR,EAAAA,EAAmD,IACrF,IAAMS,EAAgCN,UAAvBE,EAAaI,cAAAA,IAAUN,EAAAA,EAAAA,EAAMM,OAC5C,IAAMC,EAASL,EAAaK,MAAQJ,EAAcD,EAAaK,MAAOf,EAAQe,OAASf,EAAQe,MAI/F,OAFAhB,EAAUc,YAAcb,EAAQa,YAEzBG,EAACjB,EAADkB,EAAAA,EAAA,GAAeP,GAAf,GAAA,CAA6BI,OAAQA,EAAQC,MAAOA,EAAOX,IAAKA,QAIzE,OADAH,EAAgBY,YAAgCb,kBAAAA,OAAAA,EAAQa,aACjDZ"}
1
+ {"version":3,"file":"withMergedProps.js","sources":["../../../src/hocs/withMergedProps.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport { useTheme } from 'styled-components'\nimport { mergeDeepLeft } from 'ramda'\nimport type { DefaultTheme } from 'styled-components'\nimport type {\n BaseProps,\n ColorPaletteProps,\n ResponsiveSizeProps,\n Sizes,\n CSSColor,\n Color,\n ThemePreset,\n ColorPaletteKey,\n} from 'shared/interfaces'\n\nconst injectThemeColors = (\n colors: Partial<Record<ColorPaletteKey, Color>> = {},\n theme: DefaultTheme\n): Partial<Record<ColorPaletteKey, CSSColor>> =>\n Object.keys(colors).reduce((resultColors, colorKey) => {\n const color = colors[colorKey]\n resultColors[colorKey] = theme.colors[color] ?? color\n return resultColors\n }, {} as Record<ColorPaletteKey, CSSColor>)\n\nexport const withMergedProps = <\n T extends ResponsiveSizeProps & ColorPaletteProps & BaseProps,\n P extends HTMLElement = HTMLElement\n>(\n Component: React.FC<\n Omit<T, 'sizes' | 'preset' | 'palette'> & {\n sizes: Sizes\n preset: ThemePreset\n palette: Partial<Record<ColorPaletteKey, CSSColor>>\n } & React.RefAttributes<P>\n >,\n options: {\n displayName: string\n sizes: Sizes | ((props: Omit<T, 'sizes' | 'preset'> & { preset: ThemePreset }) => Sizes)\n }\n) => {\n const WithMergedProps = forwardRef<P, T>((props, ref) => {\n const theme = useTheme()\n\n const forwardProps = mergeDeepLeft(props, theme.components?.[options.displayName] ?? {}) as T\n const preset = forwardProps.preset ?? theme.preset\n const componentSizes =\n typeof options.sizes === 'function' ? options.sizes({ ...forwardProps, preset }) : options.sizes\n const sizes = (forwardProps.sizes ? mergeDeepLeft(forwardProps.sizes, componentSizes) : componentSizes) as Sizes\n const palette = forwardProps.palette ? injectThemeColors(forwardProps.palette, theme) : {}\n\n Component.displayName = options.displayName\n\n return <Component {...forwardProps} preset={preset} sizes={sizes} palette={palette} ref={ref} />\n })\n\n WithMergedProps.displayName = `WithMergedProps${options.displayName}`\n return WithMergedProps\n}\n"],"names":["withMergedProps","Component","options","WithMergedProps","forwardRef","props","ref","_theme$components$opt","_theme$components","_forwardProps$preset","theme","useTheme","forwardProps","mergeDeepLeft","components","displayName","preset","componentSizes","sizes","palette","e","r","colors","arguments","length","undefined","Object","keys","reduce","resultColors","colorKey","_theme$colors$color","color","_jsx","_objectSpread"],"mappings":"sNAyBaA,EAAkB,CAI7BC,EAOAC,KAKA,IAAMC,EAAkBC,IAAkBC,EAAOC,KAAQ,IAAAC,EAAAC,EAAAC,EACvD,IAAMC,EAAQC,IAEd,IAAMC,EAAeC,EAAcR,EAAD,UAAA,UAAQK,EAAMI,kBAAd,IAAAN,SAAQA,EAAmBN,EAAQa,oBAAAA,IAAnCR,EAAAA,EAAmD,IACrF,IAAMS,EAAgCN,UAAvBE,EAAaI,cAAAA,IAAUN,EAAAA,EAAAA,EAAMM,OAC5C,IAAMC,EACqB,mBAAlBf,EAAQgB,MAAuBhB,EAAQgB,aAAWN,GAAnB,GAAA,CAAiCI,OAAAA,KAAYd,EAAQgB,MAC7F,IAAMA,EAASN,EAAaM,MAAQL,EAAcD,EAAaM,MAAOD,GAAkBA,EACxF,IAAME,EAAUP,EAAaO,QAlCP,SAAAC,EAAAC,GAAA,IACxBC,+BADwBF,EAAAA,EAC0B,GAD1B,IAExBV,EAFwBa,UAAAC,OAAA,EAAAH,OAAAI,EAAA,OAIxBC,OAAOC,KAAKL,GAAQM,QAAO,CAACC,EAAcC,KAAa,IAAAC,EACrD,IAAMC,EAAQV,EAAOQ,GAErB,OADAD,EAAaC,GAAb,QAAyBpB,EAAAA,EAAMY,OAAOU,UAAAA,IAAtCD,EAAAA,EAAgDC,EACzCH,IACN,IARqB,CAkCmCjB,EAAaO,QAAST,GAAS,GAIxF,OAFAT,EAAUc,YAAcb,EAAQa,YAEzBkB,EAAChC,EAADiC,EAAAA,EAAA,GAAetB,GAAf,GAAA,CAA6BI,OAAQA,EAAQE,MAAOA,EAAOC,QAASA,EAASb,IAAKA,QAI3F,OADAH,EAAgBY,YAAgCb,kBAAAA,OAAAA,EAAQa,aACjDZ"}