@chrome-consulting/krit-ui 0.0.49

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 (102) hide show
  1. package/README.md +69 -0
  2. package/dist/assets/index.d.ts +201 -0
  3. package/dist/components/ui/attachmentsSection.d.ts +54 -0
  4. package/dist/components/ui/badge.d.ts +32 -0
  5. package/dist/components/ui/badgeVariants.d.ts +6 -0
  6. package/dist/components/ui/banner.d.ts +60 -0
  7. package/dist/components/ui/bottom-menu.d.ts +41 -0
  8. package/dist/components/ui/button.d.ts +27 -0
  9. package/dist/components/ui/buttonVariants.d.ts +4 -0
  10. package/dist/components/ui/calendar.d.ts +18 -0
  11. package/dist/components/ui/card.d.ts +87 -0
  12. package/dist/components/ui/carousel.d.ts +52 -0
  13. package/dist/components/ui/checkbox.d.ts +30 -0
  14. package/dist/components/ui/collapsible-section.d.ts +37 -0
  15. package/dist/components/ui/collapsible.d.ts +18 -0
  16. package/dist/components/ui/command.d.ts +102 -0
  17. package/dist/components/ui/confirm-modal.d.ts +33 -0
  18. package/dist/components/ui/data-table.d.ts +94 -0
  19. package/dist/components/ui/date-picker.d.ts +69 -0
  20. package/dist/components/ui/dialog.d.ts +66 -0
  21. package/dist/components/ui/dot.d.ts +10 -0
  22. package/dist/components/ui/dropdown-menu.d.ts +67 -0
  23. package/dist/components/ui/file-input.d.ts +36 -0
  24. package/dist/components/ui/filters-column-header.d.ts +28 -0
  25. package/dist/components/ui/form.d.ts +86 -0
  26. package/dist/components/ui/form.lib.d.ts +23 -0
  27. package/dist/components/ui/header.d.ts +39 -0
  28. package/dist/components/ui/input.d.ts +30 -0
  29. package/dist/components/ui/label.d.ts +23 -0
  30. package/dist/components/ui/multi-select.d.ts +100 -0
  31. package/dist/components/ui/nav-panel.d.ts +52 -0
  32. package/dist/components/ui/nav.d.ts +52 -0
  33. package/dist/components/ui/network-error-message.d.ts +46 -0
  34. package/dist/components/ui/notification.d.ts +34 -0
  35. package/dist/components/ui/notificationVariants.d.ts +4 -0
  36. package/dist/components/ui/number-input.d.ts +149 -0
  37. package/dist/components/ui/page-layout.d.ts +28 -0
  38. package/dist/components/ui/page-view-mode-toggle.d.ts +22 -0
  39. package/dist/components/ui/pagination.d.ts +121 -0
  40. package/dist/components/ui/popover.d.ts +36 -0
  41. package/dist/components/ui/post-card.d.ts +273 -0
  42. package/dist/components/ui/preloader.d.ts +23 -0
  43. package/dist/components/ui/previewFull.d.ts +40 -0
  44. package/dist/components/ui/previews.d.ts +69 -0
  45. package/dist/components/ui/previewsCompactList.d.ts +18 -0
  46. package/dist/components/ui/previewsShared.d.ts +8 -0
  47. package/dist/components/ui/profile.d.ts +41 -0
  48. package/dist/components/ui/radio-group.d.ts +48 -0
  49. package/dist/components/ui/resizable.d.ts +65 -0
  50. package/dist/components/ui/scroll-area.d.ts +5 -0
  51. package/dist/components/ui/secondary-panel-section.d.ts +20 -0
  52. package/dist/components/ui/segmented-control.d.ts +35 -0
  53. package/dist/components/ui/select-header-filter.d.ts +23 -0
  54. package/dist/components/ui/select.d.ts +91 -0
  55. package/dist/components/ui/separator.d.ts +34 -0
  56. package/dist/components/ui/sheet.d.ts +118 -0
  57. package/dist/components/ui/skeleton.d.ts +24 -0
  58. package/dist/components/ui/sort-component.d.ts +46 -0
  59. package/dist/components/ui/sortable-header.d.ts +12 -0
  60. package/dist/components/ui/switch.d.ts +25 -0
  61. package/dist/components/ui/table.d.ts +104 -0
  62. package/dist/components/ui/tabs.d.ts +52 -0
  63. package/dist/components/ui/tabsVariants.d.ts +6 -0
  64. package/dist/components/ui/text-area.d.ts +37 -0
  65. package/dist/components/ui/theme-provider.d.ts +136 -0
  66. package/dist/components/ui/time-picker.d.ts +29 -0
  67. package/dist/components/ui/time-picker.lib.d.ts +6 -0
  68. package/dist/components/ui/toast.d.ts +80 -0
  69. package/dist/components/ui/toaster.d.ts +22 -0
  70. package/dist/components/ui/tooltip.d.ts +65 -0
  71. package/dist/components/ui/tree-view.d.ts +96 -0
  72. package/dist/components/ui/widget-plan-fact.d.ts +86 -0
  73. package/dist/date.d.ts +8 -0
  74. package/dist/hooks/useColumnFilters.d.ts +6 -0
  75. package/dist/hooks/useColumnSizing.d.ts +20 -0
  76. package/dist/hooks/useCombinedRefs.d.ts +1 -0
  77. package/dist/hooks/useConfirm.d.ts +49 -0
  78. package/dist/hooks/useNotify.d.ts +28 -0
  79. package/dist/hooks/usePreviewsFilePicker.d.ts +40 -0
  80. package/dist/hooks/useSidebar.d.ts +10 -0
  81. package/dist/hooks/useStoredExpand.d.ts +18 -0
  82. package/dist/hooks/useStoredFields.d.ts +4 -0
  83. package/dist/hooks/useStoredTabs.d.ts +4 -0
  84. package/dist/hooks/useTableStates.d.ts +26 -0
  85. package/dist/hooks/useTheme.d.ts +1 -0
  86. package/dist/hooks/useToast.d.ts +44 -0
  87. package/dist/hooks/useTranslation.d.ts +4 -0
  88. package/dist/krit-ui.d.ts +2 -0
  89. package/dist/krit-ui.js +27485 -0
  90. package/dist/krit-ui.umd.cjs +140 -0
  91. package/dist/lib/attachments.d.ts +245 -0
  92. package/dist/lib/cookies.d.ts +1 -0
  93. package/dist/lib/file.d.ts +52 -0
  94. package/dist/lib/infinite-scroll.d.ts +13 -0
  95. package/dist/lib/selectUtils.d.ts +14 -0
  96. package/dist/lib/text.d.ts +1 -0
  97. package/dist/lib/zod.d.ts +27 -0
  98. package/dist/main.d.ts +85 -0
  99. package/dist/style.css +1 -0
  100. package/dist/utils.d.ts +2 -0
  101. package/package.json +122 -0
  102. package/tailwind.config.cjs +273 -0
