rsuite 5.53.2 → 5.55.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.
Files changed (158) hide show
  1. package/AutoComplete/styles/index.css +0 -2
  2. package/CHANGELOG.md +36 -0
  3. package/Cascader/styles/index.css +0 -2
  4. package/CheckPicker/styles/index.css +0 -2
  5. package/CheckTree/styles/index.css +0 -2
  6. package/CheckTreePicker/styles/index.css +0 -2
  7. package/DatePicker/styles/index.css +0 -2
  8. package/DateRangePicker/styles/index.css +0 -2
  9. package/FormGroup/styles/index.css +3 -0
  10. package/FormGroup/styles/index.less +2 -0
  11. package/InlineEdit/package.json +7 -0
  12. package/InlineEdit/styles/index.css +112 -0
  13. package/InlineEdit/styles/index.less +48 -0
  14. package/InputGroup/styles/index.css +0 -2
  15. package/InputGroup/styles/index.less +0 -2
  16. package/InputNumber/styles/index.css +0 -2
  17. package/InputPicker/styles/index.css +0 -2
  18. package/MultiCascader/styles/index.css +0 -2
  19. package/Pagination/styles/index.css +3 -2
  20. package/Pagination/styles/pagination-group.less +4 -0
  21. package/SelectPicker/styles/index.css +0 -2
  22. package/TagInput/styles/index.css +1 -4
  23. package/TagPicker/styles/index.css +1 -4
  24. package/TagPicker/styles/index.less +1 -2
  25. package/cjs/Calendar/CalendarContainer.d.ts +4 -0
  26. package/cjs/Calendar/CalendarContainer.js +3 -1
  27. package/cjs/Calendar/TableCell.js +3 -2
  28. package/cjs/Calendar/types.d.ts +1 -0
  29. package/cjs/Cascader/DropdownMenu.js +3 -1
  30. package/cjs/Cascader/TreeView.js +3 -1
  31. package/cjs/DOMHelper/index.d.ts +23 -32
  32. package/cjs/DatePicker/DatePicker.d.ts +6 -0
  33. package/cjs/DatePicker/DatePicker.js +4 -3
  34. package/cjs/DateRangePicker/DateRangePicker.js +8 -2
  35. package/cjs/InlineEdit/EditableControls.d.ts +8 -0
  36. package/cjs/InlineEdit/EditableControls.js +34 -0
  37. package/cjs/InlineEdit/InlineEdit.d.ts +56 -0
  38. package/cjs/InlineEdit/InlineEdit.js +98 -0
  39. package/cjs/InlineEdit/index.d.ts +3 -0
  40. package/cjs/InlineEdit/index.js +9 -0
  41. package/cjs/InlineEdit/renderChildren.d.ts +12 -0
  42. package/cjs/InlineEdit/renderChildren.js +40 -0
  43. package/cjs/InlineEdit/useEditState.d.ts +22 -0
  44. package/cjs/InlineEdit/useEditState.js +82 -0
  45. package/cjs/InlineEdit/useFocusEvent.d.ts +14 -0
  46. package/cjs/InlineEdit/useFocusEvent.js +61 -0
  47. package/cjs/Input/Input.js +6 -3
  48. package/cjs/InputNumber/InputNumber.d.ts +36 -11
  49. package/cjs/InputNumber/InputNumber.js +47 -28
  50. package/cjs/InputPicker/InputPicker.js +6 -5
  51. package/cjs/Pagination/LimitPicker.d.ts +15 -0
  52. package/cjs/Pagination/LimitPicker.js +51 -0
  53. package/cjs/Pagination/Pagination.js +7 -8
  54. package/cjs/Pagination/PaginationButton.js +3 -18
  55. package/cjs/Pagination/PaginationGroup.d.ts +35 -7
  56. package/cjs/Pagination/PaginationGroup.js +77 -98
  57. package/cjs/RangeSlider/RangeSlider.js +14 -11
  58. package/cjs/Slider/Handle.js +19 -62
  59. package/cjs/Slider/ProgressBar.js +2 -1
  60. package/cjs/Slider/Slider.d.ts +2 -0
  61. package/cjs/Slider/Slider.js +18 -12
  62. package/cjs/Slider/useDrag.d.ts +16 -0
  63. package/cjs/Slider/useDrag.js +88 -0
  64. package/cjs/Slider/utils.d.ts +6 -2
  65. package/cjs/Slider/utils.js +15 -1
  66. package/cjs/index.d.ts +2 -0
  67. package/cjs/index.js +3 -1
  68. package/cjs/internals/Overlay/positionUtils.d.ts +1 -6
  69. package/cjs/internals/Picker/Listbox.d.ts +5 -1
  70. package/cjs/internals/Picker/Listbox.js +6 -5
  71. package/cjs/internals/Picker/hooks/usePickerRef.js +2 -0
  72. package/cjs/internals/Picker/types.d.ts +2 -0
  73. package/cjs/internals/symbols.d.ts +2 -0
  74. package/cjs/internals/symbols.js +9 -0
  75. package/cjs/locales/cs_CZ.d.ts +120 -0
  76. package/cjs/locales/cs_CZ.js +88 -0
  77. package/cjs/locales/index.d.ts +1 -0
  78. package/cjs/locales/index.js +4 -2
  79. package/cjs/utils/getDataGroupBy.d.ts +0 -1
  80. package/cjs/utils/getDataGroupBy.js +3 -5
  81. package/dist/rsuite-no-reset-rtl.css +94 -4
  82. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  83. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  84. package/dist/rsuite-no-reset.css +94 -4
  85. package/dist/rsuite-no-reset.min.css +1 -1
  86. package/dist/rsuite-no-reset.min.css.map +1 -1
  87. package/dist/rsuite-rtl.css +94 -4
  88. package/dist/rsuite-rtl.min.css +1 -1
  89. package/dist/rsuite-rtl.min.css.map +1 -1
  90. package/dist/rsuite.css +94 -4
  91. package/dist/rsuite.js +171 -61
  92. package/dist/rsuite.js.map +1 -1
  93. package/dist/rsuite.min.css +1 -1
  94. package/dist/rsuite.min.css.map +1 -1
  95. package/dist/rsuite.min.js +1 -1
  96. package/dist/rsuite.min.js.map +1 -1
  97. package/esm/Calendar/CalendarContainer.d.ts +4 -0
  98. package/esm/Calendar/CalendarContainer.js +3 -1
  99. package/esm/Calendar/TableCell.js +5 -4
  100. package/esm/Calendar/types.d.ts +1 -0
  101. package/esm/Cascader/DropdownMenu.js +3 -1
  102. package/esm/Cascader/TreeView.js +3 -1
  103. package/esm/DOMHelper/index.d.ts +23 -32
  104. package/esm/DatePicker/DatePicker.d.ts +6 -0
  105. package/esm/DatePicker/DatePicker.js +4 -3
  106. package/esm/DateRangePicker/DateRangePicker.js +8 -2
  107. package/esm/InlineEdit/EditableControls.d.ts +8 -0
  108. package/esm/InlineEdit/EditableControls.js +28 -0
  109. package/esm/InlineEdit/InlineEdit.d.ts +56 -0
  110. package/esm/InlineEdit/InlineEdit.js +92 -0
  111. package/esm/InlineEdit/index.d.ts +3 -0
  112. package/esm/InlineEdit/index.js +3 -0
  113. package/esm/InlineEdit/renderChildren.d.ts +12 -0
  114. package/esm/InlineEdit/renderChildren.js +34 -0
  115. package/esm/InlineEdit/useEditState.d.ts +22 -0
  116. package/esm/InlineEdit/useEditState.js +76 -0
  117. package/esm/InlineEdit/useFocusEvent.d.ts +14 -0
  118. package/esm/InlineEdit/useFocusEvent.js +56 -0
  119. package/esm/Input/Input.js +6 -3
  120. package/esm/InputNumber/InputNumber.d.ts +36 -11
  121. package/esm/InputNumber/InputNumber.js +49 -30
  122. package/esm/InputPicker/InputPicker.js +6 -5
  123. package/esm/Pagination/LimitPicker.d.ts +15 -0
  124. package/esm/Pagination/LimitPicker.js +44 -0
  125. package/esm/Pagination/Pagination.js +7 -7
  126. package/esm/Pagination/PaginationButton.js +4 -18
  127. package/esm/Pagination/PaginationGroup.d.ts +35 -7
  128. package/esm/Pagination/PaginationGroup.js +79 -98
  129. package/esm/RangeSlider/RangeSlider.js +15 -12
  130. package/esm/Slider/Handle.js +19 -61
  131. package/esm/Slider/ProgressBar.js +2 -1
  132. package/esm/Slider/Slider.d.ts +2 -0
  133. package/esm/Slider/Slider.js +20 -14
  134. package/esm/Slider/useDrag.d.ts +16 -0
  135. package/esm/Slider/useDrag.js +82 -0
  136. package/esm/Slider/utils.d.ts +6 -2
  137. package/esm/Slider/utils.js +15 -3
  138. package/esm/index.d.ts +2 -0
  139. package/esm/index.js +1 -0
  140. package/esm/internals/Overlay/positionUtils.d.ts +1 -6
  141. package/esm/internals/Picker/Listbox.d.ts +5 -1
  142. package/esm/internals/Picker/Listbox.js +7 -6
  143. package/esm/internals/Picker/hooks/usePickerRef.js +2 -0
  144. package/esm/internals/Picker/types.d.ts +2 -0
  145. package/esm/internals/symbols.d.ts +2 -0
  146. package/esm/internals/symbols.js +3 -0
  147. package/esm/locales/cs_CZ.d.ts +120 -0
  148. package/esm/locales/cs_CZ.js +82 -0
  149. package/esm/locales/index.d.ts +1 -0
  150. package/esm/locales/index.js +2 -1
  151. package/esm/utils/getDataGroupBy.d.ts +0 -1
  152. package/esm/utils/getDataGroupBy.js +2 -3
  153. package/locales/cs_CZ/package.json +7 -0
  154. package/package.json +2 -2
  155. package/styles/color-modes/dark.less +3 -0
  156. package/styles/color-modes/high-contrast.less +3 -0
  157. package/styles/color-modes/light.less +3 -0
  158. package/styles/index.less +1 -0
