rsuite 5.48.1 → 5.49.0
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 +14 -0
- package/Cascader/styles/index.less +1 -0
- package/DatePicker/styles/index.less +18 -11
- package/DateRangeInput/package.json +7 -0
- package/DateRangePicker/styles/index.less +10 -0
- package/InputGroup/styles/index.less +1 -0
- package/Picker/styles/index.less +20 -0
- package/README.md +32 -22
- package/Sidenav/styles/index.less +2 -0
- package/cjs/Calendar/CalendarContainer.d.ts +2 -0
- package/cjs/Calendar/CalendarContainer.js +11 -4
- package/cjs/Calendar/CalendarHeader.js +2 -0
- package/cjs/Calendar/MonthDropdown.js +7 -2
- package/cjs/Calendar/MonthDropdownItem.js +2 -2
- package/cjs/Calendar/Table.js +6 -1
- package/cjs/Calendar/TimeDropdown.js +17 -10
- package/cjs/Calendar/types.d.ts +1 -0
- package/cjs/CustomProvider/CustomProvider.d.ts +13 -0
- package/cjs/CustomProvider/CustomProvider.js +2 -2
- package/cjs/DateInput/DateField.d.ts +9 -31
- package/cjs/DateInput/DateField.js +61 -12
- package/cjs/DateInput/DateInput.d.ts +7 -2
- package/cjs/DateInput/DateInput.js +74 -92
- package/cjs/DateInput/index.d.ts +4 -0
- package/cjs/DateInput/index.js +19 -1
- package/cjs/DateInput/useDateInputState.d.ts +7 -31
- package/cjs/DateInput/useDateInputState.js +39 -15
- package/cjs/DateInput/useIsFocused.d.ts +7 -0
- package/cjs/DateInput/useIsFocused.js +28 -0
- package/cjs/DateInput/useKeyboardInputEvent.d.ts +10 -0
- package/cjs/DateInput/useKeyboardInputEvent.js +44 -0
- package/cjs/DateInput/utils.d.ts +23 -1
- package/cjs/DateInput/utils.js +155 -51
- package/cjs/DatePicker/DatePicker.d.ts +20 -7
- package/cjs/DatePicker/DatePicker.js +210 -241
- package/cjs/DatePicker/PickerIndicator.d.ts +10 -0
- package/cjs/DatePicker/PickerIndicator.js +48 -0
- package/cjs/DatePicker/PickerLabel.d.ts +9 -0
- package/cjs/DatePicker/PickerLabel.js +23 -0
- package/cjs/DatePicker/Toolbar.js +3 -21
- package/cjs/DatePicker/utils.d.ts +5 -1
- package/cjs/DatePicker/utils.js +17 -1
- package/cjs/DateRangeInput/DateRangeInput.d.ts +29 -0
- package/cjs/DateRangeInput/DateRangeInput.js +244 -0
- package/cjs/DateRangeInput/index.d.ts +3 -0
- package/cjs/DateRangeInput/index.js +9 -0
- package/cjs/DateRangeInput/utils.d.ts +61 -0
- package/cjs/DateRangeInput/utils.js +146 -0
- package/cjs/DateRangePicker/DateRangePicker.js +12 -2
- package/cjs/Input/Input.d.ts +11 -0
- package/cjs/Input/Input.js +11 -8
- package/cjs/Overlay/OverlayTrigger.d.ts +3 -0
- package/cjs/Overlay/OverlayTrigger.js +5 -0
- package/cjs/Picker/usePickerRef.d.ts +17 -0
- package/cjs/Picker/usePickerRef.js +82 -0
- package/cjs/index.d.ts +2 -0
- package/cjs/index.js +3 -1
- package/cjs/locales/index.d.ts +2 -2
- package/cjs/utils/index.d.ts +2 -0
- package/cjs/utils/index.js +8 -2
- package/cjs/utils/useCustom.js +1 -1
- package/cjs/utils/useIsomorphicLayoutEffect.d.ts +3 -0
- package/cjs/utils/useIsomorphicLayoutEffect.js +9 -0
- package/dist/rsuite-no-reset-rtl.css +51 -141
- package/dist/rsuite-no-reset-rtl.min.css +1 -1
- package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
- package/dist/rsuite-no-reset.css +51 -141
- package/dist/rsuite-no-reset.min.css +1 -1
- package/dist/rsuite-no-reset.min.css.map +1 -1
- package/dist/rsuite-rtl.css +51 -9
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +51 -9
- package/dist/rsuite.js +4800 -246
- package/dist/rsuite.js.map +1 -1
- package/dist/rsuite.min.css +1 -1
- package/dist/rsuite.min.css.map +1 -1
- package/dist/rsuite.min.js +1 -1
- package/dist/rsuite.min.js.map +1 -1
- package/esm/Calendar/CalendarContainer.d.ts +2 -0
- package/esm/Calendar/CalendarContainer.js +12 -5
- package/esm/Calendar/CalendarHeader.js +2 -0
- package/esm/Calendar/MonthDropdown.js +7 -2
- package/esm/Calendar/MonthDropdownItem.js +2 -2
- package/esm/Calendar/Table.js +6 -1
- package/esm/Calendar/TimeDropdown.js +17 -10
- package/esm/Calendar/types.d.ts +1 -0
- package/esm/CustomProvider/CustomProvider.d.ts +13 -0
- package/esm/CustomProvider/CustomProvider.js +3 -3
- package/esm/DateInput/DateField.d.ts +9 -31
- package/esm/DateInput/DateField.js +61 -12
- package/esm/DateInput/DateInput.d.ts +7 -2
- package/esm/DateInput/DateInput.js +77 -95
- package/esm/DateInput/index.d.ts +4 -0
- package/esm/DateInput/index.js +4 -0
- package/esm/DateInput/useDateInputState.d.ts +7 -31
- package/esm/DateInput/useDateInputState.js +41 -18
- package/esm/DateInput/useIsFocused.d.ts +7 -0
- package/esm/DateInput/useIsFocused.js +22 -0
- package/esm/DateInput/useKeyboardInputEvent.d.ts +10 -0
- package/esm/DateInput/useKeyboardInputEvent.js +38 -0
- package/esm/DateInput/utils.d.ts +23 -1
- package/esm/DateInput/utils.js +150 -51
- package/esm/DatePicker/DatePicker.d.ts +20 -7
- package/esm/DatePicker/DatePicker.js +213 -244
- package/esm/DatePicker/PickerIndicator.d.ts +10 -0
- package/esm/DatePicker/PickerIndicator.js +42 -0
- package/esm/DatePicker/PickerLabel.d.ts +9 -0
- package/esm/DatePicker/PickerLabel.js +17 -0
- package/esm/DatePicker/Toolbar.js +3 -21
- package/esm/DatePicker/utils.d.ts +5 -1
- package/esm/DatePicker/utils.js +16 -1
- package/esm/DateRangeInput/DateRangeInput.d.ts +29 -0
- package/esm/DateRangeInput/DateRangeInput.js +237 -0
- package/esm/DateRangeInput/index.d.ts +3 -0
- package/esm/DateRangeInput/index.js +3 -0
- package/esm/DateRangeInput/utils.d.ts +61 -0
- package/esm/DateRangeInput/utils.js +137 -0
- package/esm/DateRangePicker/DateRangePicker.js +12 -2
- package/esm/Input/Input.d.ts +11 -0
- package/esm/Input/Input.js +12 -9
- package/esm/Overlay/OverlayTrigger.d.ts +3 -0
- package/esm/Overlay/OverlayTrigger.js +5 -0
- package/esm/Picker/usePickerRef.d.ts +17 -0
- package/esm/Picker/usePickerRef.js +77 -0
- package/esm/index.d.ts +2 -0
- package/esm/index.js +1 -0
- package/esm/locales/index.d.ts +2 -2
- package/esm/utils/index.d.ts +2 -0
- package/esm/utils/index.js +3 -1
- package/esm/utils/useCustom.js +2 -2
- package/esm/utils/useIsomorphicLayoutEffect.d.ts +3 -0
- package/esm/utils/useIsomorphicLayoutEffect.js +4 -0
- package/package.json +1 -1
- package/styles/color-modes/dark.less +1 -0
- package/styles/color-modes/high-contrast.less +1 -0
- package/styles/color-modes/light.less +1 -0
- package/styles/normalize.less +230 -231
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
# [5.49.0](https://github.com/rsuite/rsuite/compare/v5.48.1...v5.49.0) (2023-12-29)
|
|
2
|
+
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
|
|
5
|
+
- **CSS Reset:** fix `rsuite-no-reset.css` overrides the default styles of the app ([#3527](https://github.com/rsuite/rsuite/issues/3527)) ([dff5804](https://github.com/rsuite/rsuite/commit/dff5804f81c00dfe4f4bb02eac92e070fabcc4f8))
|
|
6
|
+
- **CustomProvider:** fix the flicker when initializing in Dark mode ([#3528](https://github.com/rsuite/rsuite/issues/3528)) ([2bd67fd](https://github.com/rsuite/rsuite/commit/2bd67fd60ddaec9a5925d22e7cee126425b6ad78))
|
|
7
|
+
- **DateRangePicker:** fix layout misalignment due to missing min-width ([#3523](https://github.com/rsuite/rsuite/issues/3523)) ([464af79](https://github.com/rsuite/rsuite/commit/464af7964fe5fb8e434c7113084e6597726f3db6))
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
- **DatePicker:** supports date selection by using keyboard ([#3515](https://github.com/rsuite/rsuite/issues/3515)) ([bc56cb3](https://github.com/rsuite/rsuite/commit/bc56cb33fb15854a0d3f6c3c3bb6ee3b4036aef5))
|
|
12
|
+
- **DateRangeInput:** add support for DateRangeInput ([#3525](https://github.com/rsuite/rsuite/issues/3525)) ([074245a](https://github.com/rsuite/rsuite/commit/074245a2f5f18028426d896584690d1738606d1c))
|
|
13
|
+
- **Input:** add support for htmlSize prop ([#3526](https://github.com/rsuite/rsuite/issues/3526)) ([62de8ca](https://github.com/rsuite/rsuite/commit/62de8ca14eb2aaf8dde904b3667035cb3f060c23))
|
|
14
|
+
|
|
1
15
|
## [5.48.1](https://github.com/rsuite/rsuite/compare/v5.48.0...v5.48.1) (2023-12-22)
|
|
2
16
|
|
|
3
17
|
### Bug Fixes
|
|
@@ -8,17 +8,6 @@
|
|
|
8
8
|
// DatePicker Picker
|
|
9
9
|
// ----------------------
|
|
10
10
|
|
|
11
|
-
// Change the <caret/> & <clean/> vertical position make it align middle.
|
|
12
|
-
.rs-picker-date,
|
|
13
|
-
.rs-picker-daterange {
|
|
14
|
-
&.rs-picker-default {
|
|
15
|
-
.rs-picker-toggle-caret,
|
|
16
|
-
.rs-picker-toggle-clean {
|
|
17
|
-
top: @padding-y - @picker-default-toggle-border-width;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
11
|
// Toolbar
|
|
23
12
|
.rs-picker-toolbar {
|
|
24
13
|
padding: @calendar-picker-padding;
|
|
@@ -34,6 +23,24 @@
|
|
|
34
23
|
height: 286px;
|
|
35
24
|
}
|
|
36
25
|
}
|
|
26
|
+
|
|
27
|
+
.rs-input-group-addon {
|
|
28
|
+
color: var(--rs-text-secondary);
|
|
29
|
+
|
|
30
|
+
.rs-btn-close {
|
|
31
|
+
padding: 0;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
&.rs-picker-subtle {
|
|
36
|
+
.rs-input-group {
|
|
37
|
+
border-color: transparent;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
> .rs-input-group.rs-input-group-inside .rs-input {
|
|
42
|
+
padding-right: 0;
|
|
43
|
+
}
|
|
37
44
|
}
|
|
38
45
|
|
|
39
46
|
// Predefined Ranges
|
|
@@ -4,6 +4,16 @@
|
|
|
4
4
|
@import '../../DatePicker/styles/index';
|
|
5
5
|
@import '../../Calendar/styles/index';
|
|
6
6
|
|
|
7
|
+
// Change the <caret/> & <clean/> vertical position make it align middle.
|
|
8
|
+
.rs-picker-daterange {
|
|
9
|
+
&.rs-picker-default {
|
|
10
|
+
.rs-picker-toggle-caret,
|
|
11
|
+
.rs-picker-toggle-clean {
|
|
12
|
+
top: @padding-y - @picker-default-toggle-border-width;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
7
17
|
// Date range Picker
|
|
8
18
|
// ----------------------
|
|
9
19
|
|
package/Picker/styles/index.less
CHANGED
|
@@ -80,6 +80,26 @@
|
|
|
80
80
|
&.rs-picker-focused {
|
|
81
81
|
box-shadow: var(--rs-state-focus-shadow);
|
|
82
82
|
}
|
|
83
|
+
|
|
84
|
+
&-label.rs-input-group-addon {
|
|
85
|
+
color: var(--rs-text-primary);
|
|
86
|
+
padding-right: 4px !important;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
&-loader {
|
|
90
|
+
width: 14px;
|
|
91
|
+
height: 14px;
|
|
92
|
+
display: flex;
|
|
93
|
+
align-items: center;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
&-error > .rs-input-group {
|
|
97
|
+
border-color: var(--rs-state-error) !important;
|
|
98
|
+
|
|
99
|
+
&:focus-within {
|
|
100
|
+
outline: var(--rs-state-error-outline) !important;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
83
103
|
}
|
|
84
104
|
|
|
85
105
|
.rs-picker-toggle {
|
package/README.md
CHANGED
|
@@ -8,11 +8,13 @@ English | [中文版][readm-cn]
|
|
|
8
8
|
|
|
9
9
|
[![npm][npm-svg]][npm-home]
|
|
10
10
|
[![GitHub Actions][actions-svg]][actions-home]
|
|
11
|
-
[![
|
|
11
|
+
[![npm bundle size][npm-bundle-size-img]][npm-bundle-size]
|
|
12
|
+
[![rsuite.min.js][rsuite-min-js-img]][rsuite-min-js]
|
|
13
|
+
[![codecov][codecov-img]][codecov]
|
|
12
14
|
[![Discord][discord-svg]][discord-invite]
|
|
13
15
|
[![Gitter][gitter-svg]][gitter]
|
|
14
16
|
[![Gitter][gitter-cn-svg]][gitter-cn]
|
|
15
|
-
[![Gitpod ready-to-code]
|
|
17
|
+
[![Gitpod ready-to-code][gitpod-img]][gitpod]
|
|
16
18
|
|
|
17
19
|
React Suite is a set of react component libraries for enterprise system products. It is a well-thought-out and developer-friendly UI framework.
|
|
18
20
|
|
|
@@ -145,11 +147,15 @@ This project exists thanks to all the people who contribute.
|
|
|
145
147
|
|
|
146
148
|
React Suite is [MIT licensed][license]. Copyright (c) 2016-present, HYPERS.
|
|
147
149
|
|
|
148
|
-
[readm-cn]: https://github.com/rsuite/rsuite/blob/
|
|
150
|
+
[readm-cn]: https://github.com/rsuite/rsuite/blob/main/README_zh.md
|
|
149
151
|
[npm-svg]: https://img.shields.io/npm/v/rsuite
|
|
150
152
|
[npm-home]: https://www.npmjs.com/package/rsuite
|
|
151
|
-
[
|
|
152
|
-
[
|
|
153
|
+
[npm-bundle-size-img]: https://badgen.net/bundlephobia/minzip/rsuite?icon=npm
|
|
154
|
+
[npm-bundle-size]: https://bundlephobia.com/package/rsuite
|
|
155
|
+
[rsuite-min-js-img]: https://img.badgesize.io/https:/unpkg.com/rsuite/dist/rsuite.min.js?label=rsuite.min.js&compression=gzip
|
|
156
|
+
[rsuite-min-js]: https://unpkg.com/browse/rsuite/dist/rsuite.min.js
|
|
157
|
+
[actions-svg]: https://github.com/rsuite/rsuite/workflows/Node.js%20CI/badge.svg?branch=main
|
|
158
|
+
[actions-home]: https://github.com/rsuite/rsuite/actions?query=branch%3Amain+workflow%3A%22Node.js+CI%22
|
|
153
159
|
[discord-svg]: https://img.shields.io/badge/Discord-Join%20chat%20%E2%86%92-738bd7.svg
|
|
154
160
|
[discord-invite]: https://discord.gg/R8mnjwh
|
|
155
161
|
[rsuite-design]: https://rsuitejs.com/design/default
|
|
@@ -160,30 +166,34 @@ React Suite is [MIT licensed][license]. Copyright (c) 2016-present, HYPERS.
|
|
|
160
166
|
[rsuite-doc-guide-rtl]: https://rsuitejs.com/en/guide/rtl
|
|
161
167
|
[rsuite-components-overview]: https://rsuitejs.com/en/components/overview
|
|
162
168
|
[release-notes]: https://github.com/rsuite/rsuite/releases
|
|
163
|
-
[contributing]: https://github.com/rsuite/rsuite/blob/
|
|
169
|
+
[contributing]: https://github.com/rsuite/rsuite/blob/main/CONTRIBUTING.md
|
|
164
170
|
[prettierrc]: https://github.com/rsuite/rsuite/wiki/.prettierrc
|
|
165
171
|
[issues-11]: https://github.com/rsuite/rsuite/issues/11
|
|
166
172
|
[opencollective-svg]: https://opencollective.com/rsuite/tiers/backer.svg?avatarHeight=36
|
|
167
173
|
[opencollective-home]: https://opencollective.com/rsuite
|
|
168
|
-
[license]: https://github.com/rsuite/rsuite/blob/
|
|
174
|
+
[license]: https://github.com/rsuite/rsuite/blob/main/LICENSE
|
|
169
175
|
[rsuite-sample]: https://sample.rsuitejs.com/
|
|
170
176
|
[gitter]: https://gitter.im/rsuite/rsuite?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge
|
|
171
177
|
[gitter-svg]: https://img.shields.io/gitter/room/rsuite/rsuite?label=chat-english
|
|
172
178
|
[gitter-cn]: https://gitter.im/rsuite/rsuite-CN?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge
|
|
173
179
|
[gitter-cn-svg]: https://img.shields.io/gitter/room/rsuite/rsuite?label=chat-chinese
|
|
174
180
|
[demo-admin]: https://github.com/rsuite/rsuite-management-system
|
|
175
|
-
[demo-modular-import]: https://github.com/rsuite/rsuite/tree/
|
|
176
|
-
[demo-cdn]: https://github.com/rsuite/rsuite/tree/
|
|
177
|
-
[demo-create-react-app]: https://github.com/rsuite/rsuite/tree/
|
|
178
|
-
[demo-electron]: https://github.com/rsuite/rsuite/tree/
|
|
179
|
-
[demo-intl-app]: https://github.com/rsuite/rsuite/tree/
|
|
180
|
-
[demo-multiple-themes]: https://github.com/rsuite/rsuite/tree/
|
|
181
|
-
[demo-flow-app]: https://github.com/rsuite/rsuite/tree/
|
|
182
|
-
[demo-typescript-app]: https://github.com/rsuite/rsuite/tree/
|
|
183
|
-
[demo-nextjs]: https://github.com/rsuite/rsuite/tree/
|
|
184
|
-
[demo-umi-app]: https://github.com/rsuite/rsuite/tree/
|
|
185
|
-
[demo-rtlcss]: https://github.com/rsuite/rsuite/tree/
|
|
186
|
-
[demo-postcss-rtl]: https://github.com/rsuite/rsuite/tree/
|
|
187
|
-
[demo-nextjs-typescript]: https://github.com/rsuite/rsuite/tree/
|
|
188
|
-
[demo-snowpack]: https://github.com/rsuite/rsuite/tree/
|
|
189
|
-
[demo-vite]: https://github.com/rsuite/rsuite/tree/
|
|
181
|
+
[demo-modular-import]: https://github.com/rsuite/rsuite/tree/main/examples/with-babel-preset-rsuite
|
|
182
|
+
[demo-cdn]: https://github.com/rsuite/rsuite/tree/main/examples/cdn
|
|
183
|
+
[demo-create-react-app]: https://github.com/rsuite/rsuite/tree/main/examples/create-react-app
|
|
184
|
+
[demo-electron]: https://github.com/rsuite/rsuite/tree/main/examples/with-electron
|
|
185
|
+
[demo-intl-app]: https://github.com/rsuite/rsuite/tree/main/examples/custom-i18n
|
|
186
|
+
[demo-multiple-themes]: https://github.com/rsuite/rsuite/tree/main/examples/custom-multiple-themes
|
|
187
|
+
[demo-flow-app]: https://github.com/rsuite/rsuite/tree/main/examples/with-flow
|
|
188
|
+
[demo-typescript-app]: https://github.com/rsuite/rsuite/tree/main/examples/with-typescript
|
|
189
|
+
[demo-nextjs]: https://github.com/rsuite/rsuite/tree/main/examples/with-nextjs
|
|
190
|
+
[demo-umi-app]: https://github.com/rsuite/rsuite/tree/main/examples/with-umi
|
|
191
|
+
[demo-rtlcss]: https://github.com/rsuite/rsuite/tree/main/examples/with-rtlcss
|
|
192
|
+
[demo-postcss-rtl]: https://github.com/rsuite/rsuite/tree/main/examples/with-postcss-rtl
|
|
193
|
+
[demo-nextjs-typescript]: https://github.com/rsuite/rsuite/tree/main/examples/with-nextjs-typescript
|
|
194
|
+
[demo-snowpack]: https://github.com/rsuite/rsuite/tree/main/examples/with-snowpack
|
|
195
|
+
[demo-vite]: https://github.com/rsuite/rsuite/tree/main/examples/with-vite
|
|
196
|
+
[codecov]: https://codecov.io/gh/rsuite/rsuite
|
|
197
|
+
[codecov-img]: https://codecov.io/gh/rsuite/rsuite/branch/main/graph/badge.svg?token=HGeKd0BD3t
|
|
198
|
+
[gitpod]: https://gitpod.io/#https://github.com/rsuite/rsuite
|
|
199
|
+
[gitpod-img]: https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod
|
|
@@ -49,6 +49,7 @@
|
|
|
49
49
|
background: none;
|
|
50
50
|
padding-right: (@sidenav-padding-horizontal + @sidenav-dropdown-toggle-caret-width);
|
|
51
51
|
position: relative;
|
|
52
|
+
border-width: 0;
|
|
52
53
|
|
|
53
54
|
.rs-sidenav-collapse-in & {
|
|
54
55
|
padding-left: @sidenav-level2-retract;
|
|
@@ -178,6 +179,7 @@
|
|
|
178
179
|
display: block;
|
|
179
180
|
outline: 0;
|
|
180
181
|
overflow: hidden;
|
|
182
|
+
text-decoration: none;
|
|
181
183
|
|
|
182
184
|
&:hover,
|
|
183
185
|
&:focus {
|
|
@@ -6,6 +6,8 @@ import { CalendarState } from './useCalendarState';
|
|
|
6
6
|
export interface CalendarProps extends WithAsProps, Omit<HTMLAttributes<HTMLDivElement>, 'onSelect' | 'onChange' | 'onMouseMove'>, CalendarHeaderProps {
|
|
7
7
|
/** The panel render based on date range */
|
|
8
8
|
dateRange?: Date[];
|
|
9
|
+
/** The Id of the target element that triggers the opening of the calendar */
|
|
10
|
+
targetId?: string;
|
|
9
11
|
/** Date displayed on the current page */
|
|
10
12
|
calendarDate: Date;
|
|
11
13
|
/** Whether to show week numbers */
|
|
@@ -34,6 +34,7 @@ var CalendarContainer = /*#__PURE__*/_react.default.forwardRef(function (props,
|
|
|
34
34
|
hoverRangeValue = props.hoverRangeValue,
|
|
35
35
|
_props$isoWeek = props.isoWeek,
|
|
36
36
|
isoWeek = _props$isoWeek === void 0 ? false : _props$isoWeek,
|
|
37
|
+
targetId = props.targetId,
|
|
37
38
|
limitEndYear = props.limitEndYear,
|
|
38
39
|
limitStartYear = props.limitStartYear,
|
|
39
40
|
locale = props.locale,
|
|
@@ -46,7 +47,7 @@ var CalendarContainer = /*#__PURE__*/_react.default.forwardRef(function (props,
|
|
|
46
47
|
onToggleMeridian = props.onToggleMeridian,
|
|
47
48
|
onToggleMonthDropdown = props.onToggleMonthDropdown,
|
|
48
49
|
onToggleTimeDropdown = props.onToggleTimeDropdown,
|
|
49
|
-
|
|
50
|
+
calendarDateProp = props.calendarDate,
|
|
50
51
|
cellClassName = props.cellClassName,
|
|
51
52
|
renderCell = props.renderCell,
|
|
52
53
|
renderTitle = props.renderTitle,
|
|
@@ -54,7 +55,7 @@ var CalendarContainer = /*#__PURE__*/_react.default.forwardRef(function (props,
|
|
|
54
55
|
showMeridian = props.showMeridian,
|
|
55
56
|
showWeekNumbers = props.showWeekNumbers,
|
|
56
57
|
inline = props.inline,
|
|
57
|
-
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "className", "classPrefix", "dateRange", "disabledBackward", "defaultState", "disabledDate", "disabledForward", "format", "hoverRangeValue", "isoWeek", "limitEndYear", "limitStartYear", "locale", "onChangeMonth", "onChangeTime", "onMouseMove", "onMoveBackward", "onMoveForward", "onSelect", "onToggleMeridian", "onToggleMonthDropdown", "onToggleTimeDropdown", "calendarDate", "cellClassName", "renderCell", "renderTitle", "renderToolbar", "showMeridian", "showWeekNumbers", "inline"]);
|
|
58
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "className", "classPrefix", "dateRange", "disabledBackward", "defaultState", "disabledDate", "disabledForward", "format", "hoverRangeValue", "isoWeek", "targetId", "limitEndYear", "limitStartYear", "locale", "onChangeMonth", "onChangeTime", "onMouseMove", "onMoveBackward", "onMoveForward", "onSelect", "onToggleMeridian", "onToggleMonthDropdown", "onToggleTimeDropdown", "calendarDate", "cellClassName", "renderCell", "renderTitle", "renderToolbar", "showMeridian", "showWeekNumbers", "inline"]);
|
|
58
59
|
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
59
60
|
withClassPrefix = _useClassNames.withClassPrefix,
|
|
60
61
|
merge = _useClassNames.merge,
|
|
@@ -64,6 +65,9 @@ var CalendarContainer = /*#__PURE__*/_react.default.forwardRef(function (props,
|
|
|
64
65
|
reset = _useCalendarState.reset,
|
|
65
66
|
openMonth = _useCalendarState.openMonth,
|
|
66
67
|
openTime = _useCalendarState.openTime;
|
|
68
|
+
var calendarDate = (0, _react.useMemo)(function () {
|
|
69
|
+
return (0, _dateUtils.isValid)(calendarDateProp) ? calendarDateProp : new Date();
|
|
70
|
+
}, [calendarDateProp]);
|
|
67
71
|
var isDisabledDate = (0, _react.useCallback)(function (date) {
|
|
68
72
|
var _disabledDate;
|
|
69
73
|
return (_disabledDate = disabledDate === null || disabledDate === void 0 ? void 0 : disabledDate(date)) !== null && _disabledDate !== void 0 ? _disabledDate : false;
|
|
@@ -129,6 +133,7 @@ var CalendarContainer = /*#__PURE__*/_react.default.forwardRef(function (props,
|
|
|
129
133
|
hoverRangeValue: hoverRangeValue,
|
|
130
134
|
inSameMonth: inSameThisMonthDate,
|
|
131
135
|
isoWeek: isoWeek,
|
|
136
|
+
targetId: targetId,
|
|
132
137
|
locale: locale,
|
|
133
138
|
onChangeMonth: handleChangeMonth,
|
|
134
139
|
onChangeTime: onChangeTime,
|
|
@@ -139,10 +144,12 @@ var CalendarContainer = /*#__PURE__*/_react.default.forwardRef(function (props,
|
|
|
139
144
|
showWeekNumbers: showWeekNumbers,
|
|
140
145
|
inline: inline
|
|
141
146
|
};
|
|
142
|
-
}, [calendarDate, dateRange, format, handleChangeMonth, hoverRangeValue, inSameThisMonthDate, inline, isDisabledDate, isoWeek, locale, onChangeTime, onMouseMove, onSelect, cellClassName, renderCell, showWeekNumbers]);
|
|
147
|
+
}, [calendarDate, dateRange, format, handleChangeMonth, hoverRangeValue, inSameThisMonthDate, inline, isDisabledDate, isoWeek, targetId, locale, onChangeTime, onMouseMove, onSelect, cellClassName, renderCell, showWeekNumbers]);
|
|
143
148
|
return /*#__PURE__*/_react.default.createElement(_CalendarContext.CalendarProvider, {
|
|
144
149
|
value: contextValue
|
|
145
|
-
}, /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
|
|
150
|
+
}, /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
|
|
151
|
+
"data-testid": "calendar"
|
|
152
|
+
}, (0, _dateUtils.omitHideDisabledProps)(rest), {
|
|
146
153
|
className: calendarClasses,
|
|
147
154
|
ref: ref
|
|
148
155
|
}), /*#__PURE__*/_react.default.createElement(_CalendarHeader.default, {
|
|
@@ -128,6 +128,7 @@ var CalendarHeader = /*#__PURE__*/_react.default.forwardRef(function (props, ref
|
|
|
128
128
|
}), hasMonth && monthToolbar, showTime && /*#__PURE__*/_react.default.createElement("div", {
|
|
129
129
|
className: prefix('time-toolbar')
|
|
130
130
|
}, /*#__PURE__*/_react.default.createElement(_Button.default, (0, _extends2.default)({}, btnProps, {
|
|
131
|
+
"aria-label": "Select time",
|
|
131
132
|
className: timeTitleClasses,
|
|
132
133
|
onClick: onToggleTimeDropdown,
|
|
133
134
|
disabled: disableSelectTime
|
|
@@ -135,6 +136,7 @@ var CalendarHeader = /*#__PURE__*/_react.default.forwardRef(function (props, ref
|
|
|
135
136
|
date: date,
|
|
136
137
|
formatStr: getTimeFormat()
|
|
137
138
|
})), showMeridian && /*#__PURE__*/_react.default.createElement(_Button.default, (0, _extends2.default)({}, btnProps, {
|
|
139
|
+
"aria-label": "Toggle meridian",
|
|
138
140
|
className: prefix('meridian'),
|
|
139
141
|
onClick: onToggleMeridian,
|
|
140
142
|
disabled: disableSelectTime
|
|
@@ -42,7 +42,8 @@ var MonthDropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
42
42
|
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "className", "classPrefix", "limitStartYear", "limitEndYear", "show", "height", "width", "disabledMonth"]);
|
|
43
43
|
var _useCalendarContext = (0, _CalendarContext.useCalendarContext)(),
|
|
44
44
|
_useCalendarContext$d = _useCalendarContext.date,
|
|
45
|
-
date = _useCalendarContext$d === void 0 ? new Date() : _useCalendarContext$d
|
|
45
|
+
date = _useCalendarContext$d === void 0 ? new Date() : _useCalendarContext$d,
|
|
46
|
+
targetId = _useCalendarContext.targetId;
|
|
46
47
|
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
47
48
|
prefix = _useClassNames.prefix,
|
|
48
49
|
merge = _useClassNames.merge,
|
|
@@ -76,6 +77,7 @@ var MonthDropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
76
77
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
77
78
|
className: rowClassName,
|
|
78
79
|
role: "row",
|
|
80
|
+
"aria-label": "" + year,
|
|
79
81
|
style: style
|
|
80
82
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
81
83
|
className: titleClassName,
|
|
@@ -99,7 +101,10 @@ var MonthDropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
99
101
|
var initialItemIndex = _utils.DateUtils.getYear(date) - startYear;
|
|
100
102
|
var initialScrollOffset = itemSize * initialItemIndex;
|
|
101
103
|
return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
|
|
102
|
-
role: "
|
|
104
|
+
role: "grid",
|
|
105
|
+
"aria-label": "Select month",
|
|
106
|
+
tabIndex: -1,
|
|
107
|
+
id: targetId ? targetId + "-" + classPrefix : undefined
|
|
103
108
|
}, rest, {
|
|
104
109
|
ref: ref,
|
|
105
110
|
className: classes
|
|
@@ -61,8 +61,8 @@ var MonthDropdownItem = /*#__PURE__*/_react.default.forwardRef(function (props,
|
|
|
61
61
|
return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
|
|
62
62
|
key: month,
|
|
63
63
|
role: "gridcell",
|
|
64
|
-
"aria-selected": active
|
|
65
|
-
"aria-disabled": disabled
|
|
64
|
+
"aria-selected": active,
|
|
65
|
+
"aria-disabled": disabled,
|
|
66
66
|
"aria-label": ariaLabel,
|
|
67
67
|
tabIndex: active ? 0 : -1,
|
|
68
68
|
ref: ref,
|
package/cjs/Calendar/Table.js
CHANGED
|
@@ -11,6 +11,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
11
11
|
var _TableRow = _interopRequireDefault(require("./TableRow"));
|
|
12
12
|
var _TableHeaderRow = _interopRequireDefault(require("./TableHeaderRow"));
|
|
13
13
|
var _utils = require("../utils");
|
|
14
|
+
var _CalendarContext = require("./CalendarContext");
|
|
14
15
|
var Table = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
15
16
|
var _props$as = props.as,
|
|
16
17
|
Component = _props$as === void 0 ? 'div' : _props$as,
|
|
@@ -24,8 +25,12 @@ var Table = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
24
25
|
merge = _useClassNames.merge,
|
|
25
26
|
withClassPrefix = _useClassNames.withClassPrefix;
|
|
26
27
|
var classes = merge(className, withClassPrefix());
|
|
28
|
+
var _useCalendarContext = (0, _CalendarContext.useCalendarContext)(),
|
|
29
|
+
targetId = _useCalendarContext.targetId;
|
|
27
30
|
return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
|
|
28
|
-
role: "grid"
|
|
31
|
+
role: "grid",
|
|
32
|
+
tabIndex: -1,
|
|
33
|
+
id: targetId ? targetId + "-" + classPrefix : undefined
|
|
29
34
|
}, rest, {
|
|
30
35
|
ref: ref,
|
|
31
36
|
className: classes
|
|
@@ -98,7 +98,8 @@ var TimeDropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
98
98
|
locale = _useCalendarContext.locale,
|
|
99
99
|
format = _useCalendarContext.format,
|
|
100
100
|
date = _useCalendarContext.date,
|
|
101
|
-
onSelect = _useCalendarContext.onChangeTime
|
|
101
|
+
onSelect = _useCalendarContext.onChangeTime,
|
|
102
|
+
targetId = _useCalendarContext.targetId;
|
|
102
103
|
var rowRef = (0, _react.useRef)(null);
|
|
103
104
|
(0, _react.useEffect)(function () {
|
|
104
105
|
var time = getTime({
|
|
@@ -149,24 +150,26 @@ var TimeDropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
149
150
|
});
|
|
150
151
|
items.push( /*#__PURE__*/_react.default.createElement("li", {
|
|
151
152
|
key: i,
|
|
152
|
-
role: "
|
|
153
|
-
}, /*#__PURE__*/_react.default.createElement("a", {
|
|
154
|
-
role: "button",
|
|
155
|
-
className: itemClasses,
|
|
153
|
+
role: "option",
|
|
156
154
|
tabIndex: -1,
|
|
155
|
+
"aria-label": i + " " + type,
|
|
156
|
+
"aria-selected": active === i,
|
|
157
|
+
"aria-disabled": disabled,
|
|
157
158
|
"data-key": type + "-" + i,
|
|
158
159
|
onClick: !disabled ? (0, _partial.default)(handleClick, type, i) : undefined
|
|
160
|
+
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
161
|
+
className: itemClasses
|
|
159
162
|
}, showMeridian && type === 'hours' && i === 0 ? '12' : i)));
|
|
160
163
|
}
|
|
161
164
|
}
|
|
162
165
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
163
|
-
className: prefix('column')
|
|
164
|
-
role: "listitem"
|
|
166
|
+
className: prefix('column')
|
|
165
167
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
166
168
|
className: prefix('column-title')
|
|
167
169
|
}, locale === null || locale === void 0 ? void 0 : locale[type]), /*#__PURE__*/_react.default.createElement("ul", {
|
|
168
170
|
"data-type": type,
|
|
169
|
-
role: "
|
|
171
|
+
role: "listbox",
|
|
172
|
+
"aria-label": "Select " + type
|
|
170
173
|
}, items));
|
|
171
174
|
};
|
|
172
175
|
var time = getTime({
|
|
@@ -174,9 +177,13 @@ var TimeDropdown = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
174
177
|
date: date,
|
|
175
178
|
showMeridian: showMeridian
|
|
176
179
|
});
|
|
177
|
-
var classes = merge(className, rootPrefix(classPrefix)
|
|
180
|
+
var classes = merge(className, rootPrefix(classPrefix), {
|
|
181
|
+
show: show
|
|
182
|
+
});
|
|
178
183
|
return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
|
|
179
|
-
role: "
|
|
184
|
+
role: "group",
|
|
185
|
+
tabIndex: -1,
|
|
186
|
+
id: targetId ? targetId + "-" + classPrefix : undefined
|
|
180
187
|
}, _utils.DateUtils.omitHideDisabledProps(rest), {
|
|
181
188
|
ref: ref,
|
|
182
189
|
className: classes
|
package/cjs/Calendar/types.d.ts
CHANGED
|
@@ -16,6 +16,7 @@ export interface CalendarInnerContextValue {
|
|
|
16
16
|
cellClassName?: (date: Date) => string | undefined;
|
|
17
17
|
showWeekNumbers?: boolean;
|
|
18
18
|
inline?: boolean;
|
|
19
|
+
targetId?: string;
|
|
19
20
|
}
|
|
20
21
|
export interface CalendarContextValue extends CalendarInnerContextValue {
|
|
21
22
|
locale: CalendarLocale;
|
|
@@ -67,6 +67,19 @@ declare const CustomContext: React.Context<CustomProviderProps<{
|
|
|
67
67
|
more: string;
|
|
68
68
|
prev: string;
|
|
69
69
|
next: string;
|
|
70
|
+
/**
|
|
71
|
+
* Return the date parsed from string using the given format string.
|
|
72
|
+
*
|
|
73
|
+
* Example:
|
|
74
|
+
*
|
|
75
|
+
* import parse from 'date-fns/parse';
|
|
76
|
+
* import eo from 'date-fns/locale/eo'
|
|
77
|
+
*
|
|
78
|
+
* function parseDate(date, formatStr) {
|
|
79
|
+
* return parse(date, formatStr, new Date(), { locale: eo });
|
|
80
|
+
* }
|
|
81
|
+
*
|
|
82
|
+
* */
|
|
70
83
|
first: string;
|
|
71
84
|
last: string;
|
|
72
85
|
limit: string;
|
|
@@ -7,7 +7,7 @@ exports.__esModule = true;
|
|
|
7
7
|
exports.default = exports.CustomContext = void 0;
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
10
|
-
var _react =
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
11
|
var _prefix = require("../utils/prefix");
|
|
12
12
|
var _DOMHelper = require("../DOMHelper");
|
|
13
13
|
var _ToastContainer = _interopRequireWildcard(require("../toaster/ToastContainer"));
|
|
@@ -43,7 +43,7 @@ var CustomProvider = function CustomProvider(props) {
|
|
|
43
43
|
disableRipple: disableRipple
|
|
44
44
|
}, rest);
|
|
45
45
|
}, [classPrefix, theme, disableRipple, rest]);
|
|
46
|
-
(0,
|
|
46
|
+
(0, _utils.useIsomorphicLayoutEffect)(function () {
|
|
47
47
|
if (_DOMHelper.canUseDOM && theme) {
|
|
48
48
|
(0, _DOMHelper.addClass)(document.body, (0, _prefix.prefix)(classPrefix, "theme-" + theme));
|
|
49
49
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import {
|
|
2
|
+
import type { Locale } from 'date-fns';
|
|
3
3
|
export declare const patternMap: {
|
|
4
4
|
y: string;
|
|
5
5
|
M: string;
|
|
@@ -22,9 +22,12 @@ export declare class DateField extends Object {
|
|
|
22
22
|
hour: number | null;
|
|
23
23
|
minute: number | null;
|
|
24
24
|
second: number | null;
|
|
25
|
-
meridian: 'AM' | 'PM' | null;
|
|
26
25
|
constructor(format: string, value?: Date | null);
|
|
27
26
|
}
|
|
27
|
+
interface Action {
|
|
28
|
+
type: string;
|
|
29
|
+
value: any;
|
|
30
|
+
}
|
|
28
31
|
export declare const useDateField: (format: string, localize: Locale['localize'], date?: Date | null) => {
|
|
29
32
|
dateField: {
|
|
30
33
|
year: any;
|
|
@@ -38,7 +41,6 @@ export declare const useDateField: (format: string, localize: Locale['localize']
|
|
|
38
41
|
hour: number | null;
|
|
39
42
|
minute: number | null;
|
|
40
43
|
second: number | null;
|
|
41
|
-
meridian: 'AM' | 'PM' | null;
|
|
42
44
|
constructor: Function;
|
|
43
45
|
toString(): string;
|
|
44
46
|
toLocaleString(): string;
|
|
@@ -59,7 +61,6 @@ export declare const useDateField: (format: string, localize: Locale['localize']
|
|
|
59
61
|
hour: number | null;
|
|
60
62
|
minute: number | null;
|
|
61
63
|
second: number | null;
|
|
62
|
-
meridian: 'AM' | 'PM' | null;
|
|
63
64
|
constructor: Function;
|
|
64
65
|
toString(): string;
|
|
65
66
|
toLocaleString(): string;
|
|
@@ -80,7 +81,6 @@ export declare const useDateField: (format: string, localize: Locale['localize']
|
|
|
80
81
|
hour: number | null;
|
|
81
82
|
minute: number | null;
|
|
82
83
|
second: number | null;
|
|
83
|
-
meridian: 'AM' | 'PM' | null;
|
|
84
84
|
constructor: Function;
|
|
85
85
|
toString(): string;
|
|
86
86
|
toLocaleString(): string;
|
|
@@ -101,7 +101,6 @@ export declare const useDateField: (format: string, localize: Locale['localize']
|
|
|
101
101
|
day: number | null;
|
|
102
102
|
minute: number | null;
|
|
103
103
|
second: number | null;
|
|
104
|
-
meridian: 'AM' | 'PM' | null;
|
|
105
104
|
constructor: Function;
|
|
106
105
|
toString(): string;
|
|
107
106
|
toLocaleString(): string;
|
|
@@ -122,7 +121,6 @@ export declare const useDateField: (format: string, localize: Locale['localize']
|
|
|
122
121
|
day: number | null;
|
|
123
122
|
hour: number | null;
|
|
124
123
|
second: number | null;
|
|
125
|
-
meridian: 'AM' | 'PM' | null;
|
|
126
124
|
constructor: Function;
|
|
127
125
|
toString(): string;
|
|
128
126
|
toLocaleString(): string;
|
|
@@ -143,28 +141,6 @@ export declare const useDateField: (format: string, localize: Locale['localize']
|
|
|
143
141
|
day: number | null;
|
|
144
142
|
hour: number | null;
|
|
145
143
|
minute: number | null;
|
|
146
|
-
meridian: 'AM' | 'PM' | null;
|
|
147
|
-
constructor: Function;
|
|
148
|
-
toString(): string;
|
|
149
|
-
toLocaleString(): string;
|
|
150
|
-
valueOf(): Object;
|
|
151
|
-
hasOwnProperty(v: PropertyKey): boolean;
|
|
152
|
-
isPrototypeOf(v: Object): boolean;
|
|
153
|
-
propertyIsEnumerable(v: PropertyKey): boolean;
|
|
154
|
-
should: Chai.Assertion;
|
|
155
|
-
} | {
|
|
156
|
-
meridian: any;
|
|
157
|
-
format: string;
|
|
158
|
-
patternArray: {
|
|
159
|
-
pattern: string;
|
|
160
|
-
key: string;
|
|
161
|
-
}[];
|
|
162
|
-
year: number | null;
|
|
163
|
-
month: number | null;
|
|
164
|
-
day: number | null;
|
|
165
|
-
hour: number | null;
|
|
166
|
-
minute: number | null;
|
|
167
|
-
second: number | null;
|
|
168
144
|
constructor: Function;
|
|
169
145
|
toString(): string;
|
|
170
146
|
toLocaleString(): string;
|
|
@@ -174,7 +150,9 @@ export declare const useDateField: (format: string, localize: Locale['localize']
|
|
|
174
150
|
propertyIsEnumerable(v: PropertyKey): boolean;
|
|
175
151
|
should: Chai.Assertion;
|
|
176
152
|
};
|
|
177
|
-
dispatch: import("react").Dispatch<
|
|
178
|
-
toDate: (type
|
|
153
|
+
dispatch: import("react").Dispatch<Action>;
|
|
154
|
+
toDate: (type?: string, value?: number | null) => Date | null;
|
|
179
155
|
toDateString: () => string;
|
|
156
|
+
isEmptyValue: (type?: string, value?: number | null) => boolean | undefined;
|
|
180
157
|
};
|
|
158
|
+
export {};
|