rsuite 5.59.1 → 5.59.3-alpha.1

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 (141) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/DateRangePicker/styles/index.css +27 -0
  3. package/DateRangePicker/styles/index.less +27 -0
  4. package/cjs/@types/common.d.ts +1 -1
  5. package/cjs/Calendar/CalendarContainer.js +4 -4
  6. package/cjs/DatePicker/DatePicker.d.ts +3 -38
  7. package/cjs/DatePicker/DatePicker.js +86 -137
  8. package/cjs/DatePicker/PredefinedRanges.d.ts +1 -1
  9. package/cjs/DatePicker/PredefinedRanges.js +3 -3
  10. package/cjs/DatePicker/Toolbar.d.ts +1 -1
  11. package/cjs/DatePicker/Toolbar.js +13 -12
  12. package/cjs/DatePicker/hooks/useFocus.d.ts +13 -0
  13. package/cjs/DatePicker/hooks/useFocus.js +96 -0
  14. package/cjs/DatePicker/hooks/useMonthView.d.ts +10 -0
  15. package/cjs/DatePicker/hooks/useMonthView.js +28 -0
  16. package/cjs/DatePicker/index.d.ts +2 -1
  17. package/cjs/DatePicker/types.d.ts +37 -0
  18. package/cjs/DatePicker/utils.d.ts +9 -0
  19. package/cjs/DatePicker/utils.js +20 -2
  20. package/cjs/DateRangePicker/DateRangePicker.d.ts +15 -3
  21. package/cjs/DateRangePicker/DateRangePicker.js +58 -68
  22. package/cjs/DateRangePicker/DateRangePickerContext.d.ts +4 -1
  23. package/cjs/DateRangePicker/DateRangePickerContext.js +4 -4
  24. package/cjs/DateRangePicker/Header.d.ts +11 -0
  25. package/cjs/DateRangePicker/Header.js +65 -0
  26. package/cjs/DateRangePicker/disabledDateUtils.d.ts +1 -1
  27. package/cjs/DateRangePicker/disabledDateUtils.js +1 -1
  28. package/cjs/DateRangePicker/index.js +5 -0
  29. package/cjs/Form/Form.d.ts +56 -39
  30. package/cjs/Form/Form.js +64 -186
  31. package/cjs/Form/FormContext.d.ts +12 -9
  32. package/cjs/Form/FormContext.js +11 -5
  33. package/cjs/Form/hooks/useFormRef.d.ts +55 -0
  34. package/cjs/Form/hooks/useFormRef.js +45 -0
  35. package/cjs/Form/hooks/useFormValidate.d.ts +19 -0
  36. package/cjs/Form/hooks/useFormValidate.js +157 -0
  37. package/cjs/Form/hooks/useFormValue.d.ts +2 -1
  38. package/cjs/Form/hooks/useFormValue.js +12 -1
  39. package/cjs/Form/hooks/useSchemaModel.js +5 -0
  40. package/cjs/Form/index.d.ts +2 -1
  41. package/cjs/FormControl/FormControl.d.ts +1 -1
  42. package/cjs/FormControl/FormControl.js +50 -68
  43. package/cjs/FormControl/hooks/useField.d.ts +18 -0
  44. package/cjs/FormControl/hooks/useField.js +54 -0
  45. package/cjs/FormControl/hooks/useRegisterModel.d.ts +3 -0
  46. package/cjs/FormControl/hooks/useRegisterModel.js +22 -0
  47. package/cjs/FormControl/utils.d.ts +1 -0
  48. package/cjs/FormControl/utils.js +8 -0
  49. package/cjs/FormControlLabel/FormControlLabel.js +12 -9
  50. package/cjs/FormErrorMessage/FormErrorMessage.js +2 -5
  51. package/cjs/FormGroup/FormGroup.d.ts +18 -4
  52. package/cjs/FormGroup/FormGroup.js +28 -2
  53. package/cjs/FormGroup/index.d.ts +1 -0
  54. package/cjs/FormGroup/index.js +4 -3
  55. package/cjs/FormHelpText/FormHelpText.d.ts +2 -1
  56. package/cjs/FormHelpText/FormHelpText.js +16 -9
  57. package/cjs/Input/Input.js +4 -5
  58. package/cjs/utils/dateUtils.d.ts +72 -10
  59. package/cjs/utils/dateUtils.js +88 -29
  60. package/dist/rsuite-no-reset-rtl.css +27 -0
  61. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  62. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  63. package/dist/rsuite-no-reset.css +27 -0
  64. package/dist/rsuite-no-reset.min.css +1 -1
  65. package/dist/rsuite-no-reset.min.css.map +1 -1
  66. package/dist/rsuite-rtl.css +27 -0
  67. package/dist/rsuite-rtl.min.css +1 -1
  68. package/dist/rsuite-rtl.min.css.map +1 -1
  69. package/dist/rsuite.css +27 -0
  70. package/dist/rsuite.js +144 -44
  71. package/dist/rsuite.js.map +1 -1
  72. package/dist/rsuite.min.css +1 -1
  73. package/dist/rsuite.min.css.map +1 -1
  74. package/dist/rsuite.min.js +1 -1
  75. package/dist/rsuite.min.js.LICENSE.txt +35 -0
  76. package/dist/rsuite.min.js.map +1 -1
  77. package/esm/@types/common.d.ts +1 -1
  78. package/esm/Calendar/CalendarContainer.js +5 -5
  79. package/esm/DatePicker/DatePicker.d.ts +3 -38
  80. package/esm/DatePicker/DatePicker.js +88 -139
  81. package/esm/DatePicker/PredefinedRanges.d.ts +1 -1
  82. package/esm/DatePicker/PredefinedRanges.js +3 -3
  83. package/esm/DatePicker/Toolbar.d.ts +1 -1
  84. package/esm/DatePicker/Toolbar.js +13 -12
  85. package/esm/DatePicker/hooks/useFocus.d.ts +13 -0
  86. package/esm/DatePicker/hooks/useFocus.js +90 -0
  87. package/esm/DatePicker/hooks/useMonthView.d.ts +10 -0
  88. package/esm/DatePicker/hooks/useMonthView.js +22 -0
  89. package/esm/DatePicker/index.d.ts +2 -1
  90. package/esm/DatePicker/types.d.ts +37 -0
  91. package/esm/DatePicker/utils.d.ts +9 -0
  92. package/esm/DatePicker/utils.js +18 -2
  93. package/esm/DateRangePicker/DateRangePicker.d.ts +15 -3
  94. package/esm/DateRangePicker/DateRangePicker.js +61 -71
  95. package/esm/DateRangePicker/DateRangePickerContext.d.ts +4 -1
  96. package/esm/DateRangePicker/DateRangePickerContext.js +2 -2
  97. package/esm/DateRangePicker/Header.d.ts +11 -0
  98. package/esm/DateRangePicker/Header.js +59 -0
  99. package/esm/DateRangePicker/disabledDateUtils.d.ts +1 -1
  100. package/esm/DateRangePicker/disabledDateUtils.js +1 -1
  101. package/esm/DateRangePicker/index.js +4 -0
  102. package/esm/Form/Form.d.ts +56 -39
  103. package/esm/Form/Form.js +62 -183
  104. package/esm/Form/FormContext.d.ts +12 -9
  105. package/esm/Form/FormContext.js +6 -2
  106. package/esm/Form/hooks/useFormRef.d.ts +55 -0
  107. package/esm/Form/hooks/useFormRef.js +40 -0
  108. package/esm/Form/hooks/useFormValidate.d.ts +19 -0
  109. package/esm/Form/hooks/useFormValidate.js +152 -0
  110. package/esm/Form/hooks/useFormValue.d.ts +2 -1
  111. package/esm/Form/hooks/useFormValue.js +12 -1
  112. package/esm/Form/hooks/useSchemaModel.js +5 -0
  113. package/esm/Form/index.d.ts +2 -1
  114. package/esm/FormControl/FormControl.d.ts +1 -1
  115. package/esm/FormControl/FormControl.js +48 -66
  116. package/esm/FormControl/hooks/useField.d.ts +18 -0
  117. package/esm/FormControl/hooks/useField.js +48 -0
  118. package/esm/FormControl/hooks/useRegisterModel.d.ts +3 -0
  119. package/esm/FormControl/hooks/useRegisterModel.js +17 -0
  120. package/esm/FormControl/utils.d.ts +1 -0
  121. package/esm/FormControl/utils.js +4 -0
  122. package/esm/FormControlLabel/FormControlLabel.js +12 -8
  123. package/esm/FormErrorMessage/FormErrorMessage.js +2 -5
  124. package/esm/FormGroup/FormGroup.d.ts +18 -4
  125. package/esm/FormGroup/FormGroup.js +27 -1
  126. package/esm/FormGroup/index.d.ts +1 -0
  127. package/esm/FormGroup/index.js +1 -0
  128. package/esm/FormHelpText/FormHelpText.d.ts +2 -1
  129. package/esm/FormHelpText/FormHelpText.js +17 -9
  130. package/esm/Input/Input.js +4 -5
  131. package/esm/utils/dateUtils.d.ts +72 -10
  132. package/esm/utils/dateUtils.js +86 -28
  133. package/package.json +2 -2
  134. package/cjs/Form/hooks/useFormError.d.ts +0 -6
  135. package/cjs/Form/hooks/useFormError.js +0 -31
  136. package/cjs/FormControl/useRegisterModel.d.ts +0 -4
  137. package/cjs/FormControl/useRegisterModel.js +0 -18
  138. package/esm/Form/hooks/useFormError.d.ts +0 -6
  139. package/esm/Form/hooks/useFormError.js +0 -26
  140. package/esm/FormControl/useRegisterModel.d.ts +0 -4
  141. package/esm/FormControl/useRegisterModel.js +0 -13