@@ -1,79 +1,56 @@
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 _classnames = _interopRequireDefault(require("classnames"));
13
12
  var _Pagination = _interopRequireDefault(require("./Pagination"));
14
- var _SelectPicker = _interopRequireDefault(require("../SelectPicker"));
15
13
  var _Divider = _interopRequireDefault(require("../Divider"));
16
14
  var _Input = _interopRequireDefault(require("../Input"));
17
15
  var _utils = require("../utils");
18
- var LimitPicker = function LimitPicker(props) {
19
- var disabled = props.disabled,
20
- limitOptions = props.limitOptions,
21
- locale = props.locale,
22
- limit = props.limit,
23
- onChangeLimit = props.onChangeLimit,
24
- size = props.size,
25
- prefix = props.prefix;
26
- var disabledPicker = typeof disabled === 'function' ? disabled('picker') : Boolean(disabled);
27
- var formatlimitOptions = limitOptions.map(function (item) {
28
- return {
29
- value: item,
30
- label: locale.limit && (0, _utils.tplTransform)(locale.limit, item)
31
- };
32
- });
33
- return /*#__PURE__*/_react.default.createElement("div", {
34
- className: prefix('limit')
35
- }, /*#__PURE__*/_react.default.createElement(_SelectPicker.default, {
36
- size: size,
37
- cleanable: false,
38
- searchable: false,
39
- placement: "topStart",
40
- data: formatlimitOptions,
41
- value: limit,
42
- onChange: onChangeLimit // fixme don't use any
43
- ,
44
- menuStyle: {
45
- minWidth: 'auto'
46
- },
47
- disabled: disabledPicker
48
- }));
49
- };
16
+ var _LimitPicker = _interopRequireDefault(require("./LimitPicker"));
17
+ /**
18
+ * The layout of the paging component.
19
+ */
20
+
50
21
  var defaultLayout = ['pager'];
