@snack-uikit/calendar 0.13.12 → 0.13.13
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.
- package/CHANGELOG.md +10 -0
- package/README.md +85 -14
- package/package.json +7 -7
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,16 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## <small>0.13.13 (2026-01-19)</small>
|
|
7
|
+
|
|
8
|
+
* chore(FF-6693): migrate tests from TestCafe to Playwright ([f32aff8](https://github.com/cloud-ru-tech/snack-uikit/commit/f32aff8))
|
|
9
|
+
* chore(FF-6693): tune test configs ([d194f4d](https://github.com/cloud-ru-tech/snack-uikit/commit/d194f4d))
|
|
10
|
+
* docs(FF-7788): readme update ([e3142b8](https://github.com/cloud-ru-tech/snack-uikit/commit/e3142b8))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
6
16
|
## <small>0.13.12 (2025-12-06)</small>
|
|
7
17
|
|
|
8
18
|
### Only dependencies have been changed
|
package/README.md
CHANGED
|
@@ -5,24 +5,95 @@
|
|
|
5
5
|
|
|
6
6
|
[Changelog](./CHANGELOG.md)
|
|
7
7
|
|
|
8
|
-
##
|
|
8
|
+
## Description
|
|
9
|
+
|
|
10
|
+
- Пакет `@snack-uikit/calendar` предоставляет компоненты для выбора даты, диапазона дат и времени: календарь (`Calendar`) и отдельный пикер времени (`TimePicker`).
|
|
11
|
+
- Компоненты покрывают основные сценарии работы с датой и временем: выбор одной даты, периода, месяца, года или даты с временем, а также точную установку времени по часам, минутам и опционально секундам.
|
|
12
|
+
- Оба компонента поддерживают локализацию (язык и формат дат), управление фокусом с клавиатуры и подстройку под размер контейнера через `fitToContainer`, что упрощает их встраивание в сложные интерфейсы.
|
|
13
|
+
- Для режима диапазона в календаре доступны пресеты быстрого выбора периода (например, «Сегодня», «Неделя», «Месяц»), которые можно настраивать через проп `presets`.
|
|
14
|
+
|
|
15
|
+
## Calendar
|
|
16
|
+
|
|
17
|
+
### Description
|
|
18
|
+
|
|
19
|
+
- `Calendar` — основной компонент для выбора дат и периодов: он может работать в режимах `date`, `range`, `month`, `year` и `date-time` (дата и время).
|
|
20
|
+
- Компонент поддерживает как контролируемый (`value` + `onChangeValue`), так и неконтролируемый (`defaultValue`) режимы и умеет подстраиваться под разные размеры через проп `size` (`s`, `m`, `l`).
|
|
21
|
+
- С помощью колбека `buildCellProps` можно управлять доступностью и подсветкой отдельных ячеек (например, отключить прошлые даты или выделить праздничные дни), а опция `showHolidays` автоматически раскрашивает выходные.
|
|
22
|
+
- Проп `presets` позволяет добавить панель с пресетами для быстрого выбора периода в режиме `range`, в том числе с собственным списком вариантов.
|
|
23
|
+
- Локаль (`locale`) задаёт язык подписей и первый день недели, при отсутствии явно переданного значения используется язык браузера пользователя.
|
|
24
|
+
- Figma: [`Calendar`](https://www.figma.com/file/jtGxAPvFJOMir7V0eQFukN/Snack-UI-Kit-1.1.0?node-id=41%3A27244&mode=design).
|
|
25
|
+
|
|
26
|
+
### Example
|
|
9
27
|
|
|
10
28
|
```tsx
|
|
11
29
|
import { Calendar } from '@snack-uikit/calendar';
|
|
12
30
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
31
|
+
function CalendarExample() {
|
|
32
|
+
return (
|
|
33
|
+
<>
|
|
34
|
+
{/* Выбор одной даты */}
|
|
35
|
+
<Calendar
|
|
36
|
+
mode='date'
|
|
37
|
+
onChangeValue={(selectedDate: Date) => {
|
|
38
|
+
console.log('Selected date:', selectedDate);
|
|
39
|
+
}}
|
|
40
|
+
/>
|
|
41
|
+
|
|
42
|
+
{/* Выбор периода c пресетами */}
|
|
43
|
+
<Calendar
|
|
44
|
+
mode='range'
|
|
45
|
+
presets={{
|
|
46
|
+
enabled: true,
|
|
47
|
+
title: true,
|
|
48
|
+
}}
|
|
49
|
+
onChangeValue={(selectedRange) => {
|
|
50
|
+
console.log('Selected range:', selectedRange);
|
|
51
|
+
}}
|
|
52
|
+
/>
|
|
53
|
+
|
|
54
|
+
{/* Выбор даты и времени с отображением секунд */}
|
|
55
|
+
<Calendar
|
|
56
|
+
mode='date-time'
|
|
57
|
+
showSeconds
|
|
58
|
+
onChangeValue={(selectedDateTime: Date) => {
|
|
59
|
+
console.log('Selected date and time:', selectedDateTime);
|
|
60
|
+
}}
|
|
61
|
+
/>
|
|
62
|
+
</>
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## TimePicker
|
|
68
|
+
|
|
69
|
+
### Description
|
|
70
|
+
|
|
71
|
+
- `TimePicker` — компонент для точного выбора времени (часы, минуты и при необходимости секунды) без выбора календарной даты.
|
|
72
|
+
- Поддерживает контролируемый и неконтролируемый режимы через пропы `value`, `defaultValue` и `onChangeValue`, а результирующее значение представлено объектом `TimeValue` (`{ hours, minutes, seconds }`).
|
|
73
|
+
- Проп `today` позволяет подсветить «текущее» время (например, рабочее время или время на момент открытия) на основании переданной даты.
|
|
74
|
+
- Компонент адаптируется под размеры (`size` — `s`, `m`, `l`) и может растягиваться по контейнеру через `fitToContainer`, а также поддерживает управление фокусом (`onFocusLeave`, `navigationStartRef`) для сложных форм и диалогов.
|
|
75
|
+
- Figma: [`TimePicker`](https://www.figma.com/file/jtGxAPvFJOMir7V0eQFukN/Snack-UI-Kit-1.1.0?node-id=41%3A27244&mode=design).
|
|
76
|
+
|
|
77
|
+
### Example
|
|
78
|
+
|
|
79
|
+
```tsx
|
|
80
|
+
import { TimePicker } from '@snack-uikit/calendar';
|
|
81
|
+
|
|
82
|
+
function TimePickerExample() {
|
|
83
|
+
return (
|
|
84
|
+
<TimePicker
|
|
85
|
+
showSeconds
|
|
86
|
+
onChangeValue={value => {
|
|
87
|
+
if (!value) {
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
const { hours, minutes, seconds } = value;
|
|
92
|
+
console.log(`Selected time: ${hours}:${minutes}:${seconds}`);
|
|
93
|
+
}}
|
|
94
|
+
/>
|
|
95
|
+
);
|
|
96
|
+
}
|
|
26
97
|
```
|
|
27
98
|
|
|
28
99
|
[//]: DOCUMENTATION_SECTION_START
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
6
|
"title": "Calendar",
|
|
7
|
-
"version": "0.13.
|
|
7
|
+
"version": "0.13.13",
|
|
8
8
|
"sideEffects": [
|
|
9
9
|
"*.css",
|
|
10
10
|
"*.woff",
|
|
@@ -36,11 +36,11 @@
|
|
|
36
36
|
"license": "Apache-2.0",
|
|
37
37
|
"scripts": {},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@snack-uikit/button": "0.19.
|
|
40
|
-
"@snack-uikit/divider": "3.2.
|
|
41
|
-
"@snack-uikit/icons": "0.27.
|
|
42
|
-
"@snack-uikit/list": "0.32.
|
|
43
|
-
"@snack-uikit/utils": "4.0.
|
|
39
|
+
"@snack-uikit/button": "0.19.17",
|
|
40
|
+
"@snack-uikit/divider": "3.2.11",
|
|
41
|
+
"@snack-uikit/icons": "0.27.5",
|
|
42
|
+
"@snack-uikit/list": "0.32.12",
|
|
43
|
+
"@snack-uikit/utils": "4.0.1",
|
|
44
44
|
"classnames": "2.5.1",
|
|
45
45
|
"uncontrollable": "8.0.4",
|
|
46
46
|
"weekstart": "2.0.0"
|
|
@@ -48,5 +48,5 @@
|
|
|
48
48
|
"peerDependencies": {
|
|
49
49
|
"@snack-uikit/locale": "*"
|
|
50
50
|
},
|
|
51
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "84371bbf91915f650a852df849cd71d416c5b7b2"
|
|
52
52
|
}
|