@@ -0,0 +1,24 @@
1
+ import * as React from 'react';
2
+ /**
3
+ * Компонент-плейсхолдер для отображения во время загрузки контента.
4
+ * Создает анимированный эффект пульсации, имитирующий загружаемый контент.
5
+ *
6
+ * @component
7
+ * @param {object} props - Параметры компонента
8
+ * @param {string} [props.className] - Дополнительные CSS-классы для кастомизации
9
+ * @param {React.HTMLAttributes<HTMLDivElement>} props - Стандартные HTML-атрибуты div элемента
10
+ * @returns {React.ReactElement} Анимированный плейсхолдер загрузки
11
+ *
12
+ * @example
13
+ * // Простой плейсхолдер
14
+ * <Skeleton className="h-4 w-full" />
15
+ *
16
+ * @example
17
+ * // Плейсхолдер для аватара
18
+ * <Skeleton className="h-12 w-12 rounded-full" />
19
+ */
20
+ declare function Skeleton({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
21
+ declare namespace Skeleton {
22
+ var displayName: string;
23
+ }
24
+ export { Skeleton };
@@ -0,0 +1,46 @@
1
+ import { OptionType } from './select';
2
+ /**
3
+ * Типы для сортировки
4
+ */
5
+ export declare const SortOrder: {
6
+ readonly ASC: "asc";
7
+ readonly DESC: "desc";
8
+ };
9
+ export type SortOrderType = (typeof SortOrder)[keyof typeof SortOrder];
10
+ export interface SortComponentProps<T extends string> {
11
+ /** Текущий порядок сортировки */
12
+ sortOrder?: SortOrderType;
13
+ /** Текущее поле сортировки */
14
+ sortField?: T;
15
+ /** Дополнительные классы для контейнера */
16
+ className?: string;
17
+ /** Опции для выбора поля сортировки */
18
+ options: OptionType[];
19
+ /** Текст плейсхолдера для селекта */
20
+ placeholder?: string;
21
+ /** Обработчик переключения порядка сортировки */
22
+ onOrderToggle?: () => void;
23
+ /** Обработчик изменения поля сортировки */
24
+ onFieldChange?: (field: T) => void;
25
+ }
26
+ /**
27
+ * Компонент сортировки с выбором поля и переключением направления
28
+ * Соответствует дизайну из Figma: кнопка с иконкой фильтра слева, текстом посередине и chevron справа
29
+ *
30
+ * @component
31
+ * @param {SortComponentProps} props - Параметры компонента
32
+ * @returns {React.ReactElement} Компонент сортировки
33
+ *
34
+ * @example
35
+ * <SortComponent
36
+ * sortOrder={SortOrder.DESC}
37
+ * sortField="date"
38
+ * options={[
39
+ * { label: 'Дата создания', value: 'date' },
40
+ * { label: 'Название', value: 'name' }
41
+ * ]}
42
+ * onOrderToggle={() => {}}
43
+ * onFieldChange={(field) => {}}
44
+ * />
45
+ */
46
+ export declare const SortComponent: <T extends string>({ sortOrder, sortField, className, options, placeholder, onOrderToggle, onFieldChange, }: SortComponentProps<T>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,12 @@
1
+ import { MouseEvent, ReactNode } from 'react';
2
+ import { Column, RowData } from '@tanstack/react-table';
3
+ interface SortableHeaderProps<TData extends RowData, TValue = unknown> {
4
+ className?: string;
5
+ children: ReactNode;
6
+ column: Column<TData, TValue>;
7
+ enableMultiSort?: boolean;
8
+ maxMultiSortColumns?: number;
9
+ isMultiSortEvent?: (e: MouseEvent) => boolean;
10
+ }
11
+ export declare const SortableHeader: <TData extends RowData, TValue = unknown>({ className, children, column, enableMultiSort, maxMultiSortColumns, isMultiSortEvent, }: SortableHeaderProps<TData, TValue>) => import("react/jsx-runtime").JSX.Element;
12
+ export {};
@@ -0,0 +1,25 @@
1
+ import * as React from 'react';
2
+ import * as SwitchPrimitives from '@radix-ui/react-switch';
3
+ export interface SwitchProps extends React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root> {
4
+ className?: string;
5
+ }
6
+ /**
7
+ * Переключатель (switch) для изменения состояния между включенным и выключенным.
8
+ * Основан на Radix UI Switch с кастомизацией стилей и поддержкой доступности.
9
+ *
10
+ * @component
11
+ * @param {SwitchProps} props - Параметры компонента
12
+ * @param {string} [props.className] - Дополнительные CSS-классы
13
+ * @param {boolean} [props.checked] - Состояние переключателя (включен/выключен)
14
+ * @param {boolean} [props.disabled] - Флаг отключения переключателя
15
+ * @param {function} [props.onCheckedChange] - Callback при изменении состояния
16
+ * @param {React.Ref<React.ElementRef<typeof SwitchPrimitives.Root>>} ref - Реф для доступа к DOM-элементу
17
+ * @returns {React.ReactElement} Переключатель с заданными свойствами
18
+ *
19
+ * @example
20
+ * <Switch />
21
+ * <Switch checked onChange={handleChange} />
22
+ * <Switch disabled />
23
+ */
24
+ declare const Switch: React.ForwardRefExoticComponent<SwitchProps & React.RefAttributes<HTMLButtonElement>>;
25
+ export { Switch };
@@ -0,0 +1,104 @@
1
+ import * as React from 'react';
2
+ /**
3
+ * Контейнер таблицы с поддержкой прокрутки и базовой стилизацией.
4
+ *
5
+ * @component
6
+ * @param {object} props - Параметры компонента
7
+ * @param {string} [props.className] - Дополнительные CSS-классы для элемента table
8
+ * @param {string} [props.rootClassName] - Дополнительные CSS-классы для контейнера
9
+ * @param {boolean} [props.striped=true] - Чередование фона строк (полосатые строки)
10
+ * @param {React.Ref<HTMLTableElement>} ref - Реф для доступа к DOM-элементу таблицы
11
+ * @returns {React.ReactElement} Контейнер таблицы с вложенной таблицей
12
+ */
13
+ declare const Table: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableElement> & {
14
+ rootClassName?: string;
15
+ striped?: boolean;
16
+ } & React.RefAttributes<HTMLTableElement>>;
17
+ /**
18
+ * Заголовок таблицы. Содержит элементы TableHead.
19
+ * Поддерживает режим липкого заголовка, который остается видимым при прокрутке.
20
+ *
21
+ * @component
22
+ * @param {object} props - Параметры компонента
23
+ * @param {string} [props.className] - Дополнительные CSS-классы
24
+ * @param {boolean} [props.sticky] - Если true, заголовок фиксируется при прокрутке (position: sticky)
25
+ * @param {React.Ref<HTMLTableSectionElement>} ref - Реф для доступа к DOM-элементу
26
+ * @returns {React.ReactElement} Секция заголовка таблицы
27
+ */
28
+ declare const TableHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableSectionElement> & {
29
+ sticky?: boolean;
30
+ } & React.RefAttributes<HTMLTableSectionElement>>;
31
+ /**
32
+ * Тело таблицы. Содержит основные данные таблицы в виде TableRow и TableCell.
33
+ *
34
+ * @component
35
+ * @param {object} props - Параметры компонента
36
+ * @param {string} [props.className] - Дополнительные CSS-классы
37
+ * @param {React.Ref<HTMLTableSectionElement>} ref - Реф для доступа к DOM-элементу
38
+ * @returns {React.ReactElement} Секция тела таблицы
39
+ */
40
+ declare const TableBody: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableSectionElement> & React.RefAttributes<HTMLTableSectionElement>>;
41
+ /**
42
+ * Подвал таблицы. Обычно содержит итоги или дополнительную информацию.
43
+ *
44
+ * @component
45
+ * @param {object} props - Параметры компонента
46
+ * @param {string} [props.className] - Дополнительные CSS-классы
47
+ * @param {React.Ref<HTMLTableSectionElement>} ref - Реф для доступа к DOM-элементу
48
+ * @returns {React.ReactElement} Секция подвала таблицы
49
+ */
50
+ declare const TableFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableSectionElement> & React.RefAttributes<HTMLTableSectionElement>>;
51
+ /**
52
+ * Строка таблицы. Содержит ячейки TableHead или TableCell.
53
+ * Поддерживает интерактивные состояния: hover и выделение.
54
+ *
55
+ * @component
56
+ * @param {object} props - Параметры компонента
57
+ * @param {string} [props.className] - Дополнительные CSS-классы
58
+ * @param {number} [props.dataIndex] - Индекс строки в данных, добавляется как data-атрибут для доступа через DOM
59
+ * @param {'table' | 'list'} [props.variant='table'] - Вариант стиля: 'table' - стандартный стиль, 'list' - стиль списка
60
+ * @param {React.Ref<HTMLTableRowElement>} ref - Реф для доступа к DOM-элементу
61
+ * @returns {React.ReactElement} Строка таблицы
62
+ */
63
+ declare const TableRow: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableRowElement> & {
64
+ dataIndex?: number;
65
+ variant?: "table" | "list";
66
+ isHeader?: boolean;
67
+ } & React.RefAttributes<HTMLTableRowElement>>;
68
+ /**
69
+ * Заголовочная ячейка таблицы. Используется в TableHeader.
70
+ *
71
+ * @component
72
+ * @param {object} props - Параметры компонента
73
+ * @param {string} [props.className] - Дополнительные CSS-классы
74
+ * @param {'table' | 'list'} [props.variant='table'] - Вариант стиля: 'table' - стандартный стиль, 'list' - стиль списка
75
+ * @param {React.Ref<HTMLTableCellElement>} ref - Реф для доступа к DOM-элементу
76
+ * @returns {React.ReactElement} Заголовочная ячейка таблицы
77
+ */
78
+ declare const TableHead: React.ForwardRefExoticComponent<React.ThHTMLAttributes<HTMLTableCellElement> & {
79
+ variant?: "table" | "list";
80
+ } & React.RefAttributes<HTMLTableCellElement>>;
81
+ /**
82
+ * Ячейка таблицы с данными. Используется в TableBody.
83
+ *
84
+ * @component
85
+ * @param {object} props - Параметры компонента
86
+ * @param {string} [props.className] - Дополнительные CSS-классы
87
+ * @param {'table' | 'list'} [props.variant='table'] - Вариант стиля: 'table' - стандартный стиль, 'list' - стиль списка
88
+ * @param {React.Ref<HTMLTableCellElement>} ref - Реф для доступа к DOM-элементу
89
+ * @returns {React.ReactElement} Ячейка таблицы с данными
90
+ */
91
+ declare const TableCell: React.ForwardRefExoticComponent<React.TdHTMLAttributes<HTMLTableCellElement> & {
92
+ variant?: "table" | "list";
93
+ } & React.RefAttributes<HTMLTableCellElement>>;
94
+ /**
95
+ * Заголовок таблицы. Описывает содержание таблицы.
96
+ *
97
+ * @component
98
+ * @param {object} props - Параметры компонента
99
+ * @param {string} [props.className] - Дополнительные CSS-классы
100
+ * @param {React.Ref<HTMLTableCaptionElement>} ref - Реф для доступа к DOM-элементу
101
+ * @returns {React.ReactElement} Заголовок таблицы
102
+ */
103
+ declare const TableCaption: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLTableCaptionElement> & React.RefAttributes<HTMLTableCaptionElement>>;
104
+ export { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption };
@@ -0,0 +1,52 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import * as React from 'react';
3
+ import * as TabsPrimitive from '@radix-ui/react-tabs';
4
+ /**
5
+ * Контейнер для компонентов вкладок. Обеспечивает базовую функциональность и состояние вкладок.
6
+ * Основан на Radix UI Tabs.
7
+ *
8
+ * @component
9
+ * @param {React.ComponentPropsWithoutRef<typeof TabsPrimitive.Root>} props - Свойства компонента
10
+ * @returns {React.ReactElement} Контейнер вкладок
11
+ */
12
+ declare const Tabs: React.ForwardRefExoticComponent<TabsPrimitive.TabsProps & React.RefAttributes<HTMLDivElement>>;
13
+ /**
14
+ * Контейнер для переключателей вкладок. Обеспечивает группировку и стилизацию кнопок переключения.
15
+ *
16
+ * @component
17
+ * @param {object} props - Параметры компонента
18
+ * @param {string} [props.className] - Дополнительные CSS-классы
19
+ * @param {VariantProps<typeof tabsListVariants>['size']} [props.size] - Размер вкладок (default | icon)
20
+ * @param {React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>} props - Стандартные свойства List из Radix UI
21
+ * @param {React.Ref<React.ElementRef<typeof TabsPrimitive.List>>} ref - Реф для доступа к DOM-элементу
22
+ * @returns {React.ReactElement} Контейнер переключателей вкладок
23
+ */
24
+ declare const TabsList: React.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsListProps & React.RefAttributes<HTMLDivElement>, "ref"> & VariantProps<(props?: ({
25
+ size?: "default" | "icon" | null | undefined;
26
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string> & React.RefAttributes<HTMLDivElement>>;
27
+ /**
28
+ * Переключатель отдельной вкладки. Управляет отображением связанного контента.
29
+ *
30
+ * @component
31
+ * @param {object} props - Параметры компонента
32
+ * @param {string} [props.className] - Дополнительные CSS-классы
33
+ * @param {VariantProps<typeof tabsTriggerVariants>['size']} [props.size] - Размер вкладки (default | icon). Используйте 'icon' для вкладок только с иконкой без текста
34
+ * @param {React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>} props - Стандартные свойства Trigger из Radix UI
35
+ * @param {React.Ref<React.ElementRef<typeof TabsPrimitive.Trigger>>} ref - Реф для доступа к DOM-элементу
36
+ * @returns {React.ReactElement} Переключатель вкладки
37
+ */
38
+ declare const TabsTrigger: React.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsTriggerProps & React.RefAttributes<HTMLButtonElement>, "ref"> & VariantProps<(props?: ({
39
+ size?: "default" | "icon" | null | undefined;
40
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string> & React.RefAttributes<HTMLButtonElement>>;
41
+ /**
42
+ * Контейнер для контента вкладки. Отображается при активации связанного переключателя.
43
+ *
44
+ * @component
45
+ * @param {object} props - Параметры компонента
46
+ * @param {string} [props.className] - Дополнительные CSS-классы
47
+ * @param {React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>} props - Стандартные свойства Content из Radix UI
48
+ * @param {React.Ref<React.ElementRef<typeof TabsPrimitive.Content>>} ref - Реф для доступа к DOM-элементу
49
+ * @returns {React.ReactElement} Контейнер контента вкладки
50
+ */
51
+ declare const TabsContent: React.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
52
+ export { Tabs, TabsList, TabsTrigger, TabsContent };
@@ -0,0 +1,6 @@
1
+ export declare const tabsListVariants: (props?: ({
2
+ size?: "default" | "icon" | null | undefined;
3
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
4
+ export declare const tabsTriggerVariants: (props?: ({
5
+ size?: "default" | "icon" | null | undefined;
6
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
@@ -0,0 +1,37 @@
1
+ import * as React from 'react';
2
+ export interface TextAreaProps extends React.InputHTMLAttributes<HTMLTextAreaElement> {
3
+ error?: string | boolean;
4
+ rows: number;
5
+ onEnter?: (value: string) => void;
6
+ }
7
+ /**
8
+ * Компонент текстовой области с расширенной функциональностью, включая подсчет символов,
9
+ * обработку нажатия Enter и отображение ошибок.
10
+ *
11
+ * @component
12
+ * @param {object} props - Параметры компонента
13
+ * @param {string} [props.className] - Дополнительные CSS-классы
14
+ * @param {string|boolean} [props.error] - Флаг или сообщение об ошибке
15
+ * @param {number} props.rows - Количество видимых строк текста
16
+ * @param {function} [props.onEnter] - Callback-функция при нажатии Enter
17
+ * @param {React.InputHTMLAttributes<HTMLTextAreaElement>} props - Стандартные свойства textarea
18
+ * @param {React.Ref<HTMLTextAreaElement>} ref - Реф для доступа к DOM-элементу
19
+ * @returns {React.ReactElement} Текстовая область с дополнительной функциональностью
20
+ *
21
+ * @example
22
+ * <TextArea
23
+ * placeholder="Введите текст"
24
+ * rows={4}
25
+ * maxLength={500}
26
+ * onEnter={(value) => console.log(value)}
27
+ * />
28
+ *
29
+ * @example
30
+ * <TextArea
31
+ * placeholder="Введите текст"
32
+ * rows={4}
33
+ * error="Обязательное поле"
34
+ * />
35
+ */
36
+ declare const TextArea: React.ForwardRefExoticComponent<TextAreaProps & React.RefAttributes<HTMLTextAreaElement>>;
37
+ export { TextArea };
@@ -0,0 +1,136 @@
1
+ export type Theme = 'dark' | 'light' | 'system';
2
+ /**
3
+ * Версия темы. Определяет постфикс для классов тем в CSS.
4
+ *
5
+ * **Как расширять тип:**
6
+ * Для добавления новой версии темы расширьте тип через union:
7
+ * ```typescript
8
+ * export type ThemeVersion = 'Krit' | 'NordGold' | 'Hunter';
9
+ * ```
10
+ *
11
+ * **Правила именования классов в CSS:**
12
+ * - Классы должны начинаться с `light` или `dark`
13
+ * - После базового названия темы должен идти постфикс версии (значение из ThemeVersion)
14
+ * - Примеры корректных классов:
15
+ * - `light` (версия не указана или пустая строка)
16
+ * - `dark` (версия не указана или пустая строка)
17
+ * - `lightKrit` (themeVersion='Krit')
18
+ * - `darkKrit` (themeVersion='Krit')
19
+ * - `lightNordGold` (themeVersion='NordGold')
20
+ * - `darkNordGold` (themeVersion='NordGold')
21
+ * - `lightHunter` (themeVersion='Hunter')
22
+ * - `darkHunter` (themeVersion='Hunter')
23
+ * - `light_project_name` (themeVersion='project_name')
24
+ * - `dark_project_name` (themeVersion='project_name')
25
+ *
26
+ * **Пример использования:**
27
+ * При `themeVersion='Krit'` будут применяться классы `.light`, `.lightKrit` и `.dark`, `.darkKrit`.
28
+ * При `themeVersion='NordGold'` будут применяться классы `.light`, `.lightNordGold` и `.dark`, `.darkNordGold`.
29
+ * При `themeVersion='Hunter'` будут применяться классы `.light`, `.lightHunter` и `.dark`, `.darkHunter`.
30
+ * Эти классы должны быть определены в соответствующем CSS файле (например, `colorsKrit.css`, `colorsNordGold.css`, `colorsHunter.css`).
31
+ * Базовые классы `.light` и `.dark` всегда добавляются вместе с классами версии темы.
32
+ *
33
+ * **Важно:**
34
+ * - Значение `themeVersion` должно точно соответствовать постфиксу в CSS классах
35
+ * - Классы автоматически удаляются из DOM перед применением новой темы
36
+ * - Все классы, начинающиеся с `light` или `dark`, будут удалены при переключении темы
37
+ */
38
+ export type ThemeVersion = 'Krit' | 'NordGold' | 'Hunter';
39
+ declare const translations: {
40
+ expand: string;
41
+ empty: string;
42
+ confirmAction: string;
43
+ warning: string;
44
+ maxNChars: string;
45
+ cancellation: string;
46
+ displayBy: string;
47
+ selected: string;
48
+ all: string;
49
+ of: string;
50
+ selectDate: string;
51
+ search: string;
52
+ notFound: string;
53
+ networkError: string;
54
+ refetch: string;
55
+ attachFile: string;
56
+ errorOccurred: string;
57
+ noMediaFiles: string;
58
+ networkErrorDescription: string;
59
+ confirmDeleteMedia: string;
60
+ delete: string;
61
+ imageSizeLimitMB: string;
62
+ audioSizeLimitMB: string;
63
+ pdfSizeLimitMB: string;
64
+ videoSizeLimitMB: string;
65
+ maxSizeOfFilesMB: string;
66
+ mb: string;
67
+ apply: string;
68
+ showAll: string;
69
+ chooseAll: string;
70
+ withoutSort: string;
71
+ listView: string;
72
+ tableView: string;
73
+ };
74
+ export type Translations = keyof typeof translations;
75
+ export type ThemeProviderProps = {
76
+ children: React.ReactNode;
77
+ /**
78
+ * Тема по умолчанию, которая будет применена при инициализации.
79
+ * Если не указана, будет использована системная тема или тема,
80
+ * сохраненная в localStorage (если `storageKey` указан).
81
+ */
82
+ defaultTheme?: Theme;
83
+ /**
84
+ * Ключ для сохранения текущей темы в localStorage.
85
+ * Позволяет сохранять выбор темы пользователя между сессиями.
86
+ * Если не указан, тема не сохраняется.
87
+ */
88
+ storageKey?: string;
89
+ /**
90
+ * Переводы для текстов.
91
+ * Ключи объекта — это идентификаторы переводов, значения — сами переводы.
92
+ */
93
+ translations?: Record<Translations, string>;
94
+ /**
95
+ * Версия темы. Если указана, классы будут применены с постфиксом версии.
96
+ * Например, при themeVersion='2' будут использоваться классы .light2 и .dark2.
97
+ * Должна соответствовать классу в используемом colors.css файле.
98
+ */
99
+ themeVersion?: ThemeVersion;
100
+ };
101
+ export type ThemeProviderState = {
102
+ theme: Theme;
103
+ setTheme: (theme: Theme) => void;
104
+ toggleTheme: () => void;
105
+ translations: Record<Translations, string>;
106
+ };
107
+ export declare const ThemeProviderContext: import('react').Context<ThemeProviderState>;
108
+ /**
109
+ * Провайдер темы для приложения. Управляет цветовой темой, переводами и CSS-переменными.
110
+ * Обеспечивает контекст для дочерних компонентов к текущей теме и функциям её изменения.
111
+ * Поддерживает сохранение выбранной темы в localStorage и синхронизацию с системными настройками.
112
+ *
113
+ * @component
114
+ * @param {object} props - Параметры компонента
115
+ * @param {React.ReactNode} props.children - Дочерние компоненты
116
+ * @param {Theme} [props.defaultTheme='system'] - Тема по умолчанию
117
+ * @param {string} [props.storageKey='app-ui-theme'] - Ключ для сохранения темы в localStorage
118
+ * @param {Record<Translations, string>} [props.translations] - Кастомные переводы
119
+ * @param {ThemeVersion} [props.themeVersion] - Версия темы (например, '2' для классов .light2 и .dark2)
120
+ * @returns {React.ReactElement} Провайдер темы с контекстом
121
+ *
122
+ * @example
123
+ * <ThemeProvider defaultTheme="dark" storageKey="my-app-theme">
124
+ * <App />
125
+ * </ThemeProvider>
126
+ *
127
+ * @example
128
+ * <ThemeProvider
129
+ * themeVersion="2"
130
+ * defaultTheme="dark"
131
+ * >
132
+ * <App />
133
+ * </ThemeProvider>
134
+ */
135
+ export declare function ThemeProvider({ children, defaultTheme, storageKey, themeVersion, ...props }: ThemeProviderProps): import("react/jsx-runtime").JSX.Element;
136
+ export {};
@@ -0,0 +1,29 @@
1
+ import { InputProps } from './input';
2
+ import * as React from 'react';
3
+ export interface TimePickerProps extends Omit<InputProps, 'onChange' | 'value' | 'type'> {
4
+ value: string;
5
+ onChange: (value: string) => void;
6
+ }
7
+ /**
8
+ * Компонент выбора времени с маской ввода и выпадающим списком для удобного выбора.
9
+ * Поддерживает ручной ввод через клавиатуру и выбор через интерфейс с колонками часов и минут.
10
+ * Автоматически форматирует введенное время и валидирует значения.
11
+ *
12
+ * @component
13
+ * @param {object} props - Параметры компонента
14
+ * @param {string} props.value - Текущее значение времени в формате HH:MM
15
+ * @param {function} props.onChange - Callback-функция при изменении значения
16
+ * @param {string} [props.placeholder] - Текст-подсказка
17
+ * @param {string} [props.className] - Дополнительные CSS-классы
18
+ * @param {React.Ref<HTMLInputElement>} ref - Реф для доступа к DOM-элементу input
19
+ * @returns {React.ReactElement} Компонент выбора времени
20
+ *
21
+ * @example
22
+ * <TimePicker
23
+ * value="14:30"
24
+ * onChange={(time) => console.log(time)}
25
+ * placeholder="Выберите время"
26
+ * />
27
+ */
28
+ declare const TimePicker: React.ForwardRefExoticComponent<TimePickerProps & React.RefAttributes<HTMLInputElement>>;
29
+ export { TimePicker };
@@ -0,0 +1,6 @@
1
+ interface TimeBounds {
2
+ min?: string | number;
3
+ max?: string | number;
4
+ }
5
+ export declare const clampTimeByBounds: (value: string, { min, max }?: TimeBounds) => string;
6
+ export {};
@@ -0,0 +1,80 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import * as React from 'react';
3
+ import * as ToastPrimitives from '@radix-ui/react-toast';
4
+ /**
5
+ * Провайдер для системы уведомлений Toast.
6
+ * Обеспечивает контекст и управление состоянием для всех Toast-компонентов.
7
+ *
8
+ * @component
9
+ * @param {React.ComponentProps<typeof ToastPrimitives.Provider>} props - Свойства провайдера
10
+ * @returns {React.ReactElement} Провайдер системы уведомлений
11
+ */
12
+ declare const ToastProvider: React.FC<ToastPrimitives.ToastProviderProps>;
13
+ /**
14
+ * Контейнер для отображения Toast-уведомлений.
15
+ * Фиксирует позицию и стилизацию области показа уведомлений.
16
+ *
17
+ * @component
18
+ * @param {object} props - Свойства компонента
19
+ * @param {string} [props.className] - Дополнительные CSS-классы
20
+ * @param {React.Ref<React.ElementRef<typeof ToastPrimitives.Viewport>>} ref - React ref
21
+ * @returns {React.ReactElement} Контейнер для уведомлений
22
+ */
23
+ declare const ToastViewport: React.ForwardRefExoticComponent<Omit<ToastPrimitives.ToastViewportProps & React.RefAttributes<HTMLOListElement>, "ref"> & React.RefAttributes<HTMLOListElement>>;
24
+ /**
25
+ * Основной компонент Toast-уведомления.
26
+ * Поддерживает различные варианты отображения (default, destructive, success).
27
+ *
28
+ * @component
29
+ * @param {object} props - Свойства компонента
30
+ * @param {string} [props.className] - Дополнительные CSS-классы
31
+ * @param {'default' | 'destructive' | 'success'} [props.variant] - Вариант стилизации
32
+ * @param {React.Ref<React.ElementRef<typeof ToastPrimitives.Root>>} ref - React ref
33
+ * @returns {React.ReactElement} Компонент уведомления
34
+ */
35
+ declare const Toast: React.ForwardRefExoticComponent<Omit<ToastPrimitives.ToastProps & React.RefAttributes<HTMLLIElement>, "ref"> & VariantProps<(props?: ({
36
+ variant?: "default" | "destructive" | "success" | null | undefined;
37
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string> & React.RefAttributes<HTMLLIElement>>;
38
+ /**
39
+ * Кнопка действия внутри Toast-уведомления.
40
+ *
41
+ * @component
42
+ * @param {object} props - Свойства компонента
43
+ * @param {string} [props.className] - Дополнительные CSS-классы
44
+ * @param {React.Ref<React.ElementRef<typeof ToastPrimitives.Action>>} ref - React ref
45
+ * @returns {React.ReactElement} Кнопка действия
46
+ */
47
+ declare const ToastAction: React.ForwardRefExoticComponent<Omit<ToastPrimitives.ToastActionProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
48
+ /**
49
+ * Кнопка закрытия Toast-уведомления.
50
+ *
51
+ * @component
52
+ * @param {object} props - Свойства компонента
53
+ * @param {string} [props.className] - Дополнительные CSS-классы
54
+ * @param {React.Ref<React.ElementRef<typeof ToastPrimitives.Close>>} ref - React ref
55
+ * @returns {React.ReactElement} Кнопка закрытия
56
+ */
57
+ declare const ToastClose: React.ForwardRefExoticComponent<Omit<ToastPrimitives.ToastCloseProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
58
+ /**
59
+ * Заголовок Toast-уведомления.
60
+ *
61
+ * @component
62
+ * @param {object} props - Свойства компонента
63
+ * @param {string} [props.className] - Дополнительные CSS-классы
64
+ * @param {React.Ref<React.ElementRef<typeof ToastPrimitives.Title>>} ref - React ref
65
+ * @returns {React.ReactElement} Заголовок уведомления
66
+ */
67
+ declare const ToastTitle: React.ForwardRefExoticComponent<Omit<ToastPrimitives.ToastTitleProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
68
+ /**
69
+ * Описание/содержание Toast-уведомления.
70
+ *
71
+ * @component
72
+ * @param {object} props - Свойства компонента
73
+ * @param {string} [props.className] - Дополнительные CSS-классы
74
+ * @param {React.Ref<React.ElementRef<typeof ToastPrimitives.Description>>} ref - React ref
75
+ * @returns {React.ReactElement} Описание уведомления
76
+ */
77
+ declare const ToastDescription: React.ForwardRefExoticComponent<Omit<ToastPrimitives.ToastDescriptionProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
78
+ type ToastProps = React.ComponentPropsWithoutRef<typeof Toast>;
79
+ type ToastActionElement = React.ReactElement<typeof ToastAction>;
80
+ export { type ToastProps, type ToastActionElement, ToastProvider, ToastViewport, Toast, ToastTitle, ToastDescription, ToastClose, ToastAction, };
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Пропсы компонента Toaster
3
+ * @interface ToasterProps
4
+ * @property {string} [viewportClassname] - Дополнительные CSS-классы для контейнера уведомлений
5
+ */
6
+ interface ToasterProps {
7
+ viewportClassname?: string;
8
+ }
9
+ /**
10
+ * Компонент для отображения системы уведомлений Toast.
11
+ * Обеспечивает рендеринг всех активных уведомлений в портале.
12
+ * Использует Radix UI Portal для корректного позиционирования.
13
+ *
14
+ * @component
15
+ * @param {ToasterProps} props - Пропсы компонента
16
+ * @returns {React.ReactElement} Провайдер и контейнер для уведомлений
17
+ *
18
+ * @example
19
+ * <Toaster viewportClassname="custom-viewport" />
20
+ */
21
+ export declare function Toaster(props: ToasterProps): import("react/jsx-runtime").JSX.Element;
22
+ export {};