@@ -1,37 +1,40 @@
1
1
  'use client';
2
2
  "use strict";
3
3
 
4
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
5
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
5
  exports.__esModule = true;
7
6
  exports.default = void 0;
8
7
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
8
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
- var _react = _interopRequireWildcard(require("react"));
9
+ var _react = _interopRequireDefault(require("react"));
11
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
11
  var _utils = require("../utils");
13
- var _FormGroup = require("../FormGroup/FormGroup");
12
+ var _FormGroup = require("../FormGroup");
14
13
  /**
15
14
  * The `<Form.ControlLabel>` component renders a label with required indicator, for form controls.
16
15
  * @see https://rsuitejs.com/components/form/
17
16
  */
18
17
  var FormControlLabel = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
18
+ var _useFormGroup = (0, _FormGroup.useFormGroup)(),
19
+ labelId = _useFormGroup.labelId,
20
+ controlId = _useFormGroup.controlId;
19
21
  var _props$as = props.as,
20
22
  Component = _props$as === void 0 ? 'label' : _props$as,
21
23
  _props$classPrefix = props.classPrefix,
22
24
  classPrefix = _props$classPrefix === void 0 ? 'form-control-label' : _props$classPrefix,
23
- htmlFor = props.htmlFor,
25
+ _props$htmlFor = props.htmlFor,
26
+ htmlFor = _props$htmlFor === void 0 ? controlId : _props$htmlFor,
24
27
  className = props.className,
