@true-engineering/true-react-common-ui-kit 4.0.0-alpha30 → 4.0.0-alpha32

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 (37) hide show
  1. package/dist/components/DateInput/DateInput.d.ts +1 -2
  2. package/dist/components/DatePicker/DatePicker.d.ts +3 -2
  3. package/dist/components/DatePicker/components/DatePickerBase/DatePickerBase.d.ts +5 -0
  4. package/dist/components/DatePicker/components/DatePickerBase/index.d.ts +1 -0
  5. package/dist/components/DatePicker/components/index.d.ts +1 -0
  6. package/dist/components/DatePicker/constants.d.ts +7 -2
  7. package/dist/components/DatePicker/helpers.d.ts +0 -3
  8. package/dist/components/DatePicker/index.d.ts +1 -0
  9. package/dist/components/DatePicker/types.d.ts +1 -3
  10. package/dist/components/Input/InputBase.d.ts +1 -1
  11. package/dist/components/RadioButton/RadioButton.styles.d.ts +1 -1
  12. package/dist/components/Select/Select.d.ts +2 -2
  13. package/dist/components/Select/types.d.ts +4 -0
  14. package/dist/hooks/index.d.ts +7 -6
  15. package/dist/hooks/use-latest-ref.d.ts +2 -0
  16. package/dist/hooks/use-on-click-outside.d.ts +2 -2
  17. package/dist/true-react-common-ui-kit.js +384 -259
  18. package/dist/true-react-common-ui-kit.js.map +1 -1
  19. package/dist/true-react-common-ui-kit.umd.cjs +384 -259
  20. package/dist/true-react-common-ui-kit.umd.cjs.map +1 -1
  21. package/package.json +1 -1
  22. package/src/components/DateInput/DateInput.tsx +3 -4
  23. package/src/components/DatePicker/DatePicker.tsx +38 -15
  24. package/src/components/DatePicker/components/DatePickerBase/DatePickerBase.tsx +14 -0
  25. package/src/components/DatePicker/components/DatePickerBase/index.ts +1 -0
  26. package/src/components/DatePicker/components/index.ts +1 -0
  27. package/src/components/DatePicker/constants.ts +9 -3
  28. package/src/components/DatePicker/helpers.ts +1 -13
  29. package/src/components/DatePicker/index.ts +1 -0
  30. package/src/components/DatePicker/types.ts +1 -4
  31. package/src/components/Input/InputBase.tsx +1 -1
  32. package/src/components/Select/Select.tsx +5 -4
  33. package/src/components/Select/types.ts +3 -0
  34. package/src/hooks/index.ts +7 -6
  35. package/src/hooks/use-intersection-ref.ts +4 -4
  36. package/src/hooks/use-latest-ref.ts +7 -0
  37. package/src/hooks/use-on-click-outside.ts +22 -14
@@ -1,4 +1,4 @@
1
- import { MouseEvent } from 'react';
1
+ /// <reference types="react" />
2
2
  import { ICommonProps } from '../../types';
3
3
  import { IChangeInputEvent, IInputProps } from '../Input';
4
4
  import { IDateInputStyles } from './DateInput.styles';
@@ -11,7 +11,6 @@ export interface IDateInputProps extends Omit<IInputProps, 'value' | 'beforeMask
11
11
  className?: string;
12
12
  /** @default false */
13
13
  isRange?: boolean;
14
- onClick?: (event: MouseEvent<HTMLDivElement>) => void;
15
14
  onChange?: (event: IChangeInputEvent, value: string) => void;
16
15
  }
17
16
  export declare const DateInput: import("react").ForwardRefExoticComponent<IDateInputProps & import("react").RefAttributes<HTMLInputElement>>;
@@ -1,9 +1,10 @@
1
1
  import { FC, SyntheticEvent } from 'react';
2
- import ReactDatePicker from 'react-datepicker';
2
+ import type 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, IDatePickerLocale, IRange } from './types';
6
+ import { IDatePickerLocale } from './constants';
7
+ import { IDatePickerBaseProps, IRange } from './types';
7
8
  import { IDatePickerStyles } from './DatePicker.styles';