51
22
  var defaultLimitOptions = [30, 50, 100];
23
+
24
+ /**
25
+ * Pagination component for displaying page numbers.
26
+ *
27
+ * @see https://rsuitejs.com/components/pagination
28
+ */
52
29
  var PaginationGroup = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
53
30
  var _props$as = props.as,
54
31
  Component = _props$as === void 0 ? 'div' : _props$as,
32
+ activePageProp = props.activePage,
55
33
  _props$classPrefix = props.classPrefix,
56
34
  classPrefix = _props$classPrefix === void 0 ? 'pagination-group' : _props$classPrefix,
35
+ className = props.className,
36
+ disabled = props.disabled,
57
37
  size = props.size,
38
+ style = props.style,
58
39
  total = props.total,
59
40
  prev = props.prev,
60
41
  next = props.next,
61
42
  first = props.first,
62
43
  last = props.last,
63
- maxButtons = props.maxButtons,
64
- className = props.className,
65
44
  _props$limitOptions = props.limitOptions,
66
45
  limitOptions = _props$limitOptions === void 0 ? defaultLimitOptions : _props$limitOptions,
67
46
  limitProp = props.limit,
68
- activePageProp = props.activePage,
69
- disabled = props.disabled,
70
- style = props.style,
71
47
  localeProp = props.locale,
72
48
  _props$layout = props.layout,
73
49
  layout = _props$layout === void 0 ? defaultLayout : _props$layout,
50
+ maxButtons = props.maxButtons,
74
51
  onChangePage = props.onChangePage,
75
52
  onChangeLimit = props.onChangeLimit,
76
- rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "classPrefix", "size", "total", "prev", "next", "first", "last", "maxButtons", "className", "limitOptions", "limit", "activePage", "disabled", "style", "locale", "layout", "onChangePage", "onChangeLimit"]);
53
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "activePage", "classPrefix", "className", "disabled", "size", "style", "total", "prev", "next", "first", "last", "limitOptions", "limit", "locale", "layout", "maxButtons", "onChangePage", "onChangeLimit"]);
77
54
  var _useClassNames = (0, _utils.useClassNames)(classPrefix),
78
55
  merge = _useClassNames.merge,
79
56
  prefix = _useClassNames.prefix,