25
- rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "classPrefix", "htmlFor", "className"]);
26
- var _useContext = (0, _react.useContext)(_FormGroup.FormGroupContext),
27
- controlId = _useContext.controlId;
28
+ _props$id = props.id,
29
+ id = _props$id === void 0 ? labelId : _props$id,
30
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "classPrefix", "htmlFor", "className", "id"]);
28
31
  var _useClassNames = (0, _utils.useClassNames)(classPrefix),
29
32
  withClassPrefix = _useClassNames.withClassPrefix,
30
33
  merge = _useClassNames.merge;
31
34
  var classes = merge(className, withClassPrefix());
32
35
  return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
33
- id: controlId ? controlId + "-control-label" : null,
34
- htmlFor: htmlFor || controlId
36
+ id: id,
37
+ htmlFor: htmlFor
35
38
  }, rest, {
36
39
  ref: ref,
37
40
  className: classes
@@ -34,10 +34,7 @@ var FormErrorMessage = /*#__PURE__*/_react.default.forwardRef(function (props, r
34
34
  merge = _useClassNames.merge;
35
35
  var classes = withClassPrefix('show');
36
36
  var wrapperClasses = merge(className, prefix('wrapper', (_prefix = {}, _prefix["placement-" + (0, _kebabCase.default)((0, _utils.placementPolyfill)(placement))] = placement, _prefix)));
37
- if (!show) {
38
- return null;
39
- }
40
- return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {
37
+ return show ? /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {
41
38
  ref: ref,
42
39
  className: wrapperClasses
43
40
  }), /*#__PURE__*/_react.default.createElement("span", {
@@ -46,7 +43,7 @@ var FormErrorMessage = /*#__PURE__*/_react.default.forwardRef(function (props, r
46
43
  className: prefix(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["arrow"])))
47
44
  }), /*#__PURE__*/_react.default.createElement("span", {
48
45
  className: prefix(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteralLoose2.default)(["inner"])))
49
- }, children)));
46
+ }, children))) : null;
50
47
  });
51
48
  FormErrorMessage.displayName = 'FormErrorMessage';