8
9
  export interface IDatePickerProps extends IDatePickerBaseProps, ICommonProps<IDatePickerStyles> {
9
10
  selectedDate?: Date | null;
@@ -0,0 +1,5 @@
1
+ import ReactDatePicker, { DatePickerProps } from 'react-datepicker';
2
+ export declare class DatePickerBase extends ReactDatePicker {
3
+ handleClickOutside: (event: MouseEvent) => void;
4
+ constructor(props: DatePickerProps);
5
+ }
@@ -0,0 +1 @@
1
+ export * from './DatePickerBase';
@@ -1,2 +1,3 @@
1
+ export * from './DatePickerBase';
1
2
  export * from './DatePickerHeader';
2
3
  export * from './PopperContainer';
@@ -1,3 +1,8 @@
1
- import ReactDatePicker from 'react-datepicker';
1
+ import { type Locale } from 'date-fns/locale';
2
2
  export declare const DEFAULT_DATE_FORMAT = "dd.MM.yyyy";
3
- export declare const DatePickerComponent: typeof ReactDatePicker;
3
+ export declare const OUTSIDE_CLICK_IGNORE_CLASS = "react-datepicker-ignore-onclickoutside";
4
+ export declare const LocalesMap: {
5
+ ru: Locale;
6
+ en: Locale;
7
+ };
8
+ export type IDatePickerLocale = keyof typeof LocalesMap | Locale;
@@ -1,6 +1,3 @@
1
- import { type Locale } from 'date-fns';
2
- import { IDatePickerLocale } from './types';
3
1
  export declare const getDateFormatter: (dateFormat: string) => (date?: Date | null) => string;
4
2
  export declare const getDateValueParser: (dateFormat: string) => (value: string) => Date | null;
5
3
  export declare const areDatesEquals: (date1?: Date | null, date2?: Date | null) => boolean;
6
- export declare const preparateDatePickerLocale: (locale: IDatePickerLocale) => Locale;
@@ -1,4 +1,5 @@
1
1
  export * from './DatePicker';
2
2
  export * from './types';
3
+ export type { IDatePickerLocale } from './constants';
3
4
  export type { IDatePickerStyles } from './DatePicker.styles';
4
5
  export type { IDatePickerHeaderStyles } from './components';
@@ -1,6 +1,4 @@
1
- import { DatePickerProps } from 'react-datepicker';
2
- import { type Locale } from 'date-fns';
1
+ import { type DatePickerProps } from 'react-datepicker';
3
2
  import { type IDateInputProps } from '../DateInput';
4
3
  export type IRange = [Date | null, Date | null] | null;
5
- export type IDatePickerLocale = 'ru' | 'en' | Locale;
6
4
  export type IDatePickerBaseProps = Pick<DatePickerProps, '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' | 'swapRange' | 'onKeyDown'> & Omit<IDateInputProps, 'date' | 'startDate' | 'endDate' | 'isRange' | 'isActive' | 'icon' | 'maxLength' | 'onChange' | 'onClick' | 'tweakStyles' | 'onKeyDown'>;
@@ -4,7 +4,7 @@ import { ICommonProps } from '../../types';
4
4
  import { IControlWrapperProps } from '../ControlWrapper';
5
5
  import { IChangeInputEvent } from './types';
6
6
  import { IInputStyles } from './Input.styles';
7
- export interface IInputBaseProps extends ICommonProps<IInputStyles>, Omit<InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'size'>, Pick<IControlWrapperProps, 'label' | 'icon' | 'size' | 'groupPlacement' | 'isInvalid' | 'isRequired' | 'isLoading' | 'isDisabled'>, Pick<Partial<ReactInputMaskBaseProps>, 'mask' | 'maskPlaceholder' | 'alwaysShowMask' | 'beforeMaskedStateChange'> {
7
+ export interface IInputBaseProps extends ICommonProps<IInputStyles>, Omit<InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'size' | 'className'>, Pick<IControlWrapperProps, 'label' | 'icon' | 'size' | 'groupPlacement' | 'isInvalid' | 'isRequired' | 'isLoading' | 'isDisabled'>, Pick<Partial<ReactInputMaskBaseProps>, 'mask' | 'maskPlaceholder' | 'alwaysShowMask' | 'beforeMaskedStateChange'> {
8
8
  value?: string;
9
9
  units?: ReactNode;
10
10
  /** @default false */
@@ -1,3 +1,3 @@
1
1
  import { ITweakStyles } from '../../theme';
2
- export declare const useStyles: import("../../theme").IUseStyles<"content" | "input" | "label" | "isDisabled" | "isInvalid", unknown>;
2
+ export declare const useStyles: import("../../theme").IUseStyles<"content" | "input" | "isDisabled" | "label" | "isInvalid", unknown>;
3
3
  export type IRadioButtonStyles = ITweakStyles<typeof useStyles>;
@@ -3,11 +3,11 @@ import { ICommonProps, IDropdownWithPopperOptions } from '../../types';
3
3
  import { IIcon } from '../Icon';
4
4
  import { IInputProps } from '../Input';
5
5
  import { ISearchInputProps } from '../SearchInput';
6
- import { IChangeSelectEvent, IMultipleSelectValue } from './types';
6
+ import { IChangeSelectEvent, IMultipleSelectValue, ISelectFooter } from './types';
7
7
  import { ISelectStyles } from './Select.styles';
8
8
  export interface ISelectProps<Value> extends Omit<IInputProps, 'value' | 'onChange' | 'onBlur' | 'type' | 'tweakStyles'>, ICommonProps<ISelectStyles> {
9
9
  header?: ReactNode;
10
- footer?: ReactNode;
10
+ footer?: ISelectFooter<Value>;
11
11
  defaultOptionLabel?: ReactNode;
12
12
  allOptionsLabel?: string;
13
13
  noMatchesLabel?: string;
@@ -1,4 +1,8 @@
1
1
  import { ChangeEvent, KeyboardEvent } from 'react';
2
+ import { IRenderNode } from '../../types';
2
3
  import { IChangeInputEvent } from '../Input';
3
4
  export type IMultipleSelectValue<Value> = Array<NonNullable<Value>>;
4
5
  export type IChangeSelectEvent = IChangeInputEvent | ChangeEvent<HTMLElement> | KeyboardEvent;
6
+ export type ISelectFooter<T> = IRenderNode<{
7
+ filteredOptions: T[];
8
+ }>;
@@ -1,9 +1,10 @@
1
+ export * from './use-did-mount-effect';
2
+ export * from './use-dropdown';
3
+ export * from './use-intersection-ref';
1
4
  export * from './use-is-mounted';
5
+ export * from './use-latest-ref';
6
+ export * from './use-merge';
7
+ export * from './use-merged-refs';
8
+ export * from './use-mixed-styles';
2
9
  export * from './use-on-click-outside';
3
- export * from './use-dropdown';
4
10
  export * from './use-tweak-styles';
5
- export * from './use-did-mount-effect';
6
- export * from './use-mixed-styles';
7
- export * from './use-merged-refs';
8
- export * from './use-merge';
9
- export * from './use-intersection-ref';
@@ -0,0 +1,2 @@
1
+ import { MutableRefObject } from 'react';
2
+ export declare const useLatestRef: <T>(value: T) => MutableRefObject<T>;
@@ -1,5 +1,5 @@
1
1
  import { RefObject } from 'react';
2
2
  export declare const checkElementParentsClassNames: (element: HTMLElement, className: string) => boolean;
3
3
  export declare const isElementOneOfParents: (element: HTMLElement, elToSearch: HTMLElement) => boolean;
4
- export declare function useOnClickOutsideWithRef<Elem extends HTMLElement, IgnoreElem extends HTMLElement>(ref: RefObject<Elem>, handler: (event: MouseEvent | TouchEvent) => void, ignoreRef?: RefObject<IgnoreElem>): void;
5
- export declare function useOnClickOutside<Elem extends HTMLElement, IgnoreElem extends HTMLElement>(ref: RefObject<Elem>, handler: (event: MouseEvent | TouchEvent) => void, ignoreClassName?: string, ignoreRef?: RefObject<IgnoreElem>): void;
4
+ export declare function useOnClickOutsideWithRef<Elem extends HTMLElement, IgnoreElem extends HTMLElement>(refOrGetter: RefObject<Elem | null> | (() => Elem | null | undefined) | undefined, handler: (event: MouseEvent | TouchEvent) => void, ignoreRef?: RefObject<IgnoreElem>): void;
5
+ export declare function useOnClickOutside<Elem extends HTMLElement, IgnoreElem extends HTMLElement>(refOrGetter: RefObject<Elem | null> | (() => Elem | null | undefined) | undefined, handler: (event: MouseEvent | TouchEvent) => void, ignoreClassName?: string, ignoreRef?: RefObject<IgnoreElem>): void;