@via-profit/ui-kit 0.2.1-alpha.1 → 0.2.2

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 (143) hide show
  1. package/Autocomplete/AutocompleteContainer.d.ts +33 -6
  2. package/Autocomplete/AutocompleteContainer.js +48 -36
  3. package/Autocomplete/AutocompleteItem.d.ts +1 -1
  4. package/Autocomplete/AutocompleteTextField.d.ts +3 -0
  5. package/Autocomplete/AutocompleteTextField.js +63 -1
  6. package/Autocomplete/OverrideMenuList.d.ts +4 -0
  7. package/Autocomplete/OverrideMenuList.js +39 -0
  8. package/Autocomplete/context.d.ts +9 -1
  9. package/Autocomplete/context.js +15 -1
  10. package/Autocomplete/index.js +9 -10
  11. package/Autocomplete2/Autocomplete2.d.ts +12 -0
  12. package/Autocomplete2/Autocomplete2.js +83 -0
  13. package/Autocomplete2/Autocomplete2TextField.d.ts +7 -0
  14. package/Autocomplete2/Autocomplete2TextField.js +39 -0
  15. package/Autocomplete2/index.d.ts +2 -0
  16. package/Autocomplete2/index.js +7 -0
  17. package/Avatar/index.js +1 -1
  18. package/Badge/BadgeDeleteButton.js +6 -6
  19. package/Badge/BadgeOutlined.js +2 -2
  20. package/Badge/BadgeStandard.js +1 -1
  21. package/Button/ButtonOutlined.js +1 -1
  22. package/Button/ButtonPlain.js +1 -1
  23. package/Button/ButtonStandard.js +4 -11
  24. package/Calendar/CalendarCell.js +6 -2
  25. package/Calendar/CalendarComponent.d.ts +226 -0
  26. package/Calendar/CalendarComponent.js +572 -0
  27. package/Calendar/CalendarControlButton.js +16 -9
  28. package/Calendar/CalendarDayBadge.js +1 -1
  29. package/Calendar/CalendarEmptyCell.d.ts +2 -2
  30. package/Calendar/CalendarEmptyCell.js +8 -3
  31. package/Calendar/CalendarHeading.js +2 -1
  32. package/Calendar/CalendarSubheading.js +3 -2
  33. package/Calendar/CalendarWeekDayCell.d.ts +10 -0
  34. package/Calendar/CalendarWeekDayCell.js +32 -0
  35. package/Calendar/CalendarWeekDayWeekNumber.d.ts +7 -0
  36. package/Calendar/CalendarWeekDayWeekNumber.js +38 -0
  37. package/Calendar/CalendarWeekRow.d.ts +2 -2
  38. package/Calendar/CalendarWeekRow.js +2 -1
  39. package/Calendar/CalendarWeekRowButton.d.ts +13 -0
  40. package/Calendar/CalendarWeekRowButton.js +31 -0
  41. package/Calendar/CalendarYearsSelector.d.ts +39 -1
  42. package/Calendar/CalendarYearsSelector.js +52 -16
  43. package/Calendar/IconChevronDown.d.ts +3 -0
  44. package/Calendar/IconChevronDown.js +31 -0
  45. package/Calendar/index.d.ts +7 -224
  46. package/Calendar/index.js +19 -281
  47. package/Calendar/use-calendar.d.ts +1 -1
  48. package/Color/Color.d.ts +138 -0
  49. package/Color/Color.js +324 -0
  50. package/Color/ColorGenerator.d.ts +29 -0
  51. package/Color/ColorGenerator.js +141 -0
  52. package/Color/ColorParser.d.ts +20 -0
  53. package/Color/ColorParser.js +284 -0
  54. package/Color/index.d.ts +4 -122
  55. package/Color/index.js +18 -473
  56. package/CountryFlags/SwiperOverview.d.ts +257 -0
  57. package/CountryFlags/SwiperOverview.js +524 -0
  58. package/DatePicker/index.d.ts +2 -17
  59. package/DatePicker/index.js +47 -61
  60. package/DatePicker/useDatePickerFormat.js +5 -5
  61. package/ErrorBoundary/Fallback.d.ts +3 -0
  62. package/ErrorBoundary/Fallback.js +51 -0
  63. package/ErrorBoundary/RenderError.d.ts +6 -0
  64. package/ErrorBoundary/RenderError.js +80 -0
  65. package/ErrorBoundary/index.d.ts +7 -11
  66. package/ErrorBoundary/index.js +4 -51
  67. package/LoadingIndicator/Spinner.d.ts +5 -3
  68. package/LoadingIndicator/Spinner.js +61 -32
  69. package/LoadingIndicator/index.d.ts +3 -3
  70. package/LoadingIndicator/index.js +15 -2
  71. package/MaskedField/index.d.ts +2 -1
  72. package/MaskedField/index.js +52 -43
  73. package/MaskedField/useMasked.js +7 -5
  74. package/Menu/AutoHeightWrapper.d.ts +6 -0
  75. package/Menu/AutoHeightWrapper.js +43 -0
  76. package/Menu/MeasuredItem.d.ts +10 -0
  77. package/Menu/MeasuredItem.js +51 -0
  78. package/Menu/MenuContainer.d.ts +51 -18
  79. package/Menu/MenuContainer.js +19 -12
  80. package/Menu/MenuItem.d.ts +24 -7
  81. package/Menu/MenuItem.js +13 -6
  82. package/Menu/MenuList.d.ts +4 -2
  83. package/Menu/MenuList.js +26 -6
  84. package/Menu/VirtualizedItem.d.ts +22 -0
  85. package/Menu/VirtualizedItem.js +69 -0
  86. package/Menu/VirtualizedList.d.ts +18 -0
  87. package/Menu/VirtualizedList.js +28 -0
  88. package/Menu/VirtualizedListComponent.d.ts +20 -0
  89. package/Menu/VirtualizedListComponent.js +305 -0
  90. package/Menu/index.d.ts +3 -1
  91. package/Menu/index.js +2 -0
  92. package/Popper/Popper.d.ts +7 -80
  93. package/Popper/Popper.js +26 -12
  94. package/Popper/PopperContainer.js +1 -1
  95. package/Popper/usePopprer.d.ts +88 -3
  96. package/Popper/usePopprer.js +240 -65
  97. package/Selectbox/SelectboxButton.d.ts +5 -0
  98. package/Selectbox/SelectboxButton.js +48 -8
  99. package/Selectbox/SelectboxButtonWrapper.d.ts +2 -0
  100. package/Selectbox/SelectboxButtonWrapper.js +1 -17
  101. package/Selectbox/SelectboxMenu.d.ts +12 -0
  102. package/Selectbox/SelectboxMenu.js +50 -0
  103. package/Selectbox/index.d.ts +5 -5
  104. package/Selectbox/index.js +115 -97
  105. package/Surface/index.js +1 -1
  106. package/Swiper/Swiper.d.ts +57 -0
  107. package/Swiper/Swiper.js +412 -0
  108. package/Swiper/SwiperContainer.d.ts +7 -0
  109. package/Swiper/SwiperContainer.js +15 -0
  110. package/Swiper/SwiperSlide.d.ts +12 -0
  111. package/Swiper/SwiperSlide.js +58 -0
  112. package/Swiper/SwiperSlidesRenderer.d.ts +11 -0
  113. package/Swiper/SwiperSlidesRenderer.js +74 -0
  114. package/Swiper/SwiperTrack.d.ts +18 -0
  115. package/Swiper/SwiperTrack.js +55 -0
  116. package/Swiper/SwiperWrapper.d.ts +16 -0
  117. package/Swiper/SwiperWrapper.js +60 -0
  118. package/Swiper/index.d.ts +7 -0
  119. package/Swiper/index.js +26 -0
  120. package/Switch/SwitchDot.js +1 -1
  121. package/Switch/SwitchTrack.js +1 -1
  122. package/TextField/TextFieldContainer.d.ts +2 -2
  123. package/TextField/TextFieldContainer.js +5 -3
  124. package/TextField/TextFieldErrorText.d.ts +2 -2
  125. package/TextField/TextFieldErrorText.js +5 -4
  126. package/TextField/TextFieldIconWrapper.d.ts +3 -3
  127. package/TextField/TextFieldIconWrapper.js +5 -3
  128. package/TextField/TextFieldInput.d.ts +2 -2
  129. package/TextField/TextFieldInput.js +6 -4
  130. package/TextField/TextFieldInputWrapper.d.ts +2 -2
  131. package/TextField/TextFieldInputWrapper.js +5 -3
  132. package/TextField/TextFieldLabel.d.ts +2 -2
  133. package/TextField/TextFieldLabel.js +5 -3
  134. package/TextField/TextFieldLabelAsterisk.d.ts +2 -2
  135. package/TextField/TextFieldLabelAsterisk.js +5 -3
  136. package/TextField/index.d.ts +8 -1
  137. package/TextField/index.js +49 -22
  138. package/ThemeProvider/createTheme.js +2 -2
  139. package/package.json +1 -1
  140. package/Calendar/reducer.d.ts +0 -17
  141. package/Calendar/reducer.js +0 -50
  142. /package/Calendar/{IconChevronRight.d.ts → CalendarIconNext.d.ts} +0 -0
  143. /package/Calendar/{IconChevronRight.js → CalendarIconNext.js} +0 -0