52
49
  FormErrorMessage.propTypes = {
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  import { WithAsProps, RsRefForwardingComponent } from '../@types/common';
3
2
  export interface FormGroupProps extends WithAsProps {
4
3
  /**
@@ -7,9 +6,24 @@ export interface FormGroupProps extends WithAsProps {
7
6
  */
8
7
  controlId?: string;
9
8
  }
10
- export declare const FormGroupContext: React.Context<{
11
- controlId?: string | undefined;
12
- }>;
9
+ export declare const useFormGroup: (controlId?: string) => {
10
+ /**
11
+ * The `id` of the `<Form.Control>` component.
12
+ */
13
+ controlId: string;
14
+ /**
15
+ * The `id` of the `<Form.HelpText>` component.
16
+ */
17
+ helpTextId: string;
18
+ /**
19
+ * The `id` of the `<Form.ControlLabel>` component.
20
+ */
21
+ labelId: string;
22
+ /**
23
+ * The `id` of the `<Form.ErrorMessage>` component.
24
+ */
25
+ errorMessageId: string;
26
+ };
13
27
  /**
14
28
  * The `<Form.Group>` component is the easiest way to add some structure to forms.
15
29
  * @see https://rsuitejs.com/components/form/
@@ -4,19 +4,45 @@
4
4
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
5
5
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
6
  exports.__esModule = true;
7
- exports.default = exports.FormGroupContext = void 0;
7
+ exports.default = exports.useFormGroup = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
10
  var _react = _interopRequireWildcard(require("react"));
11
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
12
  var _utils = require("../utils");
13
13
  var FormGroupContext = /*#__PURE__*/_react.default.createContext({});
14
+ var useFormGroup = function useFormGroup(controlId) {
15
+ var context = _react.default.useContext(FormGroupContext);
16
+ var fallbackId = (0, _utils.useUniqueId)('rs-');
17
+ var id = controlId || context.controlId || fallbackId;
18
+ var helpTextId = id + "-help-text";
19
+ var labelId = id + "-label";
20
+ var errorMessageId = id + "-error-message";
21
+ return {
22
+ /**
23
+ * The `id` of the `<Form.Control>` component.
24
+ */
25
+ controlId: id,
26
+ /**
27
+ * The `id` of the `<Form.HelpText>` component.
28
+ */
29
+ helpTextId: helpTextId,
30
+ /**
31
+ * The `id` of the `<Form.ControlLabel>` component.
32
+ */
33
+ labelId: labelId,
34
+ /**
35
+ * The `id` of the `<Form.ErrorMessage>` component.
36
+ */
37
+ errorMessageId: errorMessageId
38
+ };
39
+ };
14
40
 
15
41
  /**
16
42
  * The `<Form.Group>` component is the easiest way to add some structure to forms.
17
43
  * @see https://rsuitejs.com/components/form/
18
44
  */
19
- exports.FormGroupContext = FormGroupContext;
45
+ exports.useFormGroup = useFormGroup;
20
46
  var FormGroup = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
21
47
  var _props$as = props.as,
22
48
  Component = _props$as === void 0 ? 'div' : _props$as,
@@ -1,3 +1,4 @@
1
1
  import FormGroup from './FormGroup';
2
2
  export type { FormGroupProps } from './FormGroup';
3
+ export { useFormGroup } from './FormGroup';
3
4
  export default FormGroup;
@@ -1,9 +1,10 @@
1
1
  'use client';
2
2
  "use strict";
3
3
 
4
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
5
5
  exports.__esModule = true;
6
- exports.default = void 0;
7
- var _FormGroup = _interopRequireDefault(require("./FormGroup"));
6
+ exports.default = exports.useFormGroup = void 0;
7
+ var _FormGroup = _interopRequireWildcard(require("./FormGroup"));
8
+ exports.useFormGroup = _FormGroup.useFormGroup;
8
9
  var _default = _FormGroup.default;
9
10
  exports.default = _default;
@@ -1,5 +1,6 @@
1
+ import React from 'react';
1
2
  import { WithAsProps, RsRefForwardingComponent } from '../@types/common';
2
- export interface FormHelpTextProps extends WithAsProps {
3
+ export interface FormHelpTextProps extends WithAsProps, React.HTMLAttributes<HTMLSpanElement> {
3
4
  /** Whether to show through the Tooltip component */
4
5
  tooltip?: boolean;
5
6
  }
@@ -1,24 +1,25 @@
1
1
  'use client';
2
2
  "use strict";
3
3
 
4
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
5
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
5
  exports.__esModule = true;
7
6
  exports.default = void 0;
8
7
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
8
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
- var _react = _interopRequireWildcard(require("react"));
9
+ var _react = _interopRequireDefault(require("react"));
11
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
11
  var _Tooltip = _interopRequireDefault(require("../Tooltip"));
13
12
  var _Whisper = _interopRequireDefault(require("../Whisper"));
14
13
  var _utils = require("../utils");
15
- var _FormGroup = require("../FormGroup/FormGroup");
14
+ var _FormGroup = require("../FormGroup");
16
15
  var _HelpO = _interopRequireDefault(require("@rsuite/icons/legacy/HelpO"));
17
16
  /**
18
17
  * The `<Form.HelpText>` component is used to display help information in the form.
19
18
  * @see https://rsuitejs.com/components/form/
20
19
  */
21
20
  var FormHelpText = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
21
+ var _useFormGroup = (0, _FormGroup.useFormGroup)(),
22
+ helpTextId = _useFormGroup.helpTextId;
22
23
  var _props$as = props.as,
23
24
  Component = _props$as === void 0 ? 'span' : _props$as,
24
25
  _props$classPrefix = props.classPrefix,
@@ -26,9 +27,9 @@ var FormHelpText = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
26
27
  className = props.className,
27
28
  tooltip = props.tooltip,
28
29
  children = props.children,
29
- rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "classPrefix", "className", "tooltip", "children"]);
30
- var _useContext = (0, _react.useContext)(_FormGroup.FormGroupContext),
31
- controlId = _useContext.controlId;
30
+ _props$id = props.id,
31
+ id = _props$id === void 0 ? helpTextId : _props$id,
32
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "classPrefix", "className", "tooltip", "children", "id"]);
32
33
  var _useClassNames = (0, _utils.useClassNames)(classPrefix),