@@ -88,80 +65,82 @@ var PaginationGroup = /*#__PURE__*/_react.default.forwardRef(function (props, re
88
65
  locale = _useCustom.locale;
89
66
  var pages = Math.floor(total / limit) + (total % limit ? 1 : 0);
90
67
  var classes = merge(className, withClassPrefix(size));
91
- var handleInputBlur = (0, _react.useCallback)(function (event) {
68
+ var handleInputBlur = (0, _utils.useEventCallback)(function (event) {
92
69
  var value = parseInt(event.target.value);
93
70
  if (value > 0 && value <= pages) {
94
71
  onChangePage === null || onChangePage === void 0 ? void 0 : onChangePage(value);
95
72
  setActivePage(value);
96
73
  }
97
74
  event.target.value = '';
98
- }, [onChangePage, pages, setActivePage]);
99
- var handleInputPressEnter = (0, _react.useCallback)(function (event) {
75
+ });
76
+ var handleInputPressEnter = (0, _utils.useEventCallback)(function (event) {
100
77
  var _event$target;
101
78
  (_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.blur();
102
- }, []);
103
- var handleChangeLimit = (0, _react.useCallback)(function (value) {
79
+ });
80
+ var handleChangeLimit = (0, _utils.useEventCallback)(function (value) {
104
81
  setLimit(value);
105
82
  onChangeLimit === null || onChangeLimit === void 0 ? void 0 : onChangeLimit(value);
106
- }, [onChangeLimit, setLimit]);
83
+ });
107
84
  return /*#__PURE__*/_react.default.createElement(Component, {
108
85
  ref: ref,
109
86
  className: classes,
110
87
  style: style
111
88
  }, layout.map(function (key, index) {
112
89
  var onlyKey = "" + key + index;
113
- if (key === '-') {
114
- return /*#__PURE__*/_react.default.createElement("div", {
115
- className: prefix('grow'),
116
- key: onlyKey
117
- });
118
- } else if (key === '|') {
119
- return /*#__PURE__*/_react.default.createElement(_Divider.default, {
120
- vertical: true,
121
- key: onlyKey
122
- });
123
- } else if (key === 'pager') {
124
- return /*#__PURE__*/_react.default.createElement(_Pagination.default, (0, _extends2.default)({
125
- key: onlyKey,
126
- size: size,
127
- prev: prev,
128
- next: next,
129
- first: first,
130
- last: last,
131
- maxButtons: maxButtons,
132
- pages: pages,
133
- disabled: disabled,
134
- onSelect: onChangePage // fixme don't use any
135
- ,
136
- activePage: activePage
137
- }, rest));
138
- } else if (key === 'total') {
139
- return /*#__PURE__*/_react.default.createElement("div", {
140
- key: onlyKey,
141
- className: prefix('total')
142
- }, locale.total && (0, _utils.tplTransform)(locale.total, total));
143
- } else if (key === 'skip') {
144
- return /*#__PURE__*/_react.default.createElement("div", {
145
- key: onlyKey,
146
- className: (0, _classnames.default)(prefix('skip'))
147
- }, locale.skip && (0, _utils.tplTransform)(locale.skip, /*#__PURE__*/_react.default.createElement(_Input.default, {
148
- size: size,
149
- onBlur: handleInputBlur,
150
- onPressEnter: handleInputPressEnter
151
- })));
152
- } else if (key === 'limit') {
153
- return /*#__PURE__*/_react.default.createElement(LimitPicker, {
154
- key: onlyKey,
155
- size: size,
156
- locale: locale,
157
- limit: limit,
158
- onChangeLimit: handleChangeLimit,
159
- limitOptions: limitOptions,
160
- disabled: disabled,
161
- prefix: prefix
162
- });
90
+ switch (key) {
91
+ case '-':
92
+ return /*#__PURE__*/_react.default.createElement("div", {
93
+ className: prefix('grow'),
94
+ key: onlyKey
95
+ });
96
+ case '|':
97
+ return /*#__PURE__*/_react.default.createElement(_Divider.default, {
98
+ vertical: true,
99
+ key: onlyKey
100
+ });
101
+ case 'pager':
102
+ return /*#__PURE__*/_react.default.createElement(_Pagination.default, (0, _extends2.default)({
103
+ key: onlyKey,
104
+ size: size,
105
+ prev: prev,
106
+ next: next,
107
+ first: first,
108
+ last: last,
109
+ maxButtons: maxButtons,
110
+ pages: pages,
111
+ disabled: disabled,
112
+ onSelect: onChangePage // fixme don't use any
113
+ ,
114
+ activePage: activePage
115
+ }, rest));
116
+ case 'total':
117
+ return /*#__PURE__*/_react.default.createElement("div", {
118
+ key: onlyKey,
119
+ className: prefix('total')
120
+ }, locale.total && (0, _utils.tplTransform)(locale.total, total));
121
+ case 'skip':
122
+ return /*#__PURE__*/_react.default.createElement("div", {
123
+ key: onlyKey,
124
+ className: (0, _classnames.default)(prefix('skip'))
125
+ }, locale.skip && (0, _utils.tplTransform)(locale.skip, /*#__PURE__*/_react.default.createElement(_Input.default, {
126
+ size: size,
127
+ onBlur: handleInputBlur,
128
+ onPressEnter: handleInputPressEnter
129
+ })));
130
+ case 'limit':
131
+ return /*#__PURE__*/_react.default.createElement(_LimitPicker.default, {
132
+ key: onlyKey,
133
+ size: size,
134
+ locale: locale,
135
+ limit: limit,
136
+ onChangeLimit: handleChangeLimit,
137
+ limitOptions: limitOptions,
138
+ disabled: disabled,
139
+ prefix: prefix
140
+ });
141
+ default:
142
+ return key;
163
143
  }
164
- return key;
165
144
  }));
166
145
  });
167
146
  PaginationGroup.displayName = 'PaginationGroup';
@@ -33,17 +33,17 @@ var RangeSlider = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
33
33
  Component = _props$as === void 0 ? 'div' : _props$as,
34
34
  barClassName = props.barClassName,
35
35
  className = props.className,
36
+ _props$classPrefix = props.classPrefix,
37
+ classPrefix = _props$classPrefix === void 0 ? 'slider' : _props$classPrefix,
36
38
  constraint = props.constraint,
37
39
  _props$defaultValue = props.defaultValue,
38
40
  defaultValue = _props$defaultValue === void 0 ? defaultDefaultValue : _props$defaultValue,
41
+ disabled = props.disabled,
39
42
  graduated = props.graduated,
40
43
  _props$progress = props.progress,
41
44
  progress = _props$progress === void 0 ? true : _props$progress,
42
45
  vertical = props.vertical,
43
- disabled = props.disabled,
44
46
  readOnly = props.readOnly,
45
- _props$classPrefix = props.classPrefix,
46
- classPrefix = _props$classPrefix === void 0 ? 'slider' : _props$classPrefix,
47
47
  _props$min = props.min,
48
48
  min = _props$min === void 0 ? 0 : _props$min,
49
49
  _props$max = props.max,
@@ -61,7 +61,7 @@ var RangeSlider = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
61
61
  renderMark = props.renderMark,
62
62
  onChange = props.onChange,
63
63
  onChangeCommitted = props.onChangeCommitted,
64
- rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["aria-label", "aria-labelledby", "aria-valuetext", "as", "barClassName", "className", "constraint", "defaultValue", "graduated", "progress", "vertical", "disabled", "readOnly", "classPrefix", "min", "max", "step", "value", "handleClassName", "handleStyle", "handleTitle", "tooltip", "getAriaValueText", "renderTooltip", "renderMark", "onChange", "onChangeCommitted"]);
64
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["aria-label", "aria-labelledby", "aria-valuetext", "as", "barClassName", "className", "classPrefix", "constraint", "defaultValue", "disabled", "graduated", "progress", "vertical", "readOnly", "min", "max", "step", "value", "handleClassName", "handleStyle", "handleTitle", "tooltip", "getAriaValueText", "renderTooltip", "renderMark", "onChange", "onChangeCommitted"]);
65
65
  var barRef = (0, _react.useRef)(null);