package/Calendar/index.js CHANGED
@@ -10,6 +10,18 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
10
10
  if (k2 === undefined) k2 = k;
11
11
  o[k2] = m[k];
12
12
  }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
13
25
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
26
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
27
  };
@@ -17,285 +29,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
17
29
  return (mod && mod.__esModule) ? mod : { "default": mod };
18
30
  };
19
31
  Object.defineProperty(exports, "__esModule", { value: true });
20
- const react_1 = __importDefault(require("react"));
21
- const CalendarBody_1 = __importDefault(require("./CalendarBody"));
22
- const CalendarCell_1 = __importDefault(require("./CalendarCell"));
23
- const CalendarEmptyCell_1 = __importDefault(require("./CalendarEmptyCell"));
24
- const CalendarPaper_1 = __importDefault(require("./CalendarPaper"));
25
- const CalendarHeader_1 = __importDefault(require("./CalendarHeader"));
26
- const CalendarWeekRow_1 = __importDefault(require("./CalendarWeekRow"));
27
- const CalendarDateContainer_1 = __importDefault(require("./CalendarDateContainer"));
28
- const CalendarToolbar_1 = __importDefault(require("./CalendarToolbar"));
29
- const CalendarYearsSelector_1 = __importDefault(require("./CalendarYearsSelector"));
30
- const CalendarMonthsSelector_1 = __importDefault(require("./CalendarMonthsSelector"));
31
- const CalendarMonthCell_1 = __importDefault(require("./CalendarMonthCell"));
32
- const CalendarYearCell_1 = __importDefault(require("./CalendarYearCell"));
33
- const CalendarDayBadge_1 = __importDefault(require("./CalendarDayBadge"));
34
- const CalendarFooter_1 = __importDefault(require("./CalendarFooter"));
35
- const CalendarControlButton_1 = __importDefault(require("./CalendarControlButton"));
36
- const CalendarHeading_1 = __importDefault(require("./CalendarHeading"));
37
- const CalendarSubheading_1 = __importDefault(require("./CalendarSubheading"));
38
- const CalendarIconPrev_1 = __importDefault(require("./CalendarIconPrev"));
39
- const IconChevronRight_1 = __importDefault(require("./IconChevronRight"));
40
- const CalendarWeekDaysBar_1 = __importDefault(require("./CalendarWeekDaysBar"));
41
- const use_calendar_1 = require("./use-calendar");
42
- const reducer_1 = require("./reducer");
43
- __exportStar(require("./use-calendar"), exports);
44
- __exportStar(require("./CalendarWeekDaysBar"), exports);
45
- const Calendar = (props) => {
46
- const { minDate = new Date(new Date().getFullYear() - 100, 0, 1, 0, 0, 0), maxDate = new Date(new Date().getFullYear() + 100, 0, 1, 0, 0, 0), weekStartDay = 'monday', locale = 'ru-RU', displayLeadingZero = false, onChange, badges = [], value, defaultValue, markToday, weekDayLabelFormat = 'short', accentColor = 'primary', prevMonthButtonTooltip, nextMonthButtonTooltip, changeMonthButtonTooltip, changeYearButtonTooltip, initialView, views, resetButtonLabel, todayButtonLabel, heading, subheading, footer, overrides, range = false, } = props;
47
- if (typeof value !== 'undefined' && typeof onChange === 'undefined') {
48
- throw new Error('You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange`.');
49
- }
50
- const overridesMap = react_1.default.useMemo(() => ({
51
- Body: (overrides === null || overrides === void 0 ? void 0 : overrides.Body) || CalendarBody_1.default,
52
- Cell: (overrides === null || overrides === void 0 ? void 0 : overrides.Cell) || CalendarCell_1.default,
53
- EmptyCell: (overrides === null || overrides === void 0 ? void 0 : overrides.EmptyCell) || CalendarEmptyCell_1.default,
54
- Paper: (overrides === null || overrides === void 0 ? void 0 : overrides.Paper) || CalendarPaper_1.default,
55
- Header: (overrides === null || overrides === void 0 ? void 0 : overrides.Header) || CalendarHeader_1.default,
56
- WeekRow: (overrides === null || overrides === void 0 ? void 0 : overrides.WeekRow) || CalendarWeekRow_1.default,
57
- DateContainer: (overrides === null || overrides === void 0 ? void 0 : overrides.DateContainer) || CalendarDateContainer_1.default,
58
- Toolbar: (overrides === null || overrides === void 0 ? void 0 : overrides.Toolbar) || CalendarToolbar_1.default,
59
- YearsSelector: (overrides === null || overrides === void 0 ? void 0 : overrides.YearsSelector) || CalendarYearsSelector_1.default,
60
- MonthsSelector: (overrides === null || overrides === void 0 ? void 0 : overrides.MonthsSelector) || CalendarMonthsSelector_1.default,
61
- MonthCell: (overrides === null || overrides === void 0 ? void 0 : overrides.MonthCell) || CalendarMonthCell_1.default,
62
- YearCell: (overrides === null || overrides === void 0 ? void 0 : overrides.YearCell) || CalendarYearCell_1.default,
63
- DayBadge: (overrides === null || overrides === void 0 ? void 0 : overrides.DayBadge) || CalendarDayBadge_1.default,
64
- Footer: (overrides === null || overrides === void 0 ? void 0 : overrides.Footer) || CalendarFooter_1.default,
65
- ControlButton: (overrides === null || overrides === void 0 ? void 0 : overrides.ControlButton) || CalendarControlButton_1.default,
66
- Heading: (overrides === null || overrides === void 0 ? void 0 : overrides.Heading) || CalendarHeading_1.default,
67
- Subheading: (overrides === null || overrides === void 0 ? void 0 : overrides.Subheading) || CalendarSubheading_1.default,
68
- IconPrev: (overrides === null || overrides === void 0 ? void 0 : overrides.IconPrev) || CalendarIconPrev_1.default,
69
- IconNext: (overrides === null || overrides === void 0 ? void 0 : overrides.IconNext) || IconChevronRight_1.default,
70
- WeekDaysBar: (overrides === null || overrides === void 0 ? void 0 : overrides.WeekDaysBar) || CalendarWeekDaysBar_1.default,
71
- }), [overrides]);
72
- const realValue = react_1.default.useMemo(() => typeof value !== 'undefined'
73
- ? value
74
- : typeof defaultValue !== 'undefined'
75
- ? defaultValue
76
- : new Date(), [value, defaultValue]);
77
- const initialProps = react_1.default.useRef({
78
- value: realValue,
79
- badges,
80
- initialView,
81
- views,
82
- });
83
- const initialState = Object.assign(Object.assign({}, (0, reducer_1.createDefaultState)(range, {
84
- initialView,
85
- views,
86
- })), { calendarValue: realValue, calendarDate: Array.isArray(realValue) ? realValue[0] : realValue });
87
- const [state, dispatch] = react_1.default.useReducer(reducer_1.reducer, initialState);
88
- const { isSameDay, getWeeks, getDayLabel, getMonthLabel, getYearLabel, getYearsRange, getMonthsRange, } = (0, use_calendar_1.useCalendar)({
89
- minDate,
90
- maxDate,
91
- weekStartDay,
92
- locale,
93
- displayLeadingZero,
94
- });
95
- const { calendarCurrentView, calendarViewVariants, calendarValue, calendarDate } = state;
96
- /**
97
- * Prev and next month buttons
98
- */
99
- const handleChangeMonthClick = react_1.default.useCallback((type) => () => {
100
- const newDate = type === 'prev'
101
- ? new Date(calendarDate.getFullYear(), calendarDate.getMonth() - 1, 1)
102
- : new Date(calendarDate.getFullYear(), calendarDate.getMonth() + 1, 1);
103
- dispatch({ type: 'setPartial', payload: { calendarDate: newDate } });
104
- }, [calendarDate]);
105
- /**
106
- * Date props was changed
107
- */
108
- react_1.default.useEffect(() => {
109
- if (typeof value !== 'undefined') {
110
- dispatch({
111
- type: 'setPartial',
112
- payload: {
113
- calendarValue: value,
114
- // calendarDate: Array.isArray(value) ? value[0] : value,
115
- },
116
- });
117
- }
118
- }, [value, calendarValue, isSameDay, dispatch]);
119
- /**
120
- * Handles click on a day cell.
121
- * Range selection follows a simple two‑click model:
122
- * 1) First click sets the start date.
123
- * 2) Second click sets the end date.
124
- * If a full range is already selected, a new click starts a new range.
125
- */
126
- const handleCellDateClick = react_1.default.useCallback((selectedDate) => () => {
127
- if (!onChange) {
128
- return;
129
- }
130
- // Single-date mode
131
- if (!range) {
132
- onChange(selectedDate);
133
- return;
134
- }
135
- const [from, to] = calendarValue;
136
- // No range selected yet → first click
137
- if (!from && !to) {
138
- onChange([selectedDate, selectedDate]);
139
- return;
140
- }
141
- // Only start date selected → second click
142
- if (from && (!to || from.getTime() === to.getTime())) {
143
- if (selectedDate < from) {
144
- // User clicked before the start → swap
145
- onChange([selectedDate, from]);
146
- }
147
- else {
148
- // Normal forward range
149
- onChange([from, selectedDate]);
150
- }
151
- return;
152
- }
153
- // Full range already selected → start a new range
154
- onChange([selectedDate, selectedDate]);
155
- }, [onChange, calendarValue, range]);
156
- /**
157
- * Handle of click on year item
158
- */
159
- const handleYearSelected = react_1.default.useCallback((selectedYear) => () => {
160
- const newDate = new Date(calendarDate);
161
- newDate.setFullYear(selectedYear);
162
- newDate.setMonth(calendarDate.getMonth());
163
- newDate.setDate(1);
164
- newDate.setHours(0);
165
- newDate.setMinutes(0);
166
- newDate.setMilliseconds(0);
167
- const nextView = calendarViewVariants.includes('days') ? 'days' : undefined;
168
- dispatch({
169
- type: 'setPartial',
170
- payload: {
171
- calendarDate: newDate,
172
- calendarCurrentView: nextView !== null && nextView !== void 0 ? nextView : calendarCurrentView,
173
- },
174
- });
175
- if (!nextView && typeof onChange === 'function') {
176
- handleCellDateClick(newDate)();
177
- }
178
- }, [calendarCurrentView, calendarDate, calendarViewVariants, handleCellDateClick, onChange]);
179
- /**
180
- * Handle of click on month item
181
- */
182
- const handleMonthSelected = react_1.default.useCallback((monthIndex) => () => {
183
- const newDate = new Date(calendarDate);
184
- newDate.setMonth(monthIndex);
185
- newDate.setDate(1);
186
- newDate.setHours(0);
187
- newDate.setMinutes(0);
188
- newDate.setMilliseconds(0);
189
- const nextView = calendarViewVariants.includes('days') ? 'days' : undefined;
190
- dispatch({
191
- type: 'setPartial',
192
- payload: {
193
- calendarDate: newDate,
194
- calendarCurrentView: nextView !== null && nextView !== void 0 ? nextView : calendarCurrentView,
195
- },
196
- });
197
- if (!nextView && typeof onChange === 'function') {
198
- handleCellDateClick(newDate)();
199
- }
200
- }, [calendarDate, calendarViewVariants, handleCellDateClick, onChange, calendarCurrentView]);
201
- /**
202
- * Manual view changing
203
- */
204
- const handleChangeView = react_1.default.useCallback((selectedView) => () => {
205
- if (!calendarViewVariants.includes(selectedView)) {
206
- return;
207
- }
208
- dispatch({
209
- type: 'setPartial',
210
- payload: {
211
- calendarCurrentView: selectedView,
212
- },
213
- });
214
- }, [calendarViewVariants]);
215
- /**
216
- * Handle click on «Reset» button
217
- */
218
- const handleReset = react_1.default.useCallback(() => {
219
- dispatch({
220
- type: 'setPartial',
221
- payload: {
222
- calendarCurrentView: initialProps.current.initialView,
223
- calendarDate: initialProps.current.value,
224
- calendarValue: initialProps.current.value,
225
- },
226
- });
227
- if (typeof onChange === 'function') {
228
- onChange(initialProps.current.value);
229
- }
230
- }, [onChange]);
231
- /**
232
- * Handle click on «Today» button
233
- */
234
- const handleToday = react_1.default.useCallback(() => {
235
- const today = new Date();
236
- today.setHours(0);
237
- today.setMinutes(0);
238
- today.setSeconds(0);
239
- today.setMilliseconds(0);
240
- dispatch({
241
- type: 'setPartial',
242
- payload: {
243
- calendarDate: today,
244
- },
245
- });
246
- }, []);
247
- const weeks = react_1.default.useMemo(() => (calendarCurrentView === 'days' ? getWeeks(calendarDate) : []), [calendarCurrentView, calendarDate, getWeeks]);
248
- const yearsRange = react_1.default.useMemo(() => (calendarCurrentView === 'years' ? getYearsRange(minDate, maxDate) : []), [calendarCurrentView, minDate, maxDate, getYearsRange]);
249
- const monthsRange = react_1.default.useMemo(() => (calendarCurrentView === 'months' ? getMonthsRange(minDate, maxDate) : []), [calendarCurrentView, minDate, maxDate, getMonthsRange]);
250
- const normalizedRange = react_1.default.useMemo(() => {
251
- const [from, to] = Array.isArray(calendarValue)
252
- ? calendarValue[0].getTime() <= calendarValue[1].getTime()
253
- ? calendarValue
254
- : [calendarValue[1], calendarValue[0]]
255
- : [calendarValue, calendarValue];
256
- return [from, to];
257
- }, [calendarValue]);
258
- return (react_1.default.createElement(overridesMap.Paper, null,
259
- react_1.default.createElement(overridesMap.Header, null,
260
- typeof heading !== 'undefined' && react_1.default.createElement(overridesMap.Heading, null, heading),
261
- typeof subheading !== 'undefined' && (react_1.default.createElement(overridesMap.Subheading, null, subheading)),
262
- react_1.default.createElement(overridesMap.Toolbar, null,
263
- react_1.default.createElement(overridesMap.ControlButton, { iconOnly: true, onClick: handleChangeMonthClick('prev'), title: prevMonthButtonTooltip, disabled: calendarCurrentView !== 'days' },
264
- react_1.default.createElement(overridesMap.IconPrev, null)),
265
- react_1.default.createElement(overridesMap.ControlButton, { title: changeMonthButtonTooltip, isActive: calendarCurrentView === 'months', disabled: !calendarViewVariants.includes('months'), onClick: handleChangeView(calendarCurrentView === 'months' ? 'days' : 'months') }, getMonthLabel(calendarDate)),
266
- react_1.default.createElement(overridesMap.ControlButton, { isActive: calendarCurrentView === 'years', disabled: !calendarViewVariants.includes('years'), title: changeYearButtonTooltip, onClick: handleChangeView(calendarCurrentView === 'years' ? 'days' : 'years') }, getYearLabel(calendarDate)),
267
- react_1.default.createElement(overridesMap.ControlButton, { iconOnly: true, onClick: handleChangeMonthClick('next'), title: nextMonthButtonTooltip, disabled: calendarCurrentView !== 'days' },
268
- react_1.default.createElement(overridesMap.IconNext, null)))),
269
- calendarCurrentView === 'days' && (react_1.default.createElement(overridesMap.WeekDaysBar, { locale: locale, week: weeks[0], format: weekDayLabelFormat || 'short' })),
270
- react_1.default.createElement(overridesMap.Body, null,
271
- calendarCurrentView === 'years' && (react_1.default.createElement(overridesMap.YearsSelector, null, yearsRange.map(year => {
272
- const isSelected = calendarDate.getFullYear() === year;
273
- return (react_1.default.createElement(overridesMap.YearCell, { key: year, accentColor: accentColor, isSelected: isSelected, onClick: handleYearSelected(year) }, getYearLabel(new Date(year, calendarDate.getMonth(), calendarDate.getDate(), 0, 0, 0, 0))));
274
- }))),
275
- calendarCurrentView === 'months' && (react_1.default.createElement(overridesMap.MonthsSelector, null, monthsRange.map(monthIndex => {
276
- const isSelected = calendarDate.getMonth() === monthIndex;
277
- return (react_1.default.createElement(overridesMap.MonthCell, { key: monthIndex + monthsRange[monthIndex], accentColor: accentColor, isSelected: isSelected, onClick: handleMonthSelected(monthIndex) }, getMonthLabel(new Date(calendarDate.getFullYear(), monthIndex, 1, 0, 0, 0, 0))));
278
- }))),
279
- calendarCurrentView === 'days' && (react_1.default.createElement(overridesMap.DateContainer, null, getWeeks(calendarDate).map(week => (react_1.default.createElement(overridesMap.WeekRow, { key: week.weekNumber }, week.days.map(day => {
280
- if (day.date.getMonth() === calendarDate.getMonth()) {
281
- const badge = badges.find(b => isSameDay(b.date, day.date));
282
- // Normalize range order
283
- const [from, to] = normalizedRange;
284
- const fill = Array.isArray(calendarValue) &&
285
- day.date.getTime() >= from.getTime() &&
286
- day.date.getTime() <= to.getTime();
287
- const isSelected = isSameDay(from, day.date) || isSameDay(to, day.date);
288
- return (react_1.default.createElement(overridesMap.Cell, { key: day.date.getTime(), isToday: markToday && day.isToday, isDisabled: day.isDisabled, accentColor: accentColor, isSelected: isSelected, fill: fill, onClick: handleCellDateClick(day.date) },
289
- getDayLabel(day.date),
290
- badge && (react_1.default.createElement(overridesMap.DayBadge, { badgeContent: badge.badgeContent, isToday: day.isToday, accentColor: badge.accentColor }))));
291
- }
292
- return react_1.default.createElement(overridesMap.EmptyCell, { key: day.date.getTime() });
293
- }))))))),
294
- (typeof resetButtonLabel !== 'undefined' ||
295
- typeof todayButtonLabel !== 'undefined' ||
296
- typeof footer !== 'undefined') && (react_1.default.createElement(overridesMap.Footer, null,
297
- typeof footer !== 'undefined' && react_1.default.createElement(react_1.default.Fragment, null, footer),
298
- typeof todayButtonLabel !== 'undefined' && (react_1.default.createElement(overridesMap.ControlButton, { onClick: handleToday }, todayButtonLabel)),
299
- typeof resetButtonLabel !== 'undefined' && (react_1.default.createElement(overridesMap.ControlButton, { onClick: handleReset }, resetButtonLabel))))));
300
- };
32
+ const React = __importStar(require("react"));
33
+ const CalendarComponent_1 = require("./CalendarComponent");
34
+ const ErrorBoundary_1 = __importDefault(require("../ErrorBoundary"));
35
+ __exportStar(require("./CalendarComponent"), exports);
36
+ const Calendar = React.forwardRef((props, ref) => (React.createElement(ErrorBoundary_1.default, null,
37
+ React.createElement(CalendarComponent_1.CalendarComponent, Object.assign({}, props, { ref: ref })))));
38
+ Calendar.displayName = 'Calendar';
301
39
  exports.default = Calendar;