33
34
  withClassPrefix = _useClassNames.withClassPrefix,
34
35
  merge = _useClassNames.merge;
@@ -39,13 +40,19 @@ var FormHelpText = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
39
40
  return /*#__PURE__*/_react.default.createElement(_Whisper.default, {
40
41
  ref: ref,
41
42
  placement: "topEnd",
42
- speaker: /*#__PURE__*/_react.default.createElement(_Tooltip.default, rest, children)
43
+ speaker: /*#__PURE__*/_react.default.createElement(_Tooltip.default, (0, _extends2.default)({
44
+ id: id
45
+ }, rest), children)
43
46
  }, /*#__PURE__*/_react.default.createElement(Component, {
47
+ role: "img",
48
+ "aria-label": "help",
44
49
  className: classes
45
- }, /*#__PURE__*/_react.default.createElement(_HelpO.default, null)));
50
+ }, /*#__PURE__*/_react.default.createElement(_HelpO.default, {
51
+ "aria-hidden": true
52
+ })));
46
53
  }
47
54
  return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
48
- id: controlId ? controlId + "-help-text" : null
55
+ id: id
49
56
  }, rest, {
50
57
  ref: ref,
51
58
  className: classes
@@ -9,7 +9,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
9
9
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
10
  var _react = _interopRequireWildcard(require("react"));
11
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
- var _FormGroup = require("../FormGroup/FormGroup");
12
+ var _FormGroup = require("../FormGroup");
13
13
  var _InputGroup = require("../InputGroup/InputGroup");
14
14
  var _Plaintext = _interopRequireDefault(require("../internals/Plaintext"));
15
15
  var _utils = require("../utils");
@@ -60,9 +60,8 @@ var Input = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
60
60
  plaintext: plaintext
61
61
  }));
62
62
  var inputGroupContext = (0, _react.useContext)(_InputGroup.InputGroupContext);
63
- var formGroupContext = (0, _react.useContext)(_FormGroup.FormGroupContext);
64
-
65
- // Make the Input component display in plain text,
63
+ var _useFormGroup = (0, _FormGroup.useFormGroup)(),
64
+ controlId = _useFormGroup.controlId; // Make the Input component display in plain text,
66
65
  // and display default characters when there is no value.