66
66
 
67
67
  // Define the parameter position of the handle
@@ -122,7 +122,10 @@ var RangeSlider = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
122
122
  }, [count, getBarHeight, getBarWidth, step, vertical]);
123
123
  var getValueByPosition = (0, _react.useCallback)(function (event) {
124
124
  var barOffset = (0, _getOffset.default)(barRef.current);
125
- var offset = vertical ? barOffset.top + barOffset.height - event.pageY : event.pageX - barOffset.left;
125
+ var _getPosition = (0, _utils2.getPosition)(event),
126
+ pageX = _getPosition.pageX,
127
+ pageY = _getPosition.pageY;
128
+ var offset = vertical ? barOffset.top + barOffset.height - pageY : pageX - barOffset.left;
126
129
  var val = rtl && !vertical ? barOffset.width - offset : offset;
127
130
  return getValueByOffset(val) + min;
128
131
  }, [getValueByOffset, min, rtl, vertical]);
@@ -187,7 +190,7 @@ var RangeSlider = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
187
190
  /**
188
191
  * Callback function that is fired when the mouseup is triggered
189
192
  */
190
- var handleChangeCommitted = (0, _react.useCallback)(function (event, dataset) {
193
+ var handleChangeCommitted = (0, _utils.useEventCallback)(function (event, dataset) {
191
194
  if (disabled || readOnly) {
192
195
  return;
193
196
  }
@@ -196,8 +199,8 @@ var RangeSlider = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
196
199
  setValue(nextValue);
197
200
  onChangeCommitted === null || onChangeCommitted === void 0 ? void 0 : onChangeCommitted(nextValue, event);
198
201
  }
199
- }, [disabled, readOnly, getNextValue, isRangeMatchingConstraint, setValue, onChangeCommitted]);
200
- var handleKeyDown = (0, _react.useCallback)(function (event) {
202
+ });
203
+ var handleKeyDown = (0, _utils.useEventCallback)(function (event) {
201
204
  var _event$target;
202
205
  var _event$target$dataset = (_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target['dataset'],
203
206
  key = _event$target$dataset.key;
@@ -236,8 +239,8 @@ var RangeSlider = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
236
239
  setValue(nextValue);
237
240
  onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);
238
241
  }
239
- }, [max, min, onChange, rtl, isRangeMatchingConstraint, setValue, step, value]);
240
- var handleBarClick = (0, _react.useCallback)(function (event) {
242
+ });
243
+ var handleBarClick = (0, _utils.useEventCallback)(function (event) {
241
244
  if (disabled || readOnly) {
242
245
  return;
243
246
  }
@@ -259,7 +262,7 @@ var RangeSlider = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
259
262
  onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);
260
263
  onChangeCommitted === null || onChangeCommitted === void 0 ? void 0 : onChangeCommitted(nextValue, event);
261
264
  }