@@ -1,4 +1,4 @@
1
- export type CalendarValue<Multiple> = Multiple extends undefined ? Date : [Date, Date];
1
+ export type CalendarValue<Range> = Range extends undefined ? Date | null : [Date, Date] | [Date | null] | null;
2
2
  export type WeekDayName = 'sunday' | 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday';
3
3
  export type Day = {
4
4
  readonly date: Date;
@@ -0,0 +1,138 @@
1
+ import { ParsedColor } from './ColorParser';
2
+ import { ColorGenerator } from './ColorGenerator';
3
+ export type ColorFormat = 'rgb' | 'rgba' | 'hex' | 'hsl' | 'hsla';
4
+ export declare class Color {
5
+ private readonly _r;
6
+ private readonly _g;
7
+ private readonly _b;
8
+ private readonly _a;
9
+ get r(): number;
10
+ get g(): number;
11
+ get b(): number;
12
+ get a(): number;
13
+ private constructor();
14
+ /**
15
+ * Создает цвет из строкового представления
16
+ */
17
+ static fromString(value: string): Color;
18
+ /**
19
+ * Создает цвет из RGB компонентов
20
+ */
21
+ static fromRgb(r: number, g: number, b: number, a?: number): Color;
22
+ /**
23
+ * Создает цвет из HEX строки
24
+ */
25
+ static fromHex(hex: string): Color;
26
+ /**
27
+ * Создает цвет из HSL строки
28
+ */
29
+ static fromHsl(hsl: string): Color;
30
+ /**
31
+ * Создает цвет из UUID (использует генератор)
32
+ */
33
+ static fromUuid(uuid: string, palette?: keyof typeof ColorGenerator.getPalettes): Color;
34
+ /**
35
+ * Создает цвет из строки с хешированием
36
+ */
37
+ static fromHashString(str: string): Color;
38
+ /**
39
+ * Возвращает новый цвет, осветленный на указанное количество единиц
40
+ */
41
+ lighten(units: number): Color;
42
+ /**
43
+ * Возвращает новый цвет, затемненный на указанное количество единиц
44
+ */
45
+ darken(units: number): Color;
46
+ /**
47
+ * Изменяет яркость цвета путем умножения каждого канала на коэффициент
48
+ * @param lum - Коэффициент изменения яркости (от -1 до 1, где отрицательные значения затемняют, положительные - осветляют)
49
+ * @returns Новый объект Color с измененной яркостью
50
+ *
51
+ * @example
52
+ * ```ts
53
+ * const color = Color.fromString('#ff0000');
54
+ * const lighter = color.luminance(0.2); // на 20% светлее
55
+ * const darker = color.luminance(-0.2); // на 20% темнее
56
+ * ```
57
+ */
58
+ luminance(lum: number): Color;
59
+ /**
60
+ * Возвращает новый цвет с измененной яркостью (процентное изменение)
61
+ */
62
+ adjustBrightness(percent: number): Color;
63
+ /**
64
+ * Возвращает новый цвет с измененным альфа-каналом
65
+ */
66
+ alpha(value: number): Color;
67
+ /**
68
+ * Возвращает относительную яркость цвета (luminance)
69
+ */
70
+ getLuminance(): number;
71
+ /**
72
+ * Возвращает контраст между текущим цветом и переданным
73
+ */
74
+ getContrast(other: Color | string): number;
75
+ /**
76
+ * Проверяет, достаточно ли контрастен цвет для белого текста
77
+ */
78
+ isLight(): boolean;
79
+ /**
80
+ * Возвращает наиболее контрастный цвет (черный или белый)
81
+ */
82
+ getContrastColor(): Color;
83
+ /**
84
+ * Возвращает новый цвет, смешанный с другим цветом
85
+ */
86
+ mix(other: Color | string, weight?: number): Color;
87
+ /**
88
+ * Возвращает цвет в разных форматах
89
+ */
90
+ toString(format?: ColorFormat): string;
91
+ toRgbString(includeAlpha?: boolean): string;
92
+ toHexString(includeAlpha?: boolean): string;
93
+ toHslString(includeAlpha?: boolean): string;
94
+ /**
95
+ * Возвращает HSL представление цвета
96
+ */
97
+ toHsl(): [number, number, number];
98
+ private clamp;
99
+ /**
100
+ * @deprecated Use {@link Color.toRgbString} instead
101
+ */
102
+ rgbString(): string;
103
+ /**
104
+ * @deprecated Use {@link Color.toHslString} instead
105
+ */
106
+ hslString(): string;
107
+ /**
108
+ * @deprecated Use {@link Color.toHexString} instead
109
+ */
110
+ hexString(): string;
111
+ /**
112
+ * @deprecated Use getters `color.r`, `color.g`, `color.b`, `color.a` instead.
113
+ * This method will be removed in future versions.
114
+ *
115
+ * @returns {ParsedColor} Object with r, g, b, a properties
116
+ */
117
+ rgb(): ParsedColor;
118
+ /**
119
+ * @deprecated Use {@Link Color.fromString} or {@Link ColorParser.parse} instead.
120
+ */
121
+ static parseColor(value: string): ParsedColor;
122
+ /**
123
+ * @deprecated Use {@Link Color.fromHsl} or ColorParser.parse() instead.
124
+ */
125
+ static hslToRgb(value: string): ParsedColor;
126
+ /**
127
+ * @deprecated Use {@Link Color.fromString} with named colors instead.
128
+ */
129
+ static getHextByWebColor(value: string): string | undefined;
130
+ /**
131
+ * @deprecated Do not use.
132
+ */
133
+ static intToRGB(i: number): string;
134
+ /**
135
+ * @deprecated Use {@Link Color.fromUuid}
136
+ */
137
+ static uuidToColor(uuid: string): Color;
138
+ }