67
66
  if (plaintext) {
68
67
  return /*#__PURE__*/_react.default.createElement(_Plaintext.default, {
@@ -83,7 +82,7 @@ var Input = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
83
82
  ref: (0, _utils.mergeRefs)(ref, inputRef),
84
83
  className: classes,
85
84
  type: type,
86
- id: id || (formGroupContext === null || formGroupContext === void 0 ? void 0 : formGroupContext.controlId),
85
+ id: id || controlId,
87
86
  value: value,
88
87
  defaultValue: defaultValue,
89
88
  disabled: disabled,
@@ -43,28 +43,84 @@ export { default as set } from 'date-fns/set';
43
43
  export { default as differenceInCalendarMonths } from 'date-fns/differenceInCalendarMonths';
44
44
  export { default as isLastDayOfMonth } from 'date-fns/isLastDayOfMonth';
45
45
  export { default as lastDayOfMonth } from 'date-fns/lastDayOfMonth';
46
- export declare type CalendarOnlyPropsType = 'disabledHours' | 'disabledMinutes' | 'disabledSeconds' | 'hideHours' | 'hideMinutes' | 'hideSeconds';
47
- export declare const calendarOnlyProps: CalendarOnlyPropsType[];
46
+ declare enum TimeProp {
47
+ DisabledHours = "disabledHours",
48
+ DisabledMinutes = "disabledMinutes",
49
+ DisabledSeconds = "disabledSeconds",
50
+ ShouldDisableHour = "shouldDisableHour",
51
+ ShouldDisableMinute = "shouldDisableMinute",
52
+ ShouldDisableSecond = "shouldDisableSecond",
53
+ HideHours = "hideHours",
54
+ HideMinutes = "hideMinutes",
55
+ HideSeconds = "hideSeconds"
56
+ }
57
+ export declare type CalendarOnlyPropsType = TimeProp;
58
+ export declare const calendarOnlyProps: readonly [TimeProp.DisabledHours, TimeProp.DisabledMinutes, TimeProp.DisabledSeconds, TimeProp.HideHours, TimeProp.HideMinutes, TimeProp.HideSeconds];
59
+ interface CalendarProps {
60
+ [TimeProp.DisabledHours]?: (hours: number, date: Date) => boolean;
61
+ [TimeProp.DisabledMinutes]?: (minutes: number, date: Date) => boolean;
62
+ [TimeProp.DisabledSeconds]?: (seconds: number, date: Date) => boolean;
63
+ [TimeProp.HideHours]?: (hours: number, date: Date) => boolean;
64
+ [TimeProp.HideMinutes]?: (minutes: number, date: Date) => boolean;
65
+ [TimeProp.HideSeconds]?: (seconds: number, date: Date) => boolean;
66
+ }
48
67
  /**
49
68
  * Verify that the time is valid.
50
69
  *
51
- * @param props
52
- * @param date
70
+ * @param props - The calendar props.
71
+ * @param date - The date to check.
72
+ * @returns Whether the time is disabled.
73
+ */
74
+ export declare function disableTime(props: CalendarProps, date: Date): boolean;
75
+ /**
76
+ * Omit the calendar-only props from an object.
77
+ *
78
+ * @param props - The object to omit props from.
79
+ * @returns The object with calendar-only props omitted.
80
+ */
81
+ export declare const omitHideDisabledProps: <T extends Record<string, any>>(props: T) => Partial<Omit<T, TimeProp>>;
82
+ /**
83
+ * Check if the time should be rendered based on the format.
84
+ *
85
+ * @param format - The format string.
86
+ * @returns Whether the time should be rendered.
53
87
  */
54
- export declare function disabledTime(props: any, date: Date): boolean;
55
- export declare const omitHideDisabledProps: <T extends Record<string, any>>(props: T) => Partial<Omit<T, CalendarOnlyPropsType>>;
56
88
  export declare const shouldRenderTime: (format: string) => boolean;
89
+ /**
90
+ * Check if the month should be rendered based on the format.
91
+ *
92
+ * @param format - The format string.
93
+ * @returns Whether the month should be rendered.
94
+ */
57
95
  export declare const shouldRenderMonth: (format: string) => boolean;
96
+ /**
97
+ * Check if the date should be rendered based on the format.
98
+ *
99
+ * @param format - The format string.
100
+ * @returns Whether the date should be rendered.
101
+ */
58
102
  export declare const shouldRenderDate: (format: string) => boolean;
103
+ /**
104
+ * Check if only the time should be rendered based on the format.
105
+ *
106
+ * @param format - The format string.
107
+ * @returns Whether only the time should be rendered.
108
+ */
59
109
  export declare const shouldOnlyRenderTime: (format: string) => boolean;
60
110
  /**
61
- * Get all weeks of this month
62
- * @params monthDate
63
- * @return date[]
111
+ * Get all weeks of a month.
112
+ *
113
+ * @param monthDate - The date of the month.
114
+ * @param isoWeek - Whether to use ISO week numbering.
115
+ * @returns An array of weeks in the month.
64
116
  */
65
117
  export declare function getMonthView(monthDate: Date, isoWeek: boolean): Date[];
66
118
  /**
67
- * Copy the time of one date to another
119
+ * Copy the time from one date to another.
120
+ *
121
+ * @param from - The source date.
122
+ * @param to - The target date.
123
+ * @returns The target date with the time copied from the source date.
68
124
  */
69
125
  export declare function copyTime({ from, to }: {
70
126
  from: Date;
@@ -72,9 +128,15 @@ export declare function copyTime({ from, to }: {
72
128
  }): Date;
73
129
  /**
74
130
  * Swap two dates without swapping the time.
131
+ *
132
+ * @param dateRange - The date range to reverse.
133
+ * @returns The reversed date range.
75
134
  */
76
135
  export declare function reverseDateRangeOmitTime(dateRange: [Date, Date]): [Date, Date];
77
136
  /**
78
137
  * Get the time with AM and PM reversed.
138
+ *
139
+ * @param date - The date to reverse the time meridian.
140
+ * @returns The date with the time meridian reversed.
79
141
  */
80
142
  export declare const getReversedTimeMeridian: (date: Date) => Date;
@@ -3,7 +3,7 @@
3
3
 
4
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
5
  exports.__esModule = true;
6
- exports.disabledTime = disabledTime;
6
+ exports.disableTime = disableTime;
7
7
  exports.getMonthView = getMonthView;
8
8
  exports.copyTime = copyTime;
9
9
  exports.reverseDateRangeOmitTime = reverseDateRangeOmitTime;
@@ -100,67 +100,116 @@ var _isLastDayOfMonth = _interopRequireDefault(require("date-fns/isLastDayOfMont
100
100
  exports.isLastDayOfMonth = _isLastDayOfMonth.default;
101
101
  var _lastDayOfMonth = _interopRequireDefault(require("date-fns/lastDayOfMonth"));
102
102
  exports.lastDayOfMonth = _lastDayOfMonth.default;
103
- var disabledTimeProps = ['disabledHours', 'disabledMinutes', 'disabledSeconds'];
104
- var hideTimeProps = ['hideHours', 'hideMinutes', 'hideSeconds'];
105
- var calendarOnlyProps = disabledTimeProps.concat(hideTimeProps);
103
+ var TimeProp;
104
+ (function (TimeProp) {
105
+ TimeProp["DisabledHours"] = "disabledHours";
106
+ TimeProp["DisabledMinutes"] = "disabledMinutes";
107
+ TimeProp["DisabledSeconds"] = "disabledSeconds";
108
+ TimeProp["ShouldDisableHour"] = "shouldDisableHour";
109
+ TimeProp["ShouldDisableMinute"] = "shouldDisableMinute";
110
+ TimeProp["ShouldDisableSecond"] = "shouldDisableSecond";
111
+ TimeProp["HideHours"] = "hideHours";
112
+ TimeProp["HideMinutes"] = "hideMinutes";
113
+ TimeProp["HideSeconds"] = "hideSeconds";
114
+ })(TimeProp || (TimeProp = {}));
115
+ var calendarOnlyProps = [TimeProp.DisabledHours, TimeProp.DisabledMinutes, TimeProp.DisabledSeconds, TimeProp.HideHours, TimeProp.HideMinutes, TimeProp.HideSeconds];
106
116
  exports.calendarOnlyProps = calendarOnlyProps;
107
- function validTime(calendarProps, date) {
117
+ var HOURS_PATTERN = /(Hours?)/;
118
+ var MINUTES_PATTERN = /(Minutes?)/;
119
+ var SECONDS_PATTERN = /(Seconds?)/;
120
+ /**
121
+ * Verify that the time is valid.
122
+ *
123
+ * @param props - The calendar props.
124
+ * @param date - The date to check.
125
+ * @returns Whether the time is disabled.
126
+ */
127
+ function disableTime(props, date) {
108
128
  if (!date) {
109
129
  return false;
110
130
  }
111
- return Object.keys(calendarProps).some(function (key) {
112
- if (/(Hours)/.test(key)) {
113
- var _calendarProps$key;
114
- return (_calendarProps$key = calendarProps[key]) === null || _calendarProps$key === void 0 ? void 0 : _calendarProps$key.call(calendarProps, (0, _getHours.default)(date), date);
131
+ var disabledTimeProps = [TimeProp.DisabledHours, TimeProp.DisabledMinutes, TimeProp.DisabledSeconds, TimeProp.ShouldDisableHour, TimeProp.ShouldDisableMinute, TimeProp.ShouldDisableSecond];
132
+ var calendarProps = (0, _pick.default)(props, disabledTimeProps);
133
+ var mapProps = new Map(Object.entries(calendarProps));
134
+ return Array.from(mapProps.keys()).some(function (key) {
135
+ if (HOURS_PATTERN.test(key)) {
136
+ var _mapProps$get;
137
+ return (_mapProps$get = mapProps.get(key)) === null || _mapProps$get === void 0 ? void 0 : _mapProps$get((0, _getHours.default)(date), date);
115
138
  }
116
- if (/(Minutes)/.test(key)) {
117
- var _calendarProps$key2;
118
- return (_calendarProps$key2 = calendarProps[key]) === null || _calendarProps$key2 === void 0 ? void 0 : _calendarProps$key2.call(calendarProps, (0, _getMinutes.default)(date), date);
139
+ if (MINUTES_PATTERN.test(key)) {
140
+ var _mapProps$get2;
141
+ return (_mapProps$get2 = mapProps.get(key)) === null || _mapProps$get2 === void 0 ? void 0 : _mapProps$get2((0, _getMinutes.default)(date), date);
119
142
  }
120
- if (/(Seconds)/.test(key)) {
121
- var _calendarProps$key3;
122
- return (_calendarProps$key3 = calendarProps[key]) === null || _calendarProps$key3 === void 0 ? void 0 : _calendarProps$key3.call(calendarProps, (0, _getSeconds.default)(date), date);
143
+ if (SECONDS_PATTERN.test(key)) {
144
+ var _mapProps$get3;
145
+ return (_mapProps$get3 = mapProps.get(key)) === null || _mapProps$get3 === void 0 ? void 0 : _mapProps$get3((0, _getSeconds.default)(date), date);
123
146
  }
124
147
  return false;
125
148
  });
126
149
  }
127
150
 
128
151
  /**
129
- * Verify that the time is valid.
152
+ * Omit the calendar-only props from an object.
130
153
  *
131
- * @param props
132
- * @param date
154
+ * @param props - The object to omit props from.
155
+ * @returns The object with calendar-only props omitted.
133
156
  */
134
- function disabledTime(props, date) {
135
- var calendarProps = (0, _pick.default)(props, disabledTimeProps);
136
- return validTime(calendarProps, date);
137
- }
138
157
  var omitHideDisabledProps = function omitHideDisabledProps(props) {
139
158
  return (0, _omitBy.default)(props, function (_val, key) {
140
- return key.startsWith('disabled') || key.startsWith('hide');
159
+ return key.startsWith('disabled') || key.startsWith('hide') || key.startsWith('shouldDisable');
141
160
  });
142
161
  };
162
+
163
+ /**
164
+ * Check if the time should be rendered based on the format.
165
+ *
166
+ * @param format - The format string.
167
+ * @returns Whether the time should be rendered.
168
+ */
143
169
  exports.omitHideDisabledProps = omitHideDisabledProps;
144
170
  var shouldRenderTime = function shouldRenderTime(format) {
145
171
  return /([Hhms])/.test(format);
146
172
  };
173
+
174
+ /**
175
+ * Check if the month should be rendered based on the format.
176
+ *
177
+ * @param format - The format string.
178
+ * @returns Whether the month should be rendered.
179
+ */
147
180
  exports.shouldRenderTime = shouldRenderTime;
148
181
  var shouldRenderMonth = function shouldRenderMonth(format) {
149
182
  return /[Yy]/.test(format) && /[ML]/.test(format);
150
183
  };
184
+
185
+ /**
186
+ * Check if the date should be rendered based on the format.
187
+ *
188
+ * @param format - The format string.
189
+ * @returns Whether the date should be rendered.
190
+ */
151
191
  exports.shouldRenderMonth = shouldRenderMonth;
152
192
  var shouldRenderDate = function shouldRenderDate(format) {
153
193
  return /[Yy]/.test(format) && /[ML]/.test(format) && /[Dd]/.test(format);
154
- }; // for date-fns v1 and v2
194
+ };
195
+
196
+ /**
197
+ * Check if only the time should be rendered based on the format.
198
+ *
199
+ * @param format - The format string.
200
+ * @returns Whether only the time should be rendered.
201
+ */
155
202
  exports.shouldRenderDate = shouldRenderDate;
156
203
  var shouldOnlyRenderTime = function shouldOnlyRenderTime(format) {
157
204
  return /([Hhms])/.test(format) && !/([YyMDd])/.test(format);
158
- }; // for date-fns v1 and v2
205
+ };
159
206
 
160
207
  /**
161
- * Get all weeks of this month
162
- * @params monthDate
163
- * @return date[]
208
+ * Get all weeks of a month.
209
+ *
210
+ * @param monthDate - The date of the month.
211
+ * @param isoWeek - Whether to use ISO week numbering.
212
+ * @returns An array of weeks in the month.
164
213
  */
165
214
  exports.shouldOnlyRenderTime = shouldOnlyRenderTime;
166
215
  function getMonthView(monthDate, isoWeek) {
@@ -184,7 +233,11 @@ function getMonthView(monthDate, isoWeek) {
184
233
  }
185
234
 
186
235
  /**
187
- * Copy the time of one date to another
236
+ * Copy the time from one date to another.
237
+ *
238
+ * @param from - The source date.
239
+ * @param to - The target date.
240
+ * @returns The target date with the time copied from the source date.
188
241
  */
189
242
  function copyTime(_ref) {
190
243
  var from = _ref.from,
@@ -201,6 +254,9 @@ function copyTime(_ref) {
201
254
 
202
255
  /**
203
256
  * Swap two dates without swapping the time.
257
+ *
258
+ * @param dateRange - The date range to reverse.
259
+ * @returns The reversed date range.
204
260
  */
205
261
  function reverseDateRangeOmitTime(dateRange) {
206
262
  var start = dateRange[0],
@@ -219,6 +275,9 @@ function reverseDateRangeOmitTime(dateRange) {
219
275
 
220
276
  /**
221
277
  * Get the time with AM and PM reversed.
278
+ *
279
+ * @param date - The date to reverse the time meridian.
280
+ * @returns The date with the time meridian reversed.
222
281
  */
223
282
  var getReversedTimeMeridian = function getReversedTimeMeridian(date) {
224
283
  var clonedDate = new Date(date.valueOf());
@@ -4680,6 +4680,33 @@ label:hover .rs-checkbox-control .rs-checkbox-inner::before {
4680
4680
  border-bottom: 1px solid #e5e5ea;
4681
4681
  border-bottom: 1px solid var(--rs-border-primary);
4682
4682
  }
4683
+ .rs-picker-daterange-header .rs-picker-header-date:focus {
4684
+ background-color: transparent;
4685
+ }
4686
+ .rs-picker-daterange-header.rs-picker-tab-active-end,
4687
+ .rs-picker-daterange-header.rs-picker-tab-active-start {
4688
+ position: relative;
4689
+ display: -webkit-box;
4690
+ display: -ms-flexbox;
4691
+ display: flex;
4692
+ -webkit-box-align: center;
4693
+ -ms-flex-align: center;
4694
+ align-items: center;
4695
+ -ms-flex-pack: distribute;
4696
+ justify-content: space-around;
4697
+ }
4698
+ .rs-picker-daterange-header.rs-picker-tab-active-end::after,
4699
+ .rs-picker-daterange-header.rs-picker-tab-active-start::after {
4700
+ content: ' ';
4701
+ position: absolute;
4702
+ width: 50%;
4703
+ bottom: -1px;
4704
+ border-bottom: 2px solid #3498ff;
4705
+ right: 0;
4706
+ }
4707
+ .rs-picker-daterange-header.rs-picker-tab-active-end::after {
4708
+ right: 50%;
4709
+ }
4683
4710
  .rs-picker-daterange-calendar-group {
4684
4711
  height: 274px;
4685
4712
  min-width: 492px;