@true-engineering/true-react-common-ui-kit 4.0.0-alpha5 → 4.0.0-alpha7

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 (94) hide show
  1. package/README.md +117 -4
  2. package/dist/components/Button/Button.styles.d.ts +1 -1
  3. package/dist/components/Checkbox/Checkbox.styles.d.ts +1 -1
  4. package/dist/components/DatePicker/DatePicker.d.ts +2 -2
  5. package/dist/components/DatePicker/helpers.d.ts +3 -0
  6. package/dist/components/DatePicker/types.d.ts +3 -1
  7. package/dist/components/FiltersPane/FiltersPane.d.ts +4 -2
  8. package/dist/components/FiltersPane/FiltersPane.stories.d.ts +3 -3
  9. package/dist/components/FiltersPane/components/Filter/Filter.d.ts +2 -2
  10. package/dist/components/FiltersPane/components/Filter/helpers.d.ts +4 -0
  11. package/dist/components/FiltersPane/components/FilterInterval/FilterInterval.styles.d.ts +1 -1
  12. package/dist/components/FiltersPane/components/FilterSelect/FilterSelect.styles.d.ts +1 -1
  13. package/dist/components/FiltersPane/components/FilterValueView/FilterValueView.d.ts +3 -1
  14. package/dist/components/FiltersPane/components/FilterWithDates/FilterWithDates.styles.d.ts +2 -2
  15. package/dist/components/FiltersPane/components/FilterWrapper/FilterWrapper.d.ts +2 -2
  16. package/dist/components/FiltersPane/types.d.ts +15 -5
  17. package/dist/components/Flag/customFlags/customFlags.d.ts +10 -0
  18. package/dist/components/Flag/customFlags/index.d.ts +1 -0
  19. package/dist/components/FlexibleTable/FlexibleTable.d.ts +4 -2
  20. package/dist/components/FlexibleTable/components/FlexibleTableRow/FlexibleTableRow.d.ts +6 -6
  21. package/dist/components/FlexibleTable/constants.d.ts +18 -2
  22. package/dist/components/FlexibleTable/types.d.ts +1 -1
  23. package/dist/components/SearchInput/SearchInput.d.ts +2 -2
  24. package/dist/components/SearchInput/SearchInput.stories.d.ts +3 -2
  25. package/dist/components/Select/Select.d.ts +5 -3
  26. package/dist/components/Select/Select.styles.d.ts +2 -2
  27. package/dist/components/Tooltip/Tooltip.d.ts +1 -1
  28. package/dist/components/Tooltip/Tooltip.styles.d.ts +1 -1
  29. package/dist/components/WithMessages/WithMessages.styles.d.ts +1 -1
  30. package/dist/hooks/index.d.ts +1 -0
  31. package/dist/hooks/use-merge.d.ts +1 -0
  32. package/dist/hooks/use-mixed-styles.d.ts +3 -1
  33. package/dist/hooks/use-tweak-styles.d.ts +5 -5
  34. package/dist/theme/Provider.d.ts +6 -3
  35. package/dist/theme/create-themed-styles.d.ts +2 -0
  36. package/dist/theme/helpers.d.ts +9 -3
  37. package/dist/theme/index.d.ts +2 -0
  38. package/dist/theme/true-jss/ThemedStylesManager.d.ts +18 -0
  39. package/dist/theme/true-jss/TweakStylesManager.d.ts +34 -0
  40. package/dist/theme/true-jss/index.d.ts +2 -0
  41. package/dist/theme/true-jss/jss-context.d.ts +9 -0
  42. package/dist/theme/types.d.ts +4 -2
  43. package/dist/true-react-common-ui-kit.js +6736 -5801
  44. package/dist/true-react-common-ui-kit.js.map +1 -1
  45. package/dist/true-react-common-ui-kit.umd.cjs +6866 -5932
  46. package/dist/true-react-common-ui-kit.umd.cjs.map +1 -1
  47. package/dist/types.d.ts +2 -1
  48. package/package.json +1 -1
  49. package/src/components/DatePicker/DatePicker.tsx +9 -4
  50. package/src/components/DatePicker/helpers.ts +13 -1
  51. package/src/components/DatePicker/types.ts +4 -1
  52. package/src/components/FiltersPane/FiltersPane.stories.tsx +4 -2
  53. package/src/components/FiltersPane/FiltersPane.tsx +14 -9
  54. package/src/components/FiltersPane/components/Filter/Filter.tsx +24 -17
  55. package/src/components/FiltersPane/components/Filter/helpers.ts +18 -0
  56. package/src/components/FiltersPane/components/FilterValueView/FilterValueView.tsx +27 -22
  57. package/src/components/FiltersPane/components/FilterWithDates/FilterWithDates.styles.ts +1 -0
  58. package/src/components/FiltersPane/components/FilterWithPeriod/FilterWithPeriod.tsx +1 -1
  59. package/src/components/FiltersPane/components/FilterWrapper/FilterWrapper.tsx +7 -5
  60. package/src/components/FiltersPane/types.ts +23 -5
  61. package/src/components/Flag/Flag.stories.tsx +2 -1
  62. package/src/components/Flag/Flag.styles.ts +4 -0
  63. package/src/components/Flag/Flag.tsx +23 -9
  64. package/src/components/Flag/customFlags/AB.svg +1 -0
  65. package/src/components/Flag/customFlags/OS.svg +1 -0
  66. package/src/components/Flag/customFlags/augment.d.ts +1 -0
  67. package/src/components/Flag/customFlags/customFlags.ts +13 -0
  68. package/src/components/Flag/customFlags/index.ts +1 -0
  69. package/src/components/FlexibleTable/FlexibleTable.tsx +13 -12
  70. package/src/components/FlexibleTable/components/FlexibleTableRow/FlexibleTableRow.tsx +9 -8
  71. package/src/components/FlexibleTable/constants.ts +6 -3
  72. package/src/components/FlexibleTable/types.ts +1 -5
  73. package/src/components/PhoneInput/PhoneInput.stories.tsx +2 -1
  74. package/src/components/PhoneInput/PhoneInput.tsx +5 -2
  75. package/src/components/SearchInput/SearchInput.tsx +23 -28
  76. package/src/components/Select/Select.tsx +11 -2
  77. package/src/components/Tooltip/Tooltip.styles.ts +2 -0
  78. package/src/components/Tooltip/Tooltip.tsx +1 -1
  79. package/src/constants/phone-info.ts +20 -33
  80. package/src/helpers/phone.ts +19 -15
  81. package/src/hooks/index.ts +1 -0
  82. package/src/hooks/use-merge.ts +8 -0
  83. package/src/hooks/use-mixed-styles.ts +9 -11
  84. package/src/hooks/use-tweak-styles.ts +49 -27
  85. package/src/theme/Provider.tsx +10 -5
  86. package/src/theme/create-themed-styles.ts +78 -0
  87. package/src/theme/helpers.ts +39 -39
  88. package/src/theme/index.ts +2 -0
  89. package/src/theme/true-jss/ThemedStylesManager.ts +92 -0
  90. package/src/theme/true-jss/TweakStylesManager.ts +157 -0
  91. package/src/theme/true-jss/index.ts +2 -0
  92. package/src/theme/true-jss/jss-context.tsx +34 -0
  93. package/src/theme/types.ts +4 -2
  94. package/src/types.ts +2 -1
