@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.
Files changed (3) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +85 -14
  3. 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
- ## Example
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
- <Calendar
14
- mode='date'
15
- onChangeValue={(selectedDate: Date) => {
16
- // do something
17
- }}
18
- />
19
-
20
- <Calendar
21
- mode='range'
22
- onChangeValue={(selectedRange: [Date, Date]) => {
23
- // do something
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.12",
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.16",
40
- "@snack-uikit/divider": "3.2.10",
41
- "@snack-uikit/icons": "0.27.4",
42
- "@snack-uikit/list": "0.32.11",
43
- "@snack-uikit/utils": "4.0.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": "78bb9c9dd3a49941fa39bde71d838e9bf036e65d"
51
+ "gitHead": "84371bbf91915f650a852df849cd71d416c5b7b2"
52
52
  }