262
- }, [disabled, readOnly, getValidValue, getValueByPosition, isRangeMatchingConstraint, onChange, onChangeCommitted, setValue, value]);
265
+ });
263
266
  var handleProps = (0, _react.useMemo)(function () {
264
267
  return [{
265
268
  value: value[0],
@@ -1,20 +1,17 @@
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 _extends3 = _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
- var _DOMMouseMoveTracker = _interopRequireDefault(require("dom-lib/DOMMouseMoveTracker"));
13
- var _addStyle = _interopRequireDefault(require("dom-lib/addStyle"));
14
- var _getWidth = _interopRequireDefault(require("dom-lib/getWidth"));
15
11
  var _Tooltip = _interopRequireDefault(require("../Tooltip"));
16
12
  var _utils = require("../utils");
17
13
  var _Input = _interopRequireDefault(require("./Input"));
14
+ var _useDrag2 = _interopRequireDefault(require("./useDrag"));
18
15
  var Handle = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
19
16
  var _extends2;
20
17
  var _props$as = props.as,
@@ -40,80 +37,40 @@ var Handle = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
40
37
  dataRange = props['data-range'],
41
38
  dateKey = props['data-key'],
42
39
  rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "classPrefix", "className", "disabled", "style", "children", "position", "vertical", "tooltip", "rtl", "value", "role", "tabIndex", "renderTooltip", "onDragStart", "onDragMove", "onDragEnd", "onKeyDown", "data-range", "data-key"]);
43
- var _useState = (0, _react.useState)(false),
44
- active = _useState[0],
45
- setActive = _useState[1];
46
- var rootRef = (0, _react.useRef)(null);
47
40
  var horizontalKey = rtl ? 'right' : 'left';
48
41
  var direction = vertical ? 'bottom' : horizontalKey;
49
42
  var styles = (0, _extends3.default)({}, style, (_extends2 = {}, _extends2[direction] = position + "%", _extends2));
50
43
  var _useClassNames = (0, _utils.useClassNames)(classPrefix),
51
44
  merge = _useClassNames.merge,
52
45
  prefix = _useClassNames.prefix;
46
+ var _useDrag = (0, _useDrag2.default)({
47
+ tooltip: tooltip,
48
+ disabled: disabled,
49
+ onDragStart: onDragStart,
50
+ onDragMove: onDragMove,
51
+ onDragEnd: onDragEnd
52
+ }),
53
+ active = _useDrag.active,
54
+ onMoveStart = _useDrag.onMoveStart,
55
+ onMouseEnter = _useDrag.onMouseEnter,
56
+ rootRef = _useDrag.rootRef,
57
+ tooltipRef = _useDrag.tooltipRef;
53
58
  var handleClasses = merge(className, prefix('handle'), {
54
59
  active: active
55
60
  });
56
- var tooltipRef = (0, _react.useRef)(null);
57
- var mouseMoveTracker = (0, _react.useRef)();
58
- var releaseMouseMoves = (0, _react.useCallback)(function () {
59
- var _mouseMoveTracker$cur;
60
- (_mouseMoveTracker$cur = mouseMoveTracker.current) === null || _mouseMoveTracker$cur === void 0 ? void 0 : _mouseMoveTracker$cur.releaseMouseMoves();
61
- mouseMoveTracker.current = null;
62
- }, []);
63
- var setTooltipPosition = (0, _react.useCallback)(function () {
64
- var tooltipElement = tooltipRef.current;
65
- if (tooltip && tooltipElement) {
66
- var width = (0, _getWidth.default)(tooltipElement);
67
- (0, _addStyle.default)(tooltipElement, 'left', "-" + width / 2 + "px");
68
- }
69
- }, [tooltip]);
70
- var handleDragMove = (0, _react.useCallback)(function (_deltaX, _deltaY, event) {
71
- var _mouseMoveTracker$cur2;
72
- if ((_mouseMoveTracker$cur2 = mouseMoveTracker.current) !== null && _mouseMoveTracker$cur2 !== void 0 && _mouseMoveTracker$cur2.isDragging()) {
73
- var _rootRef$current;
74
- onDragMove === null || onDragMove === void 0 ? void 0 : onDragMove(event, (_rootRef$current = rootRef.current) === null || _rootRef$current === void 0 ? void 0 : _rootRef$current.dataset);
75
- setTooltipPosition();
76
- }
77
- }, [onDragMove, setTooltipPosition]);
78
- var handleDragEnd = (0, _react.useCallback)(function (event) {
79
- var _rootRef$current2;
80
- setActive(false);
81
- releaseMouseMoves();
82
- onDragEnd === null || onDragEnd === void 0 ? void 0 : onDragEnd(event, (_rootRef$current2 = rootRef.current) === null || _rootRef$current2 === void 0 ? void 0 : _rootRef$current2.dataset);
83
- }, [onDragEnd, releaseMouseMoves]);
84
- var getMouseMoveTracker = (0, _react.useCallback)(function () {
85
- return mouseMoveTracker.current || new _DOMMouseMoveTracker.default(handleDragMove, handleDragEnd, document.body);
86
- }, [handleDragEnd, handleDragMove]);
87
- var handleMouseDown = (0, _react.useCallback)(function (event) {
88
- var _mouseMoveTracker$cur3, _rootRef$current3;
89
- if (disabled) {
90
- return;
91
- }
92
- mouseMoveTracker.current = getMouseMoveTracker();
93
- (_mouseMoveTracker$cur3 = mouseMoveTracker.current) === null || _mouseMoveTracker$cur3 === void 0 ? void 0 : _mouseMoveTracker$cur3.captureMouseMoves(event);
94
- (_rootRef$current3 = rootRef.current) === null || _rootRef$current3 === void 0 ? void 0 : _rootRef$current3.focus();
95
- setActive(true);
96
- onDragStart === null || onDragStart === void 0 ? void 0 : onDragStart(event);
97
- }, [disabled, getMouseMoveTracker, onDragStart]);
98
- var handleMouseEnter = (0, _react.useCallback)(function () {
99
- setTooltipPosition();
100
- }, [setTooltipPosition]);
101
- (0, _react.useEffect)(function () {
102
- return function () {
103
- releaseMouseMoves();
104
- };
105
- }, [releaseMouseMoves]);
106
61
  return /*#__PURE__*/_react.default.createElement(Component, {
107
62
  role: role,
108
63
  tabIndex: tabIndex,
109
64
  ref: (0, _utils.mergeRefs)(ref, rootRef),
110
65
  className: handleClasses,
111
- onMouseDown: handleMouseDown,
112
- onMouseEnter: handleMouseEnter,
66
+ onMouseDown: onMoveStart,
67
+ onMouseEnter: onMouseEnter,
68
+ onTouchStart: onMoveStart,
113
69
  onKeyDown: onKeyDown,
114
70
  style: styles,
115
71
  "data-range": dataRange,
116
- "data-key": dateKey
72
+ "data-key": dateKey,
73
+ "data-testid": "slider-handle"
117
74
  }, tooltip && /*#__PURE__*/_react.default.createElement(_Tooltip.default, {
118
75
  "aria-hidden": "true",
119
76
  ref: tooltipRef,
@@ -33,7 +33,8 @@ var ProgressBar = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
33
33
  return /*#__PURE__*/_react.default.createElement(Component, {
34
34
  ref: ref,
35
35
  style: styles,
36
- className: classes
36
+ className: classes,
37
+ "data-testid": "slider-progress-bar"
37
38
  });
38
39
  });
39
40
  ProgressBar.displayName = 'ProgressBar';
@@ -40,6 +40,8 @@ export interface SliderProps<T = number> extends WithAsProps, FormControlBasePro
40
40
  tooltip?: boolean;
41
41
  /** Show sliding progress bar */
42
42
  progress?: boolean;
43
+ /** Placeholder text */
44
+ placeholder?: React.ReactNode;
43
45
  /** Vertical Slide */
44
46
  vertical?: boolean;
45
47
  /** Customize labels on the render ruler */
@@ -80,12 +80,13 @@ var Slider = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
80
80
  valueProp = props.value,
81
81
  _props$max = props.max,
82
82
  maxProp = _props$max === void 0 ? 100 : _props$max,
83
+ placeholder = props.placeholder,
83
84
  getAriaValueText = props.getAriaValueText,
84
85
  renderTooltip = props.renderTooltip,
85
86
  renderMark = props.renderMark,
86
87
  onChange = props.onChange,
87
88
  onChangeCommitted = props.onChangeCommitted,
88
- rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["aria-label", "aria-labelledby", "aria-valuetext", "as", "graduated", "className", "barClassName", "progress", "vertical", "disabled", "readOnly", "plaintext", "classPrefix", "min", "handleClassName", "handleStyle", "handleTitle", "tooltip", "step", "defaultValue", "value", "max", "getAriaValueText", "renderTooltip", "renderMark", "onChange", "onChangeCommitted"]);
89
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["aria-label", "aria-labelledby", "aria-valuetext", "as", "graduated", "className", "barClassName", "progress", "vertical", "disabled", "readOnly", "plaintext", "classPrefix", "min", "handleClassName", "handleStyle", "handleTitle", "tooltip", "step", "defaultValue", "value", "max", "placeholder", "getAriaValueText", "renderTooltip", "renderMark", "onChange", "onChangeCommitted"]);
89
90
  var barRef = (0, _react.useRef)(null);
90
91
  var _useClassNames = (0, _utils.useClassNames)(classPrefix),
91
92
  merge = _useClassNames.merge,
@@ -145,7 +146,10 @@ var Slider = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
145
146
  */
146
147
  var getValueByPosition = (0, _react.useCallback)(function (event) {
147
148
  var barOffset = (0, _getOffset.default)(barRef.current);
148
- var offset = vertical ? barOffset.top + barOffset.height - event.pageY : event.pageX - barOffset.left;
149
+ var _getPosition = (0, _utils2.getPosition)(event),
150
+ pageX = _getPosition.pageX,
151
+ pageY = _getPosition.pageY;
152
+ var offset = vertical ? barOffset.top + barOffset.height - pageY : pageX - barOffset.left;
149
153
  var offsetValue = rtl && !vertical ? barOffset.width - offset : offset;
150
154
  return getValueByOffset(offsetValue) + min;
151
155
  }, [getValueByOffset, min, rtl, vertical]);
@@ -153,30 +157,30 @@ var Slider = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
153
157
  /**
154
158
  * Callback function that is fired when the mousemove is triggered
155
159
  */
156
- var handleChangeValue = (0, _react.useCallback)(function (event) {
160
+ var handleChangeValue = (0, _utils.useEventCallback)(function (event) {
157
161
  if (disabled || readOnly) {
158
162
  return;
159
163
  }
160
164
  var nextValue = getValidValue(getValueByPosition(event));
161
165
  setValue(nextValue);
162
166
  onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);
163
- }, [disabled, getValidValue, getValueByPosition, onChange, readOnly, setValue]);
167
+ });
164
168
 