package/README.md CHANGED
@@ -4,13 +4,126 @@
4
4
 
5
5
  # Публикация
6
6
 
7
- 1. Слить Pull Request с увеличением версии пакета в файле `package.json` в ветке `master`
8
- 2. `yarn build` локально из ветки `master`
9
- 3. `npm publish` локально из ветки `master`
10
- 4. Добавить тег с версией в гите
7
+ Слить Pull Request с увеличением версии пакета в файле `package.json` в ветке `master`.
8
+ Не забыть добавить описание изменений в этот файл.
9
+
10
+ Публикация в npm и добавление тега на коммит c версией пакета происходит автоматически в пайплайне.
11
+ Так же автоматически будет создан коммит в репозиторий TE_TrueReactPlatform_Moduled и обновится наш сторибук
11
12
 
12
13
  # Release Notes
13
14
 
15
+ ## 3.54.0
16
+
17
+ ### Changes
18
+
19
+ - **TweakStyles**: Теперь могут быть массивом. Адаптированы типы и хелперы
20
+ - **createThemedStyles**: Добавлен режим `tweakStylesArch="react-jss"`, оптимизирующий работу с tweakStyles
21
+ - **createThemedStyles**: Добавлен режим `tweakStylesArch="true-jss"` (бета)
22
+
23
+ ## ~~3.53.1~~
24
+
25
+ ### Changes
26
+
27
+ - **PhoneInput**: Исправлено обрезание лейбла многоточием
28
+ - **SearchInput**: Исправлено обрезание лейбла многоточием
29
+
30
+ ## 3.53.0
31
+
32
+ ### Changes
33
+
34
+ - **FiltersPane**: Добавлен проп `shouldRenderDataId`, который добавляет атрибут `data-id` со значением из конфига.
35
+ - **FiltersPane**: Изменена типизация дженериков, добавлены тайпгарды
36
+
37
+ ## 3.52.0
38
+
39
+ ### Changes
40
+
41
+ - **DatePicker**: Теперь в качестве локали принимается так же строка "ru" | "en"
42
+
43
+ ## 3.51.0
44
+
45
+ ### Changes
46
+
47
+ - **FlexibleTable**: Исправлена мемоизация строк при смещении
48
+
49
+ ## ~~3.50.1~~
50
+
51
+ ### Changes
52
+
53
+ - **Select**: Исправлено обрезание лейбла многоточием
54
+
55
+ ## ~~3.50.0~~
56
+
57
+ ### Changes
58
+
59
+ - **TextArea**: Добавлено обрезание лейбла многоточием.
60
+ - **Input**: Добавлено обрезание лейбла многоточием. HTML-структура поменялась с `inputWrapper > input` на `inputWrapper > inputWithLabelWrapper > input`.
61
+
62
+ Это также повлияло на все компоненты, использующие **Input**:
63
+
64
+ - **DateInput**
65
+ - **NumberInput**
66
+ - **PhoneInput** – если вы переопределяли через твик-стайлы правило `margin-left` для класса `label`,
67
+ это переопределение нужно удалить, т.к. `margin-left` теперь в стандартном случае не должно быть
68
+ - **PhoneInputCountryList**
69
+ - **SearchInput** – если вы переопределяли через твик-стайлы правило `left` для класса `label`,
70
+ это переопределение нужно удалить, т.к. `left` теперь в стандартном случае должно быть равно `0`
71
+ - **Select**
72
+ - **SmartInput**
73
+
74
+ ## 3.49.0
75
+
76
+ ### Changes
77
+
78
+ - **FiltersPane**: Добавлен `getSelectedValue` для удобного рендера значения в `custom`-фильтре с `valueViewType: 'multiple'`
79
+ - **FiltersPane**: Добавлен экспорт `ICustomComponentProps` для `CustomComponent` в `ICustomConfigItem`
80
+ - **FiltersPane**: Кастомный фильтр разделён на два типа `ICustomRangeConfigItem` и `ICustomMultipleConfigItem`
81
+
82
+ ## 3.48.0
83
+
84
+ ### Changes
85
+
86
+ - **FlexibleTable**: Добавлен rowRef
87
+
88
+ ## 3.47.0
89
+
90
+ ### Changes
91
+
92
+ - **Select**: Добавлен ref в пропсу `searchInput` Select-а
93
+ - **Select**: Добавлен shouldFocusOnMount в пропсу `searchInput` Select-а
94
+
95
+ ## 3.46.0
96
+
97
+ ### Changes
98
+
99
+ - **SearchInput**: Добавлен forwardRef
100
+
101
+ ## 3.45.6
102
+
103
+ - **phone.ts** Изменён алгоритм определения кода страны по номеру телефона
104
+ - **phone-info.ts** Добавлены dialCode для Южной Осетии
105
+ - **phone-info.ts** Актуализированы dialCode для Казахстана
106
+
107
+ ## 3.45.5
108
+
109
+ ### Changes
110
+
111
+ - **Tooltip**: Добавлен вариант `custom` для `view`
112
+
113
+ ## 3.45.4
114
+
115
+ ### Changes
116
+
117
+ - **Select**: Убирает лишние вызовы `onBlur` при использовании Popper, если поле не открыто
118
+
119
+ ## 3.45.3
120
+
121
+ ### Changes
122
+
123
+ - **Flag**: Добавлены флаги для Абхазии и Южной Осетии
124
+ - **PhoneInput**: Добавлены PhoneInfo для Абхазии и Южной осетии.
125
+ - **PhoneInput**: Исправлен баг с невозможностью выбора стран с одинаковыми dialCode
126
+
14
127
  ## 3.45.2
15
128
 
16
129
  ### Changes
@@ -1,7 +1,7 @@
1
1
  import { ITweakStyles } from '../../theme';
2
2
  import { IThemedPreloaderStyles } from '../ThemedPreloader';
3
3
  import { IButtonSize } from './types';