165
169
  /**
166
170
  * Callback function that is fired when the mouseup is triggered
167
171
  */
168
- var handleChangeCommitted = (0, _react.useCallback)(function (event) {
172
+ var handleChangeCommitted = (0, _utils.useEventCallback)(function (event) {
169
173
  if (disabled || readOnly) {
170
174
  return;
171
175
  }
172
176
  var nextValue = getValidValue(getValueByPosition(event));
173
177
  onChangeCommitted === null || onChangeCommitted === void 0 ? void 0 : onChangeCommitted(nextValue, event);
174
- }, [disabled, getValidValue, getValueByPosition, onChangeCommitted, readOnly]);
175
- var handleClickBar = (0, _react.useCallback)(function (event) {
178
+ });
179
+ var handleClickBar = (0, _utils.useEventCallback)(function (event) {
176
180
  handleChangeValue(event);
177
181
  handleChangeCommitted(event);
178
- }, [handleChangeCommitted, handleChangeValue]);
179
- var handleKeyDown = (0, _react.useCallback)(function (event) {
182
+ });
183
+ var handleKeyDown = (0, _utils.useEventCallback)(function (event) {
180
184
  var nextValue;
181
185
  var increaseKey = rtl ? 'ArrowLeft' : 'ArrowRight';
182
186
  var decreaseKey = rtl ? 'ArrowRight' : 'ArrowLeft';
@@ -203,11 +207,12 @@ var Slider = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
203
207
  event.preventDefault();
204
208
  setValue(nextValue);
205
209
  onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);
206
- }, [max, min, onChange, rtl, setValue, step, value]);
210
+ });
207
211
  if (plaintext) {
208
212
  return /*#__PURE__*/_react.default.createElement(_Plaintext.default, {
209
213
  localeKey: "notSelected",
210
- ref: ref
214
+ ref: ref,
215
+ placeholder: placeholder
211
216
  }, value);
212
217
  }