4
- export declare const useStyles: import("../../theme").IUseStyles<"content" | "outline" | "root" | "inline" | "text" | "icon" | "active" | "disabled" | "fullWidth" | "primary" | "secondary" | "warning" | "destructive" | "custom" | "children" | "iconFromLeft" | "iconFromRight" | "onlyIcon" | "withIcon" | "s" | "m" | "l" | "xl" | "loader" | "loading", unknown>;
4
+ export declare const useStyles: import("../../theme").IUseStyles<"content" | "outline" | "children" | "root" | "inline" | "text" | "icon" | "active" | "disabled" | "fullWidth" | "primary" | "secondary" | "warning" | "destructive" | "custom" | "iconFromLeft" | "iconFromRight" | "onlyIcon" | "withIcon" | "s" | "m" | "l" | "xl" | "loader" | "loading", unknown>;
5
5
  export declare const getPreloaderStyles: (size: IButtonSize) => IThemedPreloaderStyles | undefined;
6
6
  export type IButtonStyles = ITweakStyles<typeof useStyles, {
7
7
  tweakPreloader: IThemedPreloaderStyles;
@@ -1,3 +1,3 @@
1
1
  import { ITweakStyles } from '../../theme';
2
- export declare const useStyles: import("../../theme").IUseStyles<"input" | "invalid" | "root" | "disabled" | "children" | "checked" | "check" | "labelPositionLeft", unknown>;
2
+ export declare const useStyles: import("../../theme").IUseStyles<"input" | "invalid" | "children" | "root" | "disabled" | "checked" | "check" | "labelPositionLeft", unknown>;
3
3
  export type ICheckboxStyles = ITweakStyles<typeof useStyles>;
@@ -3,11 +3,11 @@ import ReactDatePicker from 'react-datepicker';
3
3
  import 'react-datepicker/dist/react-datepicker.css';
4
4
  import { ICommonProps } from '../../types';
5
5
  import { IDateInputProps } from '../DateInput';
6
- import { IDatePickerBaseProps, IRange } from './types';
6
+ import { IDatePickerBaseProps, IDatePickerLocale, IRange } from './types';
7
7
  import { IDatePickerStyles } from './DatePicker.styles';
8
8
  export interface IDatePickerProps extends IDatePickerBaseProps, ICommonProps<IDatePickerStyles> {
9
9
  selectedDate?: Date | null;
10
- locale: Locale;
10
+ locale: IDatePickerLocale;
11
11
  months?: string[];
12
12
  /** @default 'dd.MM.yyyy' */
13
13
  dateFormat?: string;
@@ -1,3 +1,6 @@
1
+ import { type Locale } from 'date-fns';
2
+ import { IDatePickerLocale } from './types';
1
3
  export declare const getDateFormatter: (dateFormat: string) => (date?: Date | null) => string;
2
4
  export declare const getDateValueParser: (dateFormat: string) => (value: string) => Date | null;
3
5
  export declare const areDatesEquals: (date1?: Date | null, date2?: Date | null) => boolean;
6
+ export declare const preparateDatePickerLocale: (locale: IDatePickerLocale) => Locale;
@@ -1,4 +1,6 @@
1
1
  import { ReactDatePickerProps } from 'react-datepicker';
2
- import { IDateInputProps } from '../DateInput';
2
+ import { type Locale } from 'date-fns';
3
+ import { type IDateInputProps } from '../DateInput';
3
4
  export type IRange = [Date | null, Date | null] | null;
5
+ export type IDatePickerLocale = 'ru' | 'en' | Locale;
4
6
  export type IDatePickerBaseProps = Pick<ReactDatePickerProps, 'startDate' | 'endDate' | 'minDate' | 'maxDate' | 'allowSameDay' | 'disabledKeyboardNavigation' | 'monthsShown' | 'popperModifiers' | 'popperPlacement' | 'filterDate' | 'dayClassName' | 'calendarContainer' | 'onCalendarOpen' | 'onCalendarClose' | 'onYearChange' | 'onMonthChange' | 'focusSelectedMonth' | 'shouldCloseOnSelect' | 'showPreviousMonths' | 'todayButton' | 'renderCustomHeader' | 'customInputRef' | 'preventOpenOnFocus' | 'strictParsing' | 'highlightDates' | 'fixedHeight' | 'excludeScrollbar'> & Omit<IDateInputProps, 'date' | 'startDate' | 'endDate' | 'isRange' | 'isActive' | 'icon' | 'maxLength' | 'onChange' | 'onClick' | 'tweakStyles'>;
@@ -3,7 +3,7 @@ import { ICommonProps } from '../../types';
3
3
  import { IFiltersPaneSearchProps } from './components';
4
4
  import { ConfigType, IFilterLocaleKey, IPartialFilterLocale } from './types';
5
5
  import { IFiltersPaneStyles } from './FiltersPane.styles';
6
- export interface IFiltersPaneProps<Values, Content = Values> extends ICommonProps<IFiltersPaneStyles> {
6
+ export interface IFiltersPaneProps<Values extends Record<string, unknown>, Content = Values> extends ICommonProps<IFiltersPaneStyles> {
7
7
  filtersConfig: ConfigType<Values>;
8
8
  enabledFilters?: Array<keyof ConfigType<Values>>;
9
9
  /** @default {} */
@@ -15,8 +15,10 @@ export interface IFiltersPaneProps<Values, Content = Values> extends ICommonProp
15
15
  isDisabled?: boolean;
16
16
  /** @default true */
17
17
  hasClearButton?: boolean;
18
+ /** @default false */
19
+ shouldRenderDataId?: boolean;
18
20
  onChangeFilters: (values: Partial<Values>) => void;
19
21
  onSettingsButtonClick?: () => void;
20
22
  onClear?: () => void;
21
23
  }
22
- export declare function FiltersPane<Values extends Record<string, unknown>, Content = Values>({ data, tweakStyles, filtersConfig, enabledFilters, values, localeKey, locale, search, isDisabled, hasClearButton, testId, onChangeFilters, onSettingsButtonClick, onClear, }: IFiltersPaneProps<Values, Content>): JSX.Element;
24
+ export declare function FiltersPane<Values extends Record<string, unknown>, Content = Values>({ data, tweakStyles, filtersConfig, enabledFilters, values, localeKey, locale, search, isDisabled, hasClearButton, shouldRenderDataId, testId, onChangeFilters, onSettingsButtonClick, onClear, }: IFiltersPaneProps<Values, Content>): JSX.Element;
@@ -1,5 +1,5 @@
1
1
  import { IFiltersPaneProps } from './FiltersPane';
2
- interface IFiltersPaneWithCustomProps<Values, Content> extends IFiltersPaneProps<Values, Content> {
2
+ interface IFiltersPaneWithCustomProps<Values extends Record<string, unknown>, Content> extends IFiltersPaneProps<Values, Content> {
3
3
  containerWidth: number;
4
4
  isSearchDisabled: boolean;
5
5
  shouldShowSettingsButton: boolean;
@@ -8,7 +8,7 @@ interface IFiltersPaneWithCustomProps<Values, Content> extends IFiltersPaneProps
8
8
  checkboxPosition: 'left' | 'right';
9
9
  isClearableFields: boolean;
10
10
  }
11
- declare function FiltersPaneWithCustomProps<Values, Content>({ containerWidth, isSearchDisabled, shouldShowSettingsButton, withFieldNameInLabel, isGroupingEnabled, checkboxPosition, isClearableFields, ...args }: IFiltersPaneWithCustomProps<Values, Content>): import("react/jsx-runtime").JSX.Element;
11
+ declare function FiltersPaneWithCustomProps<Values extends Record<string, unknown>, Content>({ containerWidth, isSearchDisabled, shouldShowSettingsButton, withFieldNameInLabel, isGroupingEnabled, checkboxPosition, isClearableFields, ...args }: IFiltersPaneWithCustomProps<Values, Content>): import("react/jsx-runtime").JSX.Element;
12
12
  declare const _default: {
13
13
  title: string;
14
14
  component: typeof FiltersPaneWithCustomProps;
@@ -28,4 +28,4 @@ declare const _default: {
28
28
  };
29
29
  };
30
30
  export default _default;
31
- export declare const Default: import("@storybook/types").AnnotatedStoryFn<import("@storybook/react/dist/types-0fc72a6d").R, IFiltersPaneWithCustomProps<unknown, unknown>>;
31
+ export declare const Default: import("@storybook/types").AnnotatedStoryFn<import("@storybook/react/dist/types-0fc72a6d").R, IFiltersPaneWithCustomProps<Record<string, unknown>, unknown>>;
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import type { IFilterWrapperProps } from '../FilterWrapper';
3
- export interface IFilterProps<Values, Key extends keyof Values> extends IFilterWrapperProps<Values, Key> {
3
+ export interface IFilterProps<Values extends Record<string, unknown>, Key extends keyof Values> extends IFilterWrapperProps<Values, Key> {
4
4
  onChange: <V>(v: V) => void;
5
5
  onClose?: () => void;
6
6
  }
7
- export declare function Filter<Values, Key extends keyof Values>(props: IFilterProps<Values, Key>): JSX.Element | null;
7
+ export declare function Filter<Values extends Record<string, unknown>, Key extends keyof Values>(props: IFilterProps<Values, Key>): JSX.Element | null;
@@ -0,0 +1,4 @@
1
+ import { IDatePeriod, IFilterMultiSelectValues, IPeriod } from '../../types';
2
+ export declare const isDatePeriodValue: (value: any) => value is IDatePeriod;
3
+ export declare const isPeriodValue: (value: any) => value is IPeriod;
4
+ export declare const isMultiSelectValue: <T extends string>(value: any) => value is IFilterMultiSelectValues<T>;
@@ -3,7 +3,7 @@ import { IButtonStyles } from '../../../Button';
3
3
  import { IInputStyles } from '../../../Input';
4
4
  export declare const useStyles: import("../../../../theme").IUseStyles<"clear" | "root" | "inputWrapper" | "autosize", unknown>;
5
5
  export declare const inputStyles: IInputStyles;
6
- export declare const clearButtonStyles: Partial<import("jss").Styles<"content" | "outline" | "root" | "inline" | "text" | "icon" | "active" | "disabled" | "fullWidth" | "primary" | "secondary" | "warning" | "destructive" | "custom" | "children" | "iconFromLeft" | "iconFromRight" | "onlyIcon" | "withIcon" | "s" | "m" | "l" | "xl" | "loader" | "loading", unknown, undefined>> & Partial<{
6
+ export declare const clearButtonStyles: Partial<import("jss").Styles<"content" | "outline" | "children" | "root" | "inline" | "text" | "icon" | "active" | "disabled" | "fullWidth" | "primary" | "secondary" | "warning" | "destructive" | "custom" | "iconFromLeft" | "iconFromRight" | "onlyIcon" | "withIcon" | "s" | "m" | "l" | "xl" | "loader" | "loading", unknown, undefined>> & Partial<{
7
7
  tweakPreloader: Partial<import("jss").Styles<"root" | "default" | "currentColor" | "dots" | "logo", unknown, undefined>> & Partial<{
8
8
  tweakDotsPreloader: Partial<import("jss").Styles<"root" | "dot" | "fadedDot" | "@keyframes FadedDots", unknown, undefined>> & Partial<unknown>;
9
9
  tweakSvgPreloader: Partial<import("jss").Styles<"root", unknown, undefined>> & Partial<unknown>;
@@ -3,7 +3,7 @@ import { IButtonStyles } from '../../../Button';
3
3
  import { ISearchInputStyles } from '../../../SearchInput';
4
4
  export declare const useStyles: import("../../../../theme").IUseStyles<"clear" | "item" | "root" | "icon" | "label" | "preloader" | "footer" | "list" | "labelChosen" | "withoutTopGap" | "withClearButton" | "option" | "panel" | "panelWithFooter" | "dropdownInput" | "nothingFound", unknown>;
5
5
  export declare const searchInputStyles: ISearchInputStyles;
6
- export declare const clearButtonStyles: Partial<import("jss").Styles<"content" | "outline" | "root" | "inline" | "text" | "icon" | "active" | "disabled" | "fullWidth" | "primary" | "secondary" | "warning" | "destructive" | "custom" | "children" | "iconFromLeft" | "iconFromRight" | "onlyIcon" | "withIcon" | "s" | "m" | "l" | "xl" | "loader" | "loading", unknown, undefined>> & Partial<{
6
+ export declare const clearButtonStyles: Partial<import("jss").Styles<"content" | "outline" | "children" | "root" | "inline" | "text" | "icon" | "active" | "disabled" | "fullWidth" | "primary" | "secondary" | "warning" | "destructive" | "custom" | "iconFromLeft" | "iconFromRight" | "onlyIcon" | "withIcon" | "s" | "m" | "l" | "xl" | "loader" | "loading", unknown, undefined>> & Partial<{
7
7
  tweakPreloader: Partial<import("jss").Styles<"root" | "default" | "currentColor" | "dots" | "logo", unknown, undefined>> & Partial<{
8
8
  tweakDotsPreloader: Partial<import("jss").Styles<"root" | "dot" | "fadedDot" | "@keyframes FadedDots", unknown, undefined>> & Partial<unknown>;
9
9
  tweakSvgPreloader: Partial<import("jss").Styles<"root", unknown, undefined>> & Partial<unknown>;
@@ -2,4 +2,6 @@
2
2
  import { ICommonProps } from '../../../../types';
3
3
  import type { IFilterWrapperProps } from '../FilterWrapper';
4
4
  import { IFilterValueViewStyles } from './FilterValueView.styles';
5
- export declare function FilterValueView<Values, Key extends keyof Values>({ locale, localeKey, filter, value, tweakStyles, }: Omit<IFilterWrapperProps<Values, Key>, 'onChange' | 'filtersPaneRef' | 'tweakStyles'> & ICommonProps<IFilterValueViewStyles>): JSX.Element;
5
+ export interface IFilterValueView<Values extends Record<string, unknown>, Key extends keyof Values> extends Omit<IFilterWrapperProps<Values, Key>, 'filtersPaneRef' | 'tweakStyles' | 'onChange'>, ICommonProps<IFilterValueViewStyles> {
6
+ }
7
+ export declare function FilterValueView<Values extends Record<string, unknown>, Key extends keyof Values>({ value, filter, locale, localeKey, tweakStyles, }: IFilterValueView<Values, Key>): JSX.Element;
@@ -2,13 +2,13 @@ import { ITweakStyles } from '../../../../theme';
2
2
  import { IButtonStyles } from '../../../Button';
3
3
  import { IDatePickerStyles } from '../../../DatePicker';
4
4
  export declare const useStyles: import("../../../../theme").IUseStyles<"container" | "root" | "datepicker" | "containerItem" | "btnRow", unknown>;
5
- export declare const clearButtonStyles: Partial<import("jss").Styles<"content" | "outline" | "root" | "inline" | "text" | "icon" | "active" | "disabled" | "fullWidth" | "primary" | "secondary" | "warning" | "destructive" | "custom" | "children" | "iconFromLeft" | "iconFromRight" | "onlyIcon" | "withIcon" | "s" | "m" | "l" | "xl" | "loader" | "loading", unknown, undefined>> & Partial<{
5
+ export declare const clearButtonStyles: Partial<import("jss").Styles<"content" | "outline" | "children" | "root" | "inline" | "text" | "icon" | "active" | "disabled" | "fullWidth" | "primary" | "secondary" | "warning" | "destructive" | "custom" | "iconFromLeft" | "iconFromRight" | "onlyIcon" | "withIcon" | "s" | "m" | "l" | "xl" | "loader" | "loading", unknown, undefined>> & Partial<{
6
6
  tweakPreloader: Partial<import("jss").Styles<"root" | "default" | "currentColor" | "dots" | "logo", unknown, undefined>> & Partial<{
7
7
  tweakDotsPreloader: Partial<import("jss").Styles<"root" | "dot" | "fadedDot" | "@keyframes FadedDots", unknown, undefined>> & Partial<unknown>;
8
8
  tweakSvgPreloader: Partial<import("jss").Styles<"root", unknown, undefined>> & Partial<unknown>;
9
9
  }>;
10
10
  }>;
11
- export declare const backButtonStyles: Partial<import("jss").Styles<"content" | "outline" | "root" | "inline" | "text" | "icon" | "active" | "disabled" | "fullWidth" | "primary" | "secondary" | "warning" | "destructive" | "custom" | "children" | "iconFromLeft" | "iconFromRight" | "onlyIcon" | "withIcon" | "s" | "m" | "l" | "xl" | "loader" | "loading", unknown, undefined>> & Partial<{
11
+ export declare const backButtonStyles: Partial<import("jss").Styles<"content" | "outline" | "children" | "root" | "inline" | "text" | "icon" | "active" | "disabled" | "fullWidth" | "primary" | "secondary" | "warning" | "destructive" | "custom" | "iconFromLeft" | "iconFromRight" | "onlyIcon" | "withIcon" | "s" | "m" | "l" | "xl" | "loader" | "loading", unknown, undefined>> & Partial<{
12
12
  tweakPreloader: Partial<import("jss").Styles<"root" | "default" | "currentColor" | "dots" | "logo", unknown, undefined>> & Partial<{
13
13
  tweakDotsPreloader: Partial<import("jss").Styles<"root" | "dot" | "fadedDot" | "@keyframes FadedDots", unknown, undefined>> & Partial<unknown>;
14
14
  tweakSvgPreloader: Partial<import("jss").Styles<"root", unknown, undefined>> & Partial<unknown>;
@@ -2,7 +2,7 @@
2
2
  import { ICommonProps } from '../../../../types';
3
3
  import { ConfigItem, IFilterLocaleKey, IPartialFilterLocale } from '../../types';
4
4
  import { IFilterWrapperStyles } from './FilterWrapper.styles';
5
- export interface IFilterWrapperProps<Values, Key extends keyof Values> extends ICommonProps<IFilterWrapperStyles> {
5
+ export interface IFilterWrapperProps<Values extends Record<string, unknown>, Key extends keyof Values> extends ICommonProps<IFilterWrapperStyles> {
6
6
  filter: ConfigItem<Values[Key]>;
7
7
  value?: Values[Key];
8
8
  isDisabled?: boolean;
@@ -10,4 +10,4 @@ export interface IFilterWrapperProps<Values, Key extends keyof Values> extends I
10
10
  locale?: IPartialFilterLocale;
11
11
  onChange: <V>(value: V) => void;
12
12
  }
13
- export declare function FilterWrapper<Values, Key extends keyof Values>({ filter, value, isDisabled, locale, localeKey, data, testId, tweakStyles, onChange, }: IFilterWrapperProps<Values, Key>): JSX.Element;
13
+ export declare function FilterWrapper<Values extends Record<string, unknown>, Key extends keyof Values>({ filter, value, isDisabled, locale, localeKey, data, testId, tweakStyles, onChange, }: IFilterWrapperProps<Values, Key>): JSX.Element;
@@ -54,20 +54,30 @@ export type IDateRangeConfigItem<Value> = IConfigItemBasicBase<Value> & {
54
54
  type: 'dateRange';
55
55
  dateFormat?: string;
56
56
  } & Omit<IFilterWithPeriodProps, 'value' | 'onChange' | 'setIsOpen'>;
57
- export type CustomComponent<Value> = FC<{
57
+ export interface ICustomComponentProps<Value> {
58
58
  value?: Value;
59
59
  onChange: (v?: Value) => void;
60
60
  onClose?: () => void;
61
61
  filter: ICustomConfigItem<Value>;
62
62
  localeKey?: IFilterLocaleKey;
63
63
  locale?: IPartialFilterLocale;
64
- }>;
65
- export interface ICustomConfigItem<Value> extends IConfigItemBasicBase<Value> {
66
- [key: string]: any;
64
+ }
65
+ export type CustomComponent<Value> = FC<ICustomComponentProps<Value>>;
66
+ export type ICustomValue<V> = V extends Array<infer T> ? T : never;
67
+ export interface ICustomRangeConfigItem<Value> extends IConfigItemBasicBase<Value> {
68
+ [key: string & {}]: any;
69
+ type: 'custom';
70
+ component: CustomComponent<Value>;
71
+ valueViewType?: 'range';
72
+ }
73
+ export interface ICustomMultipleConfigItem<Value> extends IConfigItemBasicBase<Value> {
74
+ [key: string & {}]: any;
67
75
  type: 'custom';
68
76
  component: CustomComponent<Value>;
69
- valueViewType?: 'range' | 'multiple';
77
+ valueViewType?: 'multiple';
78
+ getSelectedValue?: (v: ICustomValue<Value>) => ReactNode;
70
79
  }
80
+ export type ICustomConfigItem<Value> = ICustomRangeConfigItem<Value> | ICustomMultipleConfigItem<Value>;
71
81
  export type ConfigItem<Value> = ISelectConfigItem<Value> | IMultiSelectConfigItem<Value> | ICustomConfigItem<Value> | IDateRangeWithoutPeriodConfigItem<Value> | IDateRangeConfigItem<Value> | IIntervalConfigItem<Value> | IBooleanConfigItem<Value>;
72
82
  export type ConfigType<Values> = {
73
83
  [K in keyof Values]: ConfigItem<Values[K]>;
@@ -0,0 +1,10 @@
1
+ export declare const customFlags: {
2
+ /**
3
+ * Абхазия
4
+ */
5
+ AB: string;
6
+ /**
7
+ * Южная осетия
8
+ */
9
+ OS: string;
10
+ };
@@ -0,0 +1 @@
1
+ export * from './customFlags';
@@ -3,7 +3,7 @@ import { ICommonProps } from '../../types';
3
3
  import { IFlexibleTableRowProps } from './components';
4
4
  import { ITableRow, IFlexibleTableConfigType, IInfinityScrollConfig, IFlexibleTableRenderMode, IHeaderContent } from './types';
5
5
  import { IFlexibleTableStyles } from './FlexibleTable.styles';
6
- export interface IFlexibleTableProps<Row extends ITableRow, HeaderContent extends IHeaderContent<Row>, UniqueField extends keyof Row> extends ICommonProps<IFlexibleTableStyles>, Pick<IFlexibleTableRowProps<Row, HeaderContent, UniqueField>, 'uniqueField' | 'rowAttributes' | 'isFirstColumnSticky' | 'isExpandableRowComponentInitiallyOpen' | 'expandableRowComponent' | 'onRowClick' | 'onRowHover'> {
6
+ export interface IFlexibleTableProps<Row extends ITableRow, HeaderContent extends IHeaderContent<Row>, UniqueField extends keyof Row> extends ICommonProps<IFlexibleTableStyles>, Pick<IFlexibleTableRowProps<Row, HeaderContent, UniqueField>, 'uniqueField' | 'rowAttributes' | 'isFirstColumnSticky' | 'expandableRowComponent' | 'onRowClick' | 'onRowHover' | 'rowRef'> {
7
7
  content: Row[];
8
8
  /** @default 'table' */
9
9
  renderMode?: IFlexibleTableRenderMode;
@@ -27,5 +27,7 @@ export interface IFlexibleTableProps<Row extends ITableRow, HeaderContent extend
27
27
  nothingFoundContent?: ReactNode;
28
28
  /** @default true */
29
29
  shouldRenderHeader?: boolean;
30
+ /** @default false */
31
+ isExpandableRowComponentInitiallyOpen?: boolean | ((row: Row, index: number) => boolean);
30
32
  }
31
- export declare function FlexibleTable<Row extends ITableRow, HeaderContent extends IHeaderContent<Row> = IHeaderContent<Row>, UniqueField extends keyof Row = keyof Row>({ content, headerContent, config, enabledColumns, activeRows, uniqueField, isLoading, isFirstColumnSticky, isHorizontallyScrollable, isRowFocusable, infinityScrollConfig, renderMode, refForScroll, nothingFoundContent, data, testId, tweakStyles, shouldRenderHeader, onHeadClick, ...restProps }: IFlexibleTableProps<Row, HeaderContent, UniqueField>): JSX.Element;
33
+ export declare function FlexibleTable<Row extends ITableRow, HeaderContent extends IHeaderContent<Row> = IHeaderContent<Row>, UniqueField extends keyof Row = keyof Row>({ content, headerContent, config, enabledColumns, activeRows, uniqueField, isLoading, isFirstColumnSticky, isHorizontallyScrollable, isRowFocusable, infinityScrollConfig, renderMode, refForScroll, nothingFoundContent, data, testId, tweakStyles, shouldRenderHeader, onHeadClick, isExpandableRowComponentInitiallyOpen: isRowInitiallyOpen, ...restProps }: IFlexibleTableProps<Row, HeaderContent, UniqueField>): JSX.Element;
@@ -1,10 +1,9 @@
1
- import { ReactNode } from 'react';
2
- import { ICommonProps } from '../../../../types';
1
+ import { ReactNode, RefCallback } from 'react';
2
+ import { ITweakStylesProps } from '../../../../types';
3
3
  import { ITableRow, IFlexibleTableConfigType, IFlexibleTableRenderMode, IHeaderContent } from '../../types';
4
4
  import { IFlexibleTableRowStyles } from './FlexibleTableRow.styles';
5
- export interface IFlexibleTableRowProps<Row extends ITableRow, HeaderContent extends IHeaderContent<Row>, UniqueField extends keyof Row> extends Pick<ICommonProps<IFlexibleTableRowStyles>, 'tweakStyles'> {
5
+ export interface IFlexibleTableRowProps<Row extends ITableRow, HeaderContent extends IHeaderContent<Row>, UniqueField extends keyof Row> extends ITweakStylesProps<IFlexibleTableRowStyles> {
6
6
  item: Row;
7
- index: number;
8
7
  uniqueField?: UniqueField;
9
8
  renderMode: IFlexibleTableRenderMode;
10
9
  /** @default false */
@@ -20,12 +19,13 @@ export interface IFlexibleTableRowProps<Row extends ITableRow, HeaderContent ext
20
19
  columns: Array<keyof Row & string>;
21
20
  rowAttributes?: Array<keyof Row>;
22
21
  /** @default false */
23
- isExpandableRowComponentInitiallyOpen?: boolean | ((row: Row, index: number) => boolean);
22
+ isExpandableRowComponentInitiallyOpen?: boolean;
23
+ rowRef?: RefCallback<HTMLTableRowElement>;
24
24
  /** Возвращает React-элемент, который отрисуется под строкой при нажатии на неё */
25
25
  expandableRowComponent?: (item: Row, isOpen: boolean, close: () => void) => ReactNode;
26
26
  onRowHover?: (id?: Row[UniqueField]) => void;
27
27
  onRowClick?: (id: Row[UniqueField]) => void;
28
28
  }
29
- declare function FlexibleTableRowInner<Row extends ITableRow, HeaderContent extends IHeaderContent<Row>, UniqueField extends keyof Row>({ item, index, config, columns, uniqueField, renderMode, isActive, isFocusable, isFirstColumnSticky, isLoading, rowAttributes, isExpandableRowComponentInitiallyOpen, tweakStyles, expandableRowComponent, onRowHover, onRowClick, }: IFlexibleTableRowProps<Row, HeaderContent, UniqueField>): JSX.Element;
29
+ declare function FlexibleTableRowInner<Row extends ITableRow, HeaderContent extends IHeaderContent<Row>, UniqueField extends keyof Row>({ item, config, columns, uniqueField, renderMode, isActive, isFocusable, isFirstColumnSticky, isLoading, rowAttributes, isExpandableRowComponentInitiallyOpen, rowRef, tweakStyles, expandableRowComponent, onRowHover, onRowClick, }: IFlexibleTableRowProps<Row, HeaderContent, UniqueField>): JSX.Element;
30
30
  export declare const FlexibleTableRow: typeof FlexibleTableRowInner;
31
31
  export {};
@@ -1,3 +1,19 @@
1
- import { IFlexibleTableRenderMode, IFlexibleTableRender } from './types';
2
1
  export declare const DEFAULT_DATE_FORMAT = "dd.MM.yyyy";
3
- export declare const TableRenders: Record<IFlexibleTableRenderMode, IFlexibleTableRender>;
2
+ export declare const TableRenders: {
3
+ table: {
4
+ Root: "table";
5
+ Head: "thead";
6
+ Body: "tbody";
7
+ Row: "tr";
8
+ Header: "th";
9
+ Cell: "td";
10
+ };
11
+ divs: {
12
+ Root: "div";
13
+ Head: "div";
14
+ Body: "div";
15
+ Row: "div";
16
+ Header: "div";
17
+ Cell: "div";
18
+ };
19
+ };
@@ -1,7 +1,7 @@
1
1
  import { CSSProperties, MouseEvent, ReactNode } from 'react';
2
2
  import { IRenderNode } from '../../types';
3
3
  export type IFlexibleTableRenderMode = 'table' | 'divs';
4
- export type IFlexibleTableRender = Record<'Root' | 'Head' | 'Body' | 'Row' | 'Header' | 'Cell', keyof JSX.IntrinsicElements>;
4
+ export type IFlexibleTableRenderElement = 'Root' | 'Head' | 'Body' | 'Row' | 'Header' | 'Cell';
5
5
  export type ITableRow = Record<string, any>;
6
6
  export type IHeaderContent<T extends ITableRow> = Partial<Record<keyof T, unknown>>;
7
7
  export interface ITitleComponentProps<Value> {
@@ -1,6 +1,6 @@
1
- import { FC } from 'react';
1
+ /// <reference types="react" />
2
2
  import { ICommonProps } from '../../types';
3
3
  import { IInputProps } from '../Input';
4
4
  import { ISearchInputStyles } from './SearchInput.styles';
5
5
  export type ISearchInputProps = Omit<IInputProps, 'type' | 'label' | 'isInvalid' | 'errorMessage' | 'isActive' | 'tweakStyles'> & ICommonProps<ISearchInputStyles>;
6
- export declare const SearchInput: FC<ISearchInputProps>;
6
+ export declare const SearchInput: import("react").ForwardRefExoticComponent<Omit<IInputProps, "tweakStyles" | "label" | "isInvalid" | "type" | "isActive" | "errorMessage"> & import("../../types").IDataAttributesProps & import("../../types").ITweakStylesProps<ISearchInputStyles> & import("react").RefAttributes<HTMLInputElement>>;
@@ -1,6 +1,7 @@
1
+ /// <reference types="react" />
1
2
  declare const _default: {
2
3
  title: string;
3
- component: import("react").FC<import("./SearchInput").ISearchInputProps>;
4
+ component: import("react").ForwardRefExoticComponent<Omit<import("..").IInputProps, "tweakStyles" | "label" | "isInvalid" | "type" | "isActive" | "errorMessage"> & import("../..").IDataAttributesProps & import("../..").ITweakStylesProps<import("./SearchInput.styles").ISearchInputStyles> & import("react").RefAttributes<HTMLInputElement>>;
4
5
  };
5
6
  export default _default;
6
- export declare const Default: import("@storybook/types").AnnotatedStoryFn<import("@storybook/react/dist/types-0fc72a6d").R, Omit<import("..").IInputProps, "tweakStyles" | "label" | "isInvalid" | "type" | "isActive" | "errorMessage"> & import("../..").IDataAttributesProps & import("../..").ITweakStylesProps<import("./SearchInput.styles").ISearchInputStyles>>;
7
+ export declare const Default: import("@storybook/types").AnnotatedStoryFn<import("@storybook/react/dist/types-0fc72a6d").R, Omit<import("..").IInputProps, "tweakStyles" | "label" | "isInvalid" | "type" | "isActive" | "errorMessage"> & import("../..").IDataAttributesProps & import("../..").ITweakStylesProps<import("./SearchInput.styles").ISearchInputStyles> & import("react").RefAttributes<HTMLInputElement>>;
@@ -1,4 +1,4 @@
1
- import { ReactNode, SyntheticEvent } from 'react';
1
+ import { ReactNode, Ref, SyntheticEvent } from 'react';
2
2
  import { ICommonProps, IDropdownWithPopperOptions } from '../../types';
3
3
  import { IIcon } from '../Icon';
4
4
  import { IInputProps } from '../Input';
@@ -27,8 +27,10 @@ export interface ISelectProps<Value> extends Omit<IInputProps, 'value' | 'onChan
27
27
  shouldScrollToList?: boolean;
28
28
  isMultiSelect?: false;
29
29
  searchInput?: {
30
- shouldRenderInList: true;
31
- } & Pick<ISearchInputProps, 'placeholder'>;
30
+ /** @default false */
31
+ shouldRenderInList?: boolean;
32
+ ref?: Ref<HTMLInputElement>;
33
+ } & Pick<ISearchInputProps, 'placeholder' | 'shouldFocusOnMount'>;
32
34
  isOptionDisabled?: (option: Value) => boolean;
33
35
  onChange: (value: Value | undefined, event: IChangeSelectEvent) => void;
34
36
  onBlur?: (event: Event | SyntheticEvent) => void;
@@ -11,7 +11,7 @@ export declare const readonlyInputStyles: Partial<import("jss").Styles<"input" |
11
11
  tweakSvgPreloader: Partial<import("jss").Styles<"root", unknown, undefined>> & Partial<unknown>;
12
12
  }>;
13
13
  }>;
14
- tweakWithMessages: Partial<import("jss").Styles<"error" | "horizontal" | "vertical" | "children" | "info" | "withMessages" | "message", unknown, undefined>> & Partial<unknown>;
14
+ tweakWithMessages: Partial<import("jss").Styles<"error" | "children" | "horizontal" | "vertical" | "info" | "withMessages" | "message", unknown, undefined>> & Partial<unknown>;
15
15
  }>;
16
16
  export declare const readonlyMultiSelectStyles: Partial<import("jss").Styles<"input" | "withValue" | "inputContent" | "autoSizeWrapper" | "autoSized" | "withUnits" | "withLabel" | "fakeValue" | "units" | "focusedInput" | "disabledInput" | "invalidInput", unknown, undefined>> & Partial<{
17
17
  tweakControlWrapper: Partial<import("jss").Styles<"invalid" | "icon" | "disabled" | "loader" | "loading" | "label" | "requiredLabel" | "withValue" | "clearIcon" | "focused" | "wrapper" | "controlWrapper" | "minContent" | "activeLabel" | "disabledLabel" | "controls" | "iconInner" | "customIcon" | "endIcon" | "activeIcon" | "placement-top" | "placement-bottom" | "placement-top-left" | "placement-top-right" | "placement-bottom-left" | "placement-bottom-right" | "placement-left" | "placement-right" | "placement-middle", unknown, undefined>> & Partial<{
@@ -20,7 +20,7 @@ export declare const readonlyMultiSelectStyles: Partial<import("jss").Styles<"in
20
20
  tweakSvgPreloader: Partial<import("jss").Styles<"root", unknown, undefined>> & Partial<unknown>;
21
21
  }>;
22
22
  }>;
23
- tweakWithMessages: Partial<import("jss").Styles<"error" | "horizontal" | "vertical" | "children" | "info" | "withMessages" | "message", unknown, undefined>> & Partial<unknown>;
23
+ tweakWithMessages: Partial<import("jss").Styles<"error" | "children" | "horizontal" | "vertical" | "info" | "withMessages" | "message", unknown, undefined>> & Partial<unknown>;
24
24
  }>;
25
25
  export declare const getInputStyles: ({ hasReadonlyInput, isMultiSelect, }: {
26
26
  hasReadonlyInput: boolean;
@@ -4,7 +4,7 @@ import { ITooltipStyles } from './Tooltip.styles';
4
4
  export interface ITooltipProps extends ICommonProps<ITooltipStyles> {
5
5
  text: ReactNode;
6
6
  /** @default 'tooltip' */
7
- view?: 'tooltip' | 'hint';
7
+ view?: 'tooltip' | 'hint' | 'custom';
8
8
  /** @default 'info' */
9
9
  type?: 'info' | 'error';
10
10
  }
@@ -1,3 +1,3 @@
1
1
  import { ITweakStyles } from '../../theme';
2
- export declare const useStyles: import("../../theme").IUseStyles<"error" | "root" | "tooltip" | "info" | "hint", unknown>;
2
+ export declare const useStyles: import("../../theme").IUseStyles<"error" | "root" | "tooltip" | "custom" | "info" | "hint", unknown>;
3
3
  export type ITooltipStyles = ITweakStyles<typeof useStyles>;
@@ -1,3 +1,3 @@
1
1
  import { ITweakStyles } from '../../theme';
2
- export declare const useStyles: import("../../theme").IUseStyles<"error" | "horizontal" | "vertical" | "children" | "info" | "withMessages" | "message", unknown>;
2
+ export declare const useStyles: import("../../theme").IUseStyles<"error" | "children" | "horizontal" | "vertical" | "info" | "withMessages" | "message", unknown>;
3
3
  export type IWithMessagesStyles = ITweakStyles<typeof useStyles>;
@@ -5,3 +5,4 @@ export * from './use-tweak-styles';
5
5
  export * from './use-did-mount-effect';
6
6
  export * from './use-mixed-styles';
7
7
  export * from './use-merged-refs';
8
+ export * from './use-merge';
@@ -0,0 +1 @@
1
+ export declare const useMerge: <T>(one?: T | undefined, two?: T | undefined) => T | undefined;
@@ -1 +1,3 @@
1
- export declare const useMixedStyles: <StyleSheet_1>(baseStyles?: StyleSheet_1 | undefined, tweakStyles?: StyleSheet_1 | undefined) => StyleSheet_1 | undefined;
1
+ import type { IMixedStyles } from '../theme';
2
+ export declare const mixStyles: <T>(...tweakStyles: IMixedStyles<T>[]) => NonNullable<T>[];
3
+ export declare const useMixedStyles: <StyleSheet_1>(baseStyles?: IMixedStyles<StyleSheet_1>, tweakStyles?: IMixedStyles<StyleSheet_1>) => NonNullable<StyleSheet_1>[];
@@ -1,15 +1,15 @@
1
- import { IComponentName } from '../theme';
2
- export declare const useTweakStyles: <StyleSheet_1, ClassName extends keyof StyleSheet_1 & `tweak${string}`>({ innerStyles, tweakStyles: currentComponentTweakStyles, className, currentComponentName, }: {
1
+ import { IComponentName, IMaybeArray, IMixedStyles } from '../theme';
2
+ export declare const useTweakStyles: <StyleSheet_1, ClassName extends keyof StyleSheet_1 & `tweak${string}`>({ innerStyles, tweakStyles, className, currentComponentName, }: {
3
3
  /**
4
4
  * Это tweakStyles, определенные в родительском компоненте
5
5
  * (например, стили для Input, определенные в стилях компонента Select)
6
6
  */
7
- innerStyles?: StyleSheet_1[ClassName] | undefined;
7
+ innerStyles?: IMixedStyles<StyleSheet_1[ClassName]>;
8
8
  /**
9
9
  * Пропса tweakStyles из родительского компонента
10
10
  * (это уже непосредственно ISelectProps.tweakStyles)
11
11
  */
12
- tweakStyles?: StyleSheet_1 | undefined;
12
+ tweakStyles?: IMaybeArray<StyleSheet_1> | undefined;
13
13
  /**
14
14
  * Класс для переопределения tweakStyles из-вне. (Например, 'tweakInput')
15
15
  */
@@ -18,4 +18,4 @@ export declare const useTweakStyles: <StyleSheet_1, ClassName extends keyof Styl
18
18
  * Название компонента который вызывает useTweakStyles. (В данном примере 'Select')
19
19
  */
20
20
  currentComponentName?: keyof import("../theme").IComponentStyles | undefined;
21
- }) => StyleSheet_1[ClassName];
21
+ }) => NonNullable<StyleSheet_1[ClassName]>[];
@@ -1,11 +1,14 @@
1
1
  import { FC, ReactNode } from 'react';
2
- import { IUiKitTheme } from './types';
2
+ import type { IUiKitTheme } from './types';
3
3
  export interface IThemedProviderProps {
4
4
  theme: IUiKitTheme;
5
5
  children: ReactNode;
6
6
  }
7
7
  export declare const getTheme: () => IUiKitTheme;
8
- export declare const ThemeContext: import("react").Context<{
8
+ interface ThemeContextValue {
9
9
  theme: IUiKitTheme;
10
- }>;
10
+ }
11
+ export declare const ThemeContext: import("react").Context<ThemeContextValue>;
11
12
  export declare const ThemeProvider: FC<IThemedProviderProps>;
13
+ export declare const useTheme: () => IUiKitTheme;
14
+ export {};