213
218
  return /*#__PURE__*/_react.default.createElement(Componnet, (0, _extends2.default)({}, rest, {
@@ -217,7 +222,8 @@ var Slider = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
217
222
  }), /*#__PURE__*/_react.default.createElement("div", {
218
223
  ref: barRef,
219
224
  className: merge(barClassName, prefix('bar')),
220
- onClick: handleClickBar
225
+ onClick: handleClickBar,
226
+ "data-testid": "slider-bar"
221
227
  }, progress && /*#__PURE__*/_react.default.createElement(_ProgressBar.default, {
222
228
  rtl: rtl,
223
229
  vertical: vertical,
@@ -0,0 +1,16 @@
1
+ /// <reference types="react" />
2
+ interface DragProps {
3
+ tooltip?: boolean;
4
+ disabled?: boolean;
5
+ onDragStart?: (event: React.MouseEvent) => void;
6
+ onDragMove?: (event: React.DragEvent, dataset?: DOMStringMap) => void;
7
+ onDragEnd?: (event: React.MouseEvent, dataset?: DOMStringMap) => void;
8
+ }
9
+ declare const useDrag: (props: DragProps) => {
10
+ active: boolean;
11
+ rootRef: import("react").RefObject<HTMLDivElement>;
12
+ tooltipRef: import("react").RefObject<HTMLDivElement>;
13
+ onMoveStart: (...args: any[]) => any;
14
+ onMouseEnter: (...args: any[]) => any;
15
+ };
16
+ export default useDrag;