@salutejs/plasma-new-hope 0.149.0-canary.1418.10940499394.0 → 0.149.0-canary.1421.10946935893.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (237) hide show
  1. package/cjs/components/DatePicker/RangeDate/RangeDate.css +2 -0
  2. package/cjs/components/DatePicker/RangeDate/RangeDate.js +39 -2
  3. package/cjs/components/DatePicker/RangeDate/RangeDate.js.map +1 -1
  4. package/cjs/components/DatePicker/SingleDate/SingleDate.css +2 -0
  5. package/cjs/components/DatePicker/SingleDate/SingleDate.js +26 -2
  6. package/cjs/components/DatePicker/SingleDate/SingleDate.js.map +1 -1
  7. package/cjs/components/DatePicker/utils/setInitValue.js +12 -0
  8. package/cjs/components/DatePicker/utils/setInitValue.js.map +1 -0
  9. package/cjs/components/Slider/Slider.css +2 -0
  10. package/cjs/components/Slider/Slider.js +19 -6
  11. package/cjs/components/Slider/Slider.js.map +1 -1
  12. package/cjs/components/Slider/components/Double/Double.css +2 -0
  13. package/cjs/components/Slider/components/Double/Double.js +38 -2
  14. package/cjs/components/Slider/components/Double/Double.js.map +1 -1
  15. package/cjs/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.js +56 -0
  16. package/cjs/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.js.map +1 -0
  17. package/cjs/components/Slider/components/Single/Single.css +2 -0
  18. package/cjs/components/Slider/components/Single/Single.js +35 -12
  19. package/cjs/components/Slider/components/Single/Single.js.map +1 -1
  20. package/cjs/components/Slider/utils/index.js +6 -0
  21. package/cjs/components/Slider/utils/index.js.map +1 -1
  22. package/cjs/components/TextArea/TextArea.js +3 -2
  23. package/cjs/components/TextArea/TextArea.js.map +1 -1
  24. package/cjs/components/TextField/TextField.js +1 -3
  25. package/cjs/components/TextField/TextField.js.map +1 -1
  26. package/cjs/hooks/useForm.js +131 -0
  27. package/cjs/hooks/useForm.js.map +1 -0
  28. package/cjs/index.css +2 -0
  29. package/cjs/index.js +5 -2
  30. package/cjs/index.js.map +1 -1
  31. package/cjs/utils/index.js.map +1 -1
  32. package/cjs/utils/inputHidden.js +15 -0
  33. package/cjs/utils/inputHidden.js.map +1 -0
  34. package/cjs/utils/inputHidden_1ciypqb.css +1 -0
  35. package/cjs/utils/setRefList.js +28 -0
  36. package/cjs/utils/setRefList.js.map +1 -0
  37. package/emotion/cjs/components/DatePicker/RangeDate/RangeDate.js +39 -2
  38. package/emotion/cjs/components/DatePicker/SingleDate/SingleDate.js +26 -2
  39. package/emotion/cjs/components/DatePicker/utils/setInitValue.js +11 -0
  40. package/emotion/cjs/components/Slider/Slider.js +15 -6
  41. package/emotion/cjs/components/Slider/components/Double/Double.js +38 -2
  42. package/{styled-components/cjs/components/Mask/Mask.js → emotion/cjs/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.js} +43 -39
  43. package/emotion/cjs/components/Slider/components/Single/Single.js +30 -7
  44. package/emotion/cjs/components/Slider/components/index.js +11 -0
  45. package/emotion/cjs/components/Slider/utils/index.js +6 -1
  46. package/emotion/cjs/components/TextArea/TextArea.js +3 -3
  47. package/emotion/cjs/components/TextField/TextField.js +2 -4
  48. package/emotion/cjs/examples/plasma_b2c/components/Form/Form.stories.tsx +245 -0
  49. package/emotion/cjs/hooks/index.js +8 -1
  50. package/emotion/cjs/hooks/useForm.js +137 -0
  51. package/emotion/cjs/index.js +0 -11
  52. package/emotion/cjs/utils/index.js +15 -0
  53. package/emotion/cjs/utils/inputHidden.js +10 -0
  54. package/emotion/cjs/utils/setRefList.js +27 -0
  55. package/emotion/es/components/DatePicker/RangeDate/RangeDate.js +39 -2
  56. package/emotion/es/components/DatePicker/SingleDate/SingleDate.js +26 -2
  57. package/emotion/es/components/DatePicker/utils/setInitValue.js +5 -0
  58. package/emotion/es/components/Slider/Slider.js +16 -6
  59. package/emotion/es/components/Slider/components/Double/Double.js +39 -3
  60. package/emotion/es/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.js +51 -0
  61. package/emotion/es/components/Slider/components/Single/Single.js +31 -8
  62. package/emotion/es/components/Slider/components/index.js +1 -0
  63. package/emotion/es/components/Slider/utils/index.js +5 -0
  64. package/emotion/es/components/TextArea/TextArea.js +4 -4
  65. package/emotion/es/components/TextField/TextField.js +2 -4
  66. package/emotion/es/examples/plasma_b2c/components/Form/Form.stories.tsx +245 -0
  67. package/emotion/es/hooks/index.js +2 -1
  68. package/emotion/es/hooks/useForm.js +128 -0
  69. package/emotion/es/index.js +1 -2
  70. package/emotion/es/utils/index.js +1 -0
  71. package/emotion/es/utils/inputHidden.js +4 -0
  72. package/emotion/es/utils/setRefList.js +20 -0
  73. package/es/components/DatePicker/RangeDate/RangeDate.css +2 -0
  74. package/es/components/DatePicker/RangeDate/RangeDate.js +39 -2
  75. package/es/components/DatePicker/RangeDate/RangeDate.js.map +1 -1
  76. package/es/components/DatePicker/SingleDate/SingleDate.css +2 -0
  77. package/es/components/DatePicker/SingleDate/SingleDate.js +26 -2
  78. package/es/components/DatePicker/SingleDate/SingleDate.js.map +1 -1
  79. package/es/components/DatePicker/utils/setInitValue.js +8 -0
  80. package/es/components/DatePicker/utils/setInitValue.js.map +1 -0
  81. package/es/components/Slider/Slider.css +2 -0
  82. package/es/components/Slider/Slider.js +20 -7
  83. package/es/components/Slider/Slider.js.map +1 -1
  84. package/es/components/Slider/components/Double/Double.css +2 -0
  85. package/es/components/Slider/components/Double/Double.js +39 -3
  86. package/es/components/Slider/components/Double/Double.js.map +1 -1
  87. package/es/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.js +52 -0
  88. package/es/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.js.map +1 -0
  89. package/es/components/Slider/components/Single/Single.css +2 -0
  90. package/es/components/Slider/components/Single/Single.js +31 -8
  91. package/es/components/Slider/components/Single/Single.js.map +1 -1
  92. package/es/components/Slider/utils/index.js +6 -1
  93. package/es/components/Slider/utils/index.js.map +1 -1
  94. package/es/components/TextArea/TextArea.js +3 -2
  95. package/es/components/TextArea/TextArea.js.map +1 -1
  96. package/es/components/TextField/TextField.js +1 -3
  97. package/es/components/TextField/TextField.js.map +1 -1
  98. package/es/hooks/useForm.js +127 -0
  99. package/es/hooks/useForm.js.map +1 -0
  100. package/es/index.css +2 -0
  101. package/es/index.js +2 -1
  102. package/es/index.js.map +1 -1
  103. package/es/utils/index.js.map +1 -1
  104. package/es/utils/inputHidden.js +11 -0
  105. package/es/utils/inputHidden.js.map +1 -0
  106. package/es/utils/inputHidden_1ciypqb.css +1 -0
  107. package/es/utils/setRefList.js +23 -0
  108. package/es/utils/setRefList.js.map +1 -0
  109. package/package.json +3 -4
  110. package/styled-components/cjs/components/DatePicker/RangeDate/RangeDate.js +39 -2
  111. package/styled-components/cjs/components/DatePicker/SingleDate/SingleDate.js +26 -2
  112. package/styled-components/cjs/components/DatePicker/utils/setInitValue.js +11 -0
  113. package/styled-components/cjs/components/Slider/Slider.js +15 -6
  114. package/styled-components/cjs/components/Slider/components/Double/Double.js +38 -2
  115. package/{emotion/cjs/components/Mask/Mask.js → styled-components/cjs/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.js} +43 -39
  116. package/styled-components/cjs/components/Slider/components/Single/Single.js +30 -7
  117. package/styled-components/cjs/components/Slider/components/index.js +11 -0
  118. package/styled-components/cjs/components/Slider/utils/index.js +6 -1
  119. package/styled-components/cjs/components/TextArea/TextArea.js +2 -2
  120. package/styled-components/cjs/components/TextField/TextField.js +1 -3
  121. package/styled-components/cjs/examples/plasma_b2c/components/Form/Form.stories.tsx +245 -0
  122. package/styled-components/cjs/hooks/index.js +8 -1
  123. package/styled-components/cjs/hooks/useForm.js +137 -0
  124. package/styled-components/cjs/index.js +0 -11
  125. package/styled-components/cjs/utils/index.js +15 -0
  126. package/styled-components/cjs/utils/inputHidden.js +10 -0
  127. package/styled-components/cjs/utils/setRefList.js +27 -0
  128. package/styled-components/es/components/DatePicker/RangeDate/RangeDate.js +39 -2
  129. package/styled-components/es/components/DatePicker/SingleDate/SingleDate.js +26 -2
  130. package/styled-components/es/components/DatePicker/utils/setInitValue.js +5 -0
  131. package/styled-components/es/components/Slider/Slider.js +16 -6
  132. package/styled-components/es/components/Slider/components/Double/Double.js +39 -3
  133. package/styled-components/es/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.js +51 -0
  134. package/styled-components/es/components/Slider/components/Single/Single.js +31 -8
  135. package/styled-components/es/components/Slider/components/index.js +1 -0
  136. package/styled-components/es/components/Slider/utils/index.js +5 -0
  137. package/styled-components/es/components/TextArea/TextArea.js +3 -3
  138. package/styled-components/es/components/TextField/TextField.js +1 -3
  139. package/styled-components/es/examples/plasma_b2c/components/Form/Form.stories.tsx +245 -0
  140. package/styled-components/es/hooks/index.js +2 -1
  141. package/styled-components/es/hooks/useForm.js +128 -0
  142. package/styled-components/es/index.js +1 -2
  143. package/styled-components/es/utils/index.js +1 -0
  144. package/styled-components/es/utils/inputHidden.js +4 -0
  145. package/styled-components/es/utils/setRefList.js +20 -0
  146. package/types/components/DatePicker/RangeDate/RangeDate.d.ts +2 -0
  147. package/types/components/DatePicker/RangeDate/RangeDate.d.ts.map +1 -1
  148. package/types/components/DatePicker/RangeDate/RangeDate.types.d.ts +4 -0
  149. package/types/components/DatePicker/RangeDate/RangeDate.types.d.ts.map +1 -1
  150. package/types/components/DatePicker/SingleDate/SingleDate.d.ts.map +1 -1
  151. package/types/components/DatePicker/SingleDate/SingleDate.types.d.ts +4 -0
  152. package/types/components/DatePicker/SingleDate/SingleDate.types.d.ts.map +1 -1
  153. package/types/components/DatePicker/utils/setInitValue.d.ts +2 -0
  154. package/types/components/DatePicker/utils/setInitValue.d.ts.map +1 -0
  155. package/types/components/Slider/Slider.d.ts.map +1 -1
  156. package/types/components/Slider/Slider.types.d.ts +2 -2
  157. package/types/components/Slider/Slider.types.d.ts.map +1 -1
  158. package/types/components/Slider/components/Double/Double.d.ts.map +1 -1
  159. package/types/components/Slider/components/Double/Double.types.d.ts +2 -0
  160. package/types/components/Slider/components/Double/Double.types.d.ts.map +1 -1
  161. package/types/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.d.ts +4 -0
  162. package/types/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.d.ts.map +1 -0
  163. package/types/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.types.d.ts +5 -0
  164. package/types/components/Slider/components/DoubleUncontrolled/DoubleUncontrolled.types.d.ts.map +1 -0
  165. package/types/components/Slider/components/Single/Single.d.ts.map +1 -1
  166. package/types/components/Slider/components/Single/Single.types.d.ts +3 -1
  167. package/types/components/Slider/components/Single/Single.types.d.ts.map +1 -1
  168. package/types/components/Slider/components/index.d.ts +2 -0
  169. package/types/components/Slider/components/index.d.ts.map +1 -1
  170. package/types/components/Slider/utils/index.d.ts +1 -0
  171. package/types/components/Slider/utils/index.d.ts.map +1 -1
  172. package/types/components/TextArea/TextArea.d.ts.map +1 -1
  173. package/types/components/TextField/TextField.d.ts.map +1 -1
  174. package/types/examples/plasma_b2c/components/DatePicker/DatePicker.d.ts +1 -0
  175. package/types/examples/plasma_b2c/components/DatePicker/DatePicker.d.ts.map +1 -1
  176. package/types/examples/plasma_b2c/components/Slider/Slider.d.ts +3 -1
  177. package/types/examples/plasma_b2c/components/Slider/Slider.d.ts.map +1 -1
  178. package/types/examples/plasma_web/components/DatePicker/DatePicker.d.ts +1 -0
  179. package/types/examples/plasma_web/components/DatePicker/DatePicker.d.ts.map +1 -1
  180. package/types/examples/plasma_web/components/Slider/Slider.d.ts +3 -1
  181. package/types/examples/plasma_web/components/Slider/Slider.d.ts.map +1 -1
  182. package/types/hooks/index.d.ts +1 -0
  183. package/types/hooks/index.d.ts.map +1 -1
  184. package/types/hooks/useForm.d.ts +10 -0
  185. package/types/hooks/useForm.d.ts.map +1 -0
  186. package/types/index.d.ts +0 -1
  187. package/types/index.d.ts.map +1 -1
  188. package/types/utils/index.d.ts +1 -0
  189. package/types/utils/index.d.ts.map +1 -1
  190. package/types/utils/inputHidden.d.ts +3 -0
  191. package/types/utils/inputHidden.d.ts.map +1 -0
  192. package/types/utils/setRefList.d.ts +6 -0
  193. package/types/utils/setRefList.d.ts.map +1 -0
  194. package/cjs/components/Mask/Mask.js +0 -46
  195. package/cjs/components/Mask/Mask.js.map +0 -1
  196. package/emotion/cjs/components/Mask/Mask.template-doc.mdx +0 -125
  197. package/emotion/cjs/components/Mask/index.js +0 -12
  198. package/emotion/cjs/examples/plasma_b2c/components/Mask/Mask.js +0 -9
  199. package/emotion/cjs/examples/plasma_b2c/components/Mask/Mask.stories.tsx +0 -127
  200. package/emotion/cjs/examples/plasma_web/components/Mask/Mask.js +0 -9
  201. package/emotion/cjs/examples/plasma_web/components/Mask/Mask.stories.tsx +0 -125
  202. package/emotion/es/components/Mask/Mask.js +0 -46
  203. package/emotion/es/components/Mask/Mask.template-doc.mdx +0 -125
  204. package/emotion/es/components/Mask/index.js +0 -1
  205. package/emotion/es/examples/plasma_b2c/components/Mask/Mask.js +0 -3
  206. package/emotion/es/examples/plasma_b2c/components/Mask/Mask.stories.tsx +0 -127
  207. package/emotion/es/examples/plasma_web/components/Mask/Mask.js +0 -3
  208. package/emotion/es/examples/plasma_web/components/Mask/Mask.stories.tsx +0 -125
  209. package/es/components/Mask/Mask.js +0 -42
  210. package/es/components/Mask/Mask.js.map +0 -1
  211. package/styled-components/cjs/components/Mask/Mask.template-doc.mdx +0 -125
  212. package/styled-components/cjs/components/Mask/index.js +0 -12
  213. package/styled-components/cjs/examples/plasma_b2c/components/Mask/Mask.js +0 -9
  214. package/styled-components/cjs/examples/plasma_b2c/components/Mask/Mask.stories.tsx +0 -127
  215. package/styled-components/cjs/examples/plasma_web/components/Mask/Mask.js +0 -9
  216. package/styled-components/cjs/examples/plasma_web/components/Mask/Mask.stories.tsx +0 -125
  217. package/styled-components/es/components/Mask/Mask.js +0 -46
  218. package/styled-components/es/components/Mask/Mask.template-doc.mdx +0 -125
  219. package/styled-components/es/components/Mask/index.js +0 -1
  220. package/styled-components/es/examples/plasma_b2c/components/Mask/Mask.js +0 -3
  221. package/styled-components/es/examples/plasma_b2c/components/Mask/Mask.stories.tsx +0 -127
  222. package/styled-components/es/examples/plasma_web/components/Mask/Mask.js +0 -3
  223. package/styled-components/es/examples/plasma_web/components/Mask/Mask.stories.tsx +0 -125
  224. package/types/components/Mask/Mask.d.ts +0 -5
  225. package/types/components/Mask/Mask.d.ts.map +0 -1
  226. package/types/components/Mask/Mask.types.d.ts +0 -62
  227. package/types/components/Mask/Mask.types.d.ts.map +0 -1
  228. package/types/components/Mask/index.d.ts +0 -2
  229. package/types/components/Mask/index.d.ts.map +0 -1
  230. package/types/examples/plasma_b2c/components/Mask/Mask.d.ts +0 -191
  231. package/types/examples/plasma_b2c/components/Mask/Mask.d.ts.map +0 -1
  232. package/types/examples/plasma_web/components/Mask/Mask.d.ts +0 -191
  233. package/types/examples/plasma_web/components/Mask/Mask.d.ts.map +0 -1
  234. /package/emotion/cjs/components/{Mask/Mask.types.js → Slider/components/DoubleUncontrolled/DoubleUncontrolled.types.js} +0 -0
  235. /package/emotion/es/components/{Mask/Mask.types.js → Slider/components/DoubleUncontrolled/DoubleUncontrolled.types.js} +0 -0
  236. /package/styled-components/cjs/components/{Mask/Mask.types.js → Slider/components/DoubleUncontrolled/DoubleUncontrolled.types.js} +0 -0
  237. /package/styled-components/es/components/{Mask/Mask.types.js → Slider/components/DoubleUncontrolled/DoubleUncontrolled.types.js} +0 -0
@@ -1,17 +1,27 @@
1
+ var _excluded = ["type"];
1
2
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
3
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
4
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
5
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
6
  import React, { forwardRef } from 'react';
3
7
  import { base as viewCSS } from './variations/_view/base';
4
8
  import { base as sizeCSS } from './variations/_size/base';
5
9
  import { base as disabledCSS } from './variations/_disabled/base';
6
- import { SingleSlider, DoubleSlider } from './components';
7
- var isSingleValueProps = function isSingleValueProps(props) {
8
- return typeof props.value === 'number';
10
+ import { SingleSlider, DoubleUncontrolled } from './components';
11
+ var isSingleValueProps = function isSingleValueProps(props, type) {
12
+ return typeof props.value === 'number' || type === 'single' && _typeof(props.value) !== 'object';
13
+ };
14
+ var isDoubleValueProps = function isDoubleValueProps(props, type) {
15
+ return _typeof(props.value) === 'object' || type === 'double';
9
16
  };
10
17
  export var sliderRoot = function sliderRoot(Root) {
11
- return /*#__PURE__*/forwardRef(function (props, ref) {
12
- return /*#__PURE__*/React.createElement(Root, _extends({
18
+ return /*#__PURE__*/forwardRef(function (_ref, ref) {
19
+ var _ref$type = _ref.type,
20
+ type = _ref$type === void 0 ? 'single' : _ref$type,
21
+ props = _objectWithoutProperties(_ref, _excluded);
22
+ return /*#__PURE__*/React.createElement(Root, _extends({}, props, {
13
23
  ref: ref
14
- }, props), isSingleValueProps(props) && /*#__PURE__*/React.createElement(SingleSlider, props), !isSingleValueProps(props) && /*#__PURE__*/React.createElement(DoubleSlider, props));
24
+ }), isSingleValueProps(props, type) && /*#__PURE__*/React.createElement(SingleSlider, props), isDoubleValueProps(props, type) && /*#__PURE__*/React.createElement(DoubleUncontrolled, props));
15
25
  });
16
26
  };
17
27
  export var sliderConfig = {
@@ -1,5 +1,5 @@
1
1
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
- var _excluded = ["min", "max", "value", "disabled", "label", "labelContentLeft", "size", "onChangeCommitted", "onChangeTextField", "onBlurTextField", "onKeyDownTextField", "onChange", "ariaLabel", "multipleStepSize"];
2
+ var _excluded = ["min", "max", "value", "disabled", "label", "labelContentLeft", "size", "onChangeCommitted", "onChangeTextField", "onBlurTextField", "onKeyDownTextField", "onChange", "ariaLabel", "multipleStepSize", "name"];
3
3
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
4
4
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5
5
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -17,9 +17,10 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
17
17
  import React, { useCallback, useEffect, useRef, useState } from 'react';
18
18
  import { SliderBase } from '../SliderBase/SliderBase';
19
19
  import { Handler } from '../../ui';
20
- import { sizeData } from '../../utils';
20
+ import { sizeData, setInitValue } from '../../utils';
21
21
  import { cx, isNumber } from '../../../../utils';
22
22
  import { classes } from '../../Slider.tokens';
23
+ import { InputHidden } from '../../../../utils/inputHidden';
23
24
  import { SliderWrapper, InputsWrapper, Label, LabelContentLeft, LabelWrapper, StyledInput, DoubleWrapper } from './Double.styles';
24
25
  function getXCenterHandle(handle) {
25
26
  var _handle$parentElement;
@@ -45,6 +46,7 @@ export var DoubleSlider = function DoubleSlider(_ref) {
45
46
  ariaLabel = _ref.ariaLabel,
46
47
  _ref$multipleStepSize = _ref.multipleStepSize,
47
48
  multipleStepSize = _ref$multipleStepSize === void 0 ? 10 : _ref$multipleStepSize,
49
+ name = _ref.name,
48
50
  rest = _objectWithoutProperties(_ref, _excluded);
49
51
  var _useState = useState({
50
52
  stepSize: 0,
@@ -80,10 +82,20 @@ export var DoubleSlider = function DoubleSlider(_ref) {
80
82
  var secondHandleRef = useRef(null);
81
83
  var firstHandleValue = useRef(value[0]);
82
84
  var secondHandleValue = useRef(value[1]);
85
+ var innerRefFirst = useRef(null);
86
+ var innerRefSecond = useRef(null);
83
87
  var stepSize = state.stepSize;
84
88
  var hasLabelContent = label || labelContentLeft;
85
89
  var firstInputActiveClass = firstInputActive && !disabled ? classes.textFieldActive : undefined;
86
90
  var secondInputActiveClass = secondInputActive && !disabled ? classes.textFieldActive : undefined;
91
+ var setValue = function setValue(e) {
92
+ var firstElement = innerRefFirst.current;
93
+ var firstValueInit = Number(firstElement.getAttribute('defaultValue'));
94
+ var secondValueInit = setInitValue(e);
95
+ onChangeCommitted && onChangeCommitted([firstValueInit, secondValueInit]);
96
+ setFirstValue(firstValueInit);
97
+ setSecondValue(secondValueInit);
98
+ };
87
99
  useEffect(function () {
88
100
  var firstLocalValue = Math.min(Math.max(value[0], min), max) - min;
89
101
  var secondLocalValue = Math.min(Math.max(value[1], min), max) - min;
@@ -98,6 +110,16 @@ export var DoubleSlider = function DoubleSlider(_ref) {
98
110
  });
99
111
  });
100
112
  }, [value, stepSize, min, max, setFirstValue, setSecondValue]);
113
+ useEffect(function () {
114
+ if (innerRefSecond.current && onChangeCommitted) {
115
+ innerRefSecond.current.addEventListener('setInitValue', setValue);
116
+ }
117
+ return function () {
118
+ if (innerRefSecond.current && onChangeCommitted) {
119
+ innerRefSecond.current.removeEventListener('setInitValue', setValue);
120
+ }
121
+ };
122
+ }, [innerRefSecond]);
101
123
  var setStepSize = useCallback(function (newStepSize) {
102
124
  setState(function (prevState) {
103
125
  return _objectSpread(_objectSpread({}, prevState), {}, {
@@ -306,5 +328,19 @@ export var DoubleSlider = function DoubleSlider(_ref) {
306
328
  onChange: onSecondTextfieldChange,
307
329
  onBlur: onSecondTextfieldBlur,
308
330
  onKeyDown: onTextfieldKeyDown
309
- }))));
331
+ }))), /*#__PURE__*/React.createElement(InputHidden, {
332
+ name: name,
333
+ type: "number",
334
+ datatype: "slider-double",
335
+ "data-slidertype": "min",
336
+ value: firstValue,
337
+ ref: innerRefFirst
338
+ }), /*#__PURE__*/React.createElement(InputHidden, {
339
+ name: name,
340
+ type: "number",
341
+ datatype: "slider-double",
342
+ "data-slidertype": "max",
343
+ value: secondValue,
344
+ ref: innerRefSecond
345
+ }));
310
346
  };
@@ -0,0 +1,51 @@
1
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
3
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
5
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
6
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
7
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
8
+ import React, { useState } from 'react';
9
+ import { DoubleSlider } from '../index';
10
+ export var DoubleUncontrolled = function DoubleUncontrolled(props) {
11
+ var _useState = useState([props.min, props.max]),
12
+ _useState2 = _slicedToArray(_useState, 2),
13
+ sliderValue = _useState2[0],
14
+ setSliderValue = _useState2[1];
15
+ var sortValues = function sortValues(values) {
16
+ return values.map(function (val) {
17
+ if (val < props.min) {
18
+ return props.min;
19
+ }
20
+ if (val > props.max) {
21
+ return props.max;
22
+ }
23
+ return val;
24
+ }).sort(function (a, b) {
25
+ return a - b;
26
+ });
27
+ };
28
+ var onChangeHandle = function onChangeHandle(values) {
29
+ setSliderValue(sortValues(values));
30
+ };
31
+ var onChangeCommitedHandle = function onChangeCommitedHandle(values) {
32
+ setSliderValue(sortValues(values));
33
+ };
34
+ var onBlurTextField = function onBlurTextField(values) {
35
+ setSliderValue(sortValues(values));
36
+ };
37
+ var onKeyDownTextField = function onKeyDownTextField(values, event) {
38
+ if (event.key === 'Enter') {
39
+ setSliderValue(sortValues(values));
40
+ }
41
+ };
42
+ return props.value ? /*#__PURE__*/React.createElement(DoubleSlider, _extends({}, props, {
43
+ value: props.value
44
+ })) : /*#__PURE__*/React.createElement(DoubleSlider, _extends({
45
+ value: sliderValue,
46
+ onKeyDownTextField: onKeyDownTextField,
47
+ onBlurTextField: onBlurTextField,
48
+ onChangeCommitted: onChangeCommitedHandle,
49
+ onChange: onChangeHandle
50
+ }, props));
51
+ };
@@ -1,5 +1,5 @@
1
1
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
- var _excluded = ["min", "max", "value", "disabled", "onChangeCommitted", "onChange", "ariaLabel", "label", "labelContentLeft", "showRangeValues", "showCurrentValue", "hideMinValueDiff", "hideMaxValueDiff", "labelPlacement", "rangeValuesPlacement", "multipleStepSize", "size"];
2
+ var _excluded = ["min", "max", "value", "disabled", "onChangeCommitted", "onChange", "ariaLabel", "label", "labelContentLeft", "showRangeValues", "showCurrentValue", "hideMinValueDiff", "hideMaxValueDiff", "labelPlacement", "rangeValuesPlacement", "multipleStepSize", "size", "name"];
3
3
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
4
4
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5
5
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -17,9 +17,10 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
17
17
  import React, { useCallback, useEffect, useState, useRef } from 'react';
18
18
  import { SliderBase } from '../SliderBase/SliderBase';
19
19
  import { Handler } from '../../ui';
20
- import { sizeData } from '../../utils';
20
+ import { setInitValue, sizeData } from '../../utils';
21
21
  import { cx, isNumber } from '../../../../utils';
22
22
  import { classes } from '../../Slider.tokens';
23
+ import { InputHidden } from '../../../../utils/inputHidden';
23
24
  import { Label, LabelContentLeft, LabelWrapper, SingleWrapper, SliderBaseWrapper, StyledRangeValue } from './Single.styles';
24
25
  export var SingleSlider = function SingleSlider(_ref) {
25
26
  var min = _ref.min,
@@ -43,6 +44,7 @@ export var SingleSlider = function SingleSlider(_ref) {
43
44
  multipleStepSize = _ref$multipleStepSize === void 0 ? 10 : _ref$multipleStepSize,
44
45
  _ref$size = _ref.size,
45
46
  size = _ref$size === void 0 ? 'm' : _ref$size,
47
+ name = _ref.name,
46
48
  rest = _objectWithoutProperties(_ref, _excluded);
47
49
  var _useState = useState({
48
50
  xHandle: 0,
@@ -52,6 +54,7 @@ export var SingleSlider = function SingleSlider(_ref) {
52
54
  _useState2 = _slicedToArray(_useState, 2),
53
55
  state = _useState2[0],
54
56
  setState = _useState2[1];
57
+ var innerRef = useRef(null);
55
58
  var _useState3 = useState(0),
56
59
  _useState4 = _slicedToArray(_useState3, 2),
57
60
  startOffset = _useState4[0],
@@ -60,7 +63,7 @@ export var SingleSlider = function SingleSlider(_ref) {
60
63
  _useState6 = _slicedToArray(_useState5, 2),
61
64
  endOffset = _useState6[0],
62
65
  setEndOffset = _useState6[1];
63
- var _useState7 = useState(value),
66
+ var _useState7 = useState(value !== null && value !== void 0 ? value : min),
64
67
  _useState8 = _slicedToArray(_useState7, 2),
65
68
  dragValue = _useState8[0],
66
69
  setDragValue = _useState8[1];
@@ -68,14 +71,14 @@ export var SingleSlider = function SingleSlider(_ref) {
68
71
  var hasLabelContent = label || labelContentLeft;
69
72
  var labelPlacementClass = labelPlacement === 'outer' ? classes.labelPlacementOuter : classes.labelPlacementInner;
70
73
  var rangeValuesPlacementClass = rangeValuesPlacement === 'outer' ? classes.rangeValuesPlacementOuter : classes.rangeValuesPlacementInner;
71
- var hideMinValueDiffClass = hideMinValueDiff && value - min <= hideMinValueDiff ? classes.hideMinValue : '';
72
- var hideMaxValueDiffClass = hideMaxValueDiff && max - value <= hideMaxValueDiff ? classes.hideMaxValue : '';
74
+ var hideMinValueDiffClass = hideMinValueDiff && dragValue - min <= hideMinValueDiff ? classes.hideMinValue : '';
75
+ var hideMaxValueDiffClass = hideMaxValueDiff && max - dragValue <= hideMaxValueDiff ? classes.hideMaxValue : '';
73
76
  var startLabelRef = useRef(null);
74
77
  var endLabelRef = useRef(null);
75
78
  var activeFirstValue = dragValue === min ? classes.activeRangeValue : undefined;
76
79
  var activeSecondValue = dragValue === max ? classes.activeRangeValue : undefined;
77
80
  useEffect(function () {
78
- var localValue = Math.min(Math.max(value, min), max) - min;
81
+ var localValue = Math.min(Math.max(dragValue, min), max) - min;
79
82
  if (rangeValuesPlacement === 'outer') {
80
83
  var _startLabelRef$curren, _endLabelRef$current;
81
84
  var startWidth = (_startLabelRef$curren = startLabelRef.current) === null || _startLabelRef$curren === void 0 ? void 0 : _startLabelRef$curren.offsetWidth;
@@ -96,7 +99,21 @@ export var SingleSlider = function SingleSlider(_ref) {
96
99
  railFillWidth: stepSize * localValue
97
100
  });
98
101
  });
99
- }, [value, labelPlacement, stepSize, rangeValuesPlacement, min, max, setStartOffset, setEndOffset]);
102
+ }, [dragValue, labelPlacement, stepSize, rangeValuesPlacement, min, max, setStartOffset, setEndOffset]);
103
+ useEffect(function () {
104
+ if (innerRef.current) {
105
+ innerRef.current.addEventListener('setInitValue', function (e) {
106
+ return setDragValue(setInitValue(e));
107
+ });
108
+ }
109
+ return function () {
110
+ if (innerRef.current) {
111
+ innerRef.current.removeEventListener('setInitValue', function (e) {
112
+ return setDragValue(setInitValue(e));
113
+ });
114
+ }
115
+ };
116
+ }, [innerRef]);
100
117
  var setStepSize = useCallback(function (newStepSize) {
101
118
  setState(function (prevState) {
102
119
  return _objectSpread(_objectSpread({}, prevState), {}, {
@@ -164,5 +181,11 @@ export var SingleSlider = function SingleSlider(_ref) {
164
181
  })), showRangeValues && /*#__PURE__*/React.createElement(StyledRangeValue, {
165
182
  ref: endLabelRef,
166
183
  className: cx(classes.maxRangeValue, hideMaxValueDiffClass, activeSecondValue)
167
- }, max)));
184
+ }, max)), /*#__PURE__*/React.createElement(InputHidden, {
185
+ name: name,
186
+ type: "number",
187
+ datatype: "slider-single",
188
+ value: dragValue,
189
+ ref: innerRef
190
+ }));
168
191
  };
@@ -1,3 +1,4 @@
1
1
  export * from './Single/Single';
2
2
  export * from './Double/Double';
3
+ export * from './DoubleUncontrolled/DoubleUncontrolled';
3
4
  export {};
@@ -44,4 +44,9 @@ export var sizeData = {
44
44
  indent: 0.75,
45
45
  fontSizeMultiplier: 16
46
46
  }
47
+ };
48
+ export var setInitValue = function setInitValue(e) {
49
+ var item = e.target;
50
+ var defaultValue = Number(item.getAttribute('defaultValue'));
51
+ return defaultValue;
47
52
  };
@@ -21,7 +21,7 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
21
21
  import React, { forwardRef, useState, createRef, useCallback } from 'react';
22
22
  import { css } from 'styled-components';
23
23
  import { useResizeObserver } from '@salutejs/plasma-core';
24
- import { cx } from '../../utils';
24
+ import { cx, mergeRefs } from '../../utils';
25
25
  import { applyDynamicLabel } from './mixins';
26
26
  import { useAutoResize, ROOT_FONT_SIZE } from './hooks';
27
27
  import { StyledContent, StyledHelpers, StyledLeftHelper, StyledRightHelper, StyledLabel, StyledPlaceholder, StyledTextArea, StyledTextAreaWrapper, StyledContainer, StyledIndicator, StyledOptionalText } from './TextArea.styles';
@@ -118,7 +118,7 @@ export var textAreaRoot = function textAreaRoot(Root) {
118
118
  _useState6 = _slicedToArray(_useState5, 2),
119
119
  uncontrolledValue = _useState6[0],
120
120
  setUncontrolledValue = _useState6[1];
121
- var outerRef = innerRef && 'current' in innerRef ? innerRef : /*#__PURE__*/createRef();
121
+ var outerRef = /*#__PURE__*/createRef();
122
122
  var innerOptional = required ? false : optional;
123
123
  var hasHelper = Boolean(leftHelper || rightHelper || helperText);
124
124
  var hasOuterLabel = Boolean(label && labelPlacement === 'outer');
@@ -190,7 +190,7 @@ export var textAreaRoot = function textAreaRoot(Root) {
190
190
  hasContentRight: Boolean(contentRight),
191
191
  hasHelper: hasHelper,
192
192
  applyCustomWidth: applyCustomWidth,
193
- ref: outerRef,
193
+ ref: mergeRefs(outerRef, innerRef),
194
194
  disabled: disabled,
195
195
  height: autoResize ? minAuto : height,
196
196
  width: width,
@@ -149,9 +149,7 @@ export var textFieldRoot = function textFieldRoot(Root) {
149
149
  };
150
150
  var handleOnKeyDown = function handleOnKeyDown(event) {
151
151
  handleInputKeydown(event);
152
- if (onKeyDown) {
153
- onKeyDown(event);
154
- }
152
+ onKeyDown && onKeyDown(event);
155
153
  };
156
154
  useEffect(function () {
157
155
  if (!isChipEnumeration && !(values !== null && values !== void 0 && values.length)) {
@@ -0,0 +1,245 @@
1
+ import { useForm as useReactHookForm, Controller } from 'react-hook-form';
2
+ import React, { useRef } from 'react';
3
+ import type { Meta, StoryObj } from '@storybook/react';
4
+
5
+ import { WithTheme } from '../../../_helpers';
6
+ import { Button } from '../Button/Button';
7
+ import { TextField } from '../TextField/TextField';
8
+ import { TextArea } from '../TextArea/TextArea';
9
+ import { Checkbox } from '../Checkbox/Checkbox';
10
+ import { Switch } from '../Switch/Switch';
11
+ import { Radiobox } from '../Radiobox/Radiobox';
12
+ import { RadioGroup } from '../../../../components/Radiobox';
13
+ import { Slider } from '../Slider/Slider';
14
+ import { useForm } from '../../../../hooks';
15
+ import { DatePicker, DatePickerRange } from '../DatePicker/DatePicker';
16
+
17
+ type StoryDropdownProps = {};
18
+
19
+ const langName = 'language';
20
+ const itemsRadiobox = [
21
+ { langName, value: 'c', label: 'C', disabled: false },
22
+ { langName, value: 'cpp', label: 'C++', disabled: false },
23
+ { langName, value: 'assembly', label: 'Assembly', disabled: false },
24
+ ];
25
+
26
+ const PlasmaForm = () => {
27
+ const onSubmit = (data) => {
28
+ console.log(data);
29
+ };
30
+
31
+ const { formRef, formData } = useForm(onSubmit, {
32
+ textfield: 'textfield',
33
+ textarea: 'textarea',
34
+ checkbox: 'checkobox',
35
+ switch: true,
36
+ radiobox: 'c',
37
+ slider: 10,
38
+ sliderd: [10, 20],
39
+ datepicker: '12.09.2024',
40
+ datepickerRange: ['09.09.2024', '12.09.2024'],
41
+ });
42
+
43
+ return (
44
+ <form onSubmit={formData} style={{ display: 'flex', flexDirection: 'column', gap: '20px' }} ref={formRef}>
45
+ <TextField name="textfield" placeholder="Textfield" required={false} />
46
+ <TextArea name="textarea" autoResize placeholder="Textarea" />
47
+ <Checkbox name="checkbox" label="Checkbox" />
48
+ <Switch name="switch" label="Switch" labelPosition="after" />
49
+ <RadioGroup aria-labelledby="radiogroup-title-id">
50
+ <div id="radiogroup-title-id" style={{ margin: '1rem 0', fontWeight: '600' }}>
51
+ Выберите язык программирования для изучения.
52
+ </div>
53
+ {itemsRadiobox.map((item) => (
54
+ <Radiobox
55
+ name="radiobox"
56
+ key={item.value}
57
+ value={item.value}
58
+ label={item.label}
59
+ disabled={item.disabled}
60
+ />
61
+ ))}
62
+ </RadioGroup>
63
+ <Slider name="slider" label="Slider" type="single" min={0} max={100} />
64
+ <Slider name="sliderd" label="Slider" type="double" min={0} max={100} />
65
+ <DatePicker label="DatePicker" name="datepicker" />
66
+ <DatePickerRange label="DatePicker" name="datepickerRange" />
67
+ <Button type="submit">Отправить</Button>
68
+ </form>
69
+ );
70
+ };
71
+
72
+ const meta: Meta<StoryDropdownProps> = {
73
+ title: 'plasma_b2c/Form',
74
+ decorators: [WithTheme],
75
+ component: PlasmaForm,
76
+ };
77
+
78
+ export default meta;
79
+
80
+ const StoryPlasmaForm = () => {
81
+ return <PlasmaForm />;
82
+ };
83
+
84
+ export const DefaultPlasmaForm: StoryObj<StoryDropdownProps> = {
85
+ render: () => <StoryPlasmaForm />,
86
+ };
87
+
88
+ const DefaultForm = () => {
89
+ const onSubmit = (event) => {
90
+ event.preventDefault();
91
+
92
+ const fData = new FormData(event.target);
93
+
94
+ for (const p of fData) {
95
+ const name = p[0];
96
+ const value = p[1];
97
+
98
+ console.log(name, value);
99
+ }
100
+ };
101
+ return (
102
+ <form onSubmit={onSubmit} style={{ display: 'flex', flexDirection: 'column', gap: '20px' }}>
103
+ <TextField name="textfield" placeholder="Textfield" required={false} />
104
+ <TextArea name="textarea" autoResize placeholder="Textarea" />
105
+ <Checkbox name="checkbox" label="Checkbox" />
106
+ <Switch name="switch" label="Switch" labelPosition="after" />
107
+ <RadioGroup aria-labelledby="radiogroup-title-id">
108
+ <div id="radiogroup-title-id" style={{ margin: '1rem 0', fontWeight: '600' }}>
109
+ Выберите язык программирования для изучения.
110
+ </div>
111
+ {itemsRadiobox.map((item) => (
112
+ <Radiobox
113
+ name="radiobox"
114
+ key={item.value}
115
+ value={item.value}
116
+ label={item.label}
117
+ disabled={item.disabled}
118
+ />
119
+ ))}
120
+ </RadioGroup>
121
+ <Slider name="slider" label="Slider" type="single" min={0} max={100} />
122
+ <Slider name="sliderd" label="Slider" type="double" min={0} max={100} />
123
+ <DatePicker label="DatePicker" name="datepicker" />
124
+ <DatePickerRange label="DatePicker" name="datepickerRange" />
125
+ <Button type="submit">Отправить</Button>
126
+ </form>
127
+ );
128
+ };
129
+
130
+ const StoryDefaultForm = () => {
131
+ return <DefaultForm />;
132
+ };
133
+
134
+ export const FormDefault: StoryObj<StoryDropdownProps> = {
135
+ render: () => <StoryDefaultForm />,
136
+ };
137
+
138
+ const DefaultUseForm = () => {
139
+ const { register, handleSubmit } = useReactHookForm({
140
+ defaultValues: {
141
+ textfield: 'John Doe',
142
+ textarea: 'Default description',
143
+ checkbox: true,
144
+ switch: true,
145
+ radiobox: 'c',
146
+ slider: 10,
147
+ },
148
+ });
149
+ const onSubmit = (data) => {
150
+ console.log(data);
151
+ };
152
+
153
+ return (
154
+ <form onSubmit={handleSubmit(onSubmit)} style={{ display: 'flex', flexDirection: 'column', gap: '20px' }}>
155
+ <TextField {...register('textfield')} placeholder="Textfield" required={false} />
156
+ <TextArea {...register('textarea')} autoResize placeholder="Textarea" />
157
+ <Checkbox {...register('checkbox')} label="Checkbox" />
158
+ <Switch {...register('switch')} label="Switch" labelPosition="after" />
159
+ <RadioGroup aria-labelledby="radiogroup-title-id">
160
+ <div id="radiogroup-title-id" style={{ margin: '1rem 0', fontWeight: '600' }}>
161
+ Выберите язык программирования для изучения.
162
+ </div>
163
+ {itemsRadiobox.map((item) => (
164
+ <Radiobox
165
+ {...register('radiobox')}
166
+ key={item.value}
167
+ value={item.value}
168
+ label={item.label}
169
+ disabled={item.disabled}
170
+ />
171
+ ))}
172
+ </RadioGroup>
173
+ <Button type="submit">Отправить</Button>
174
+ </form>
175
+ );
176
+ };
177
+
178
+ const StoryHookForm = () => {
179
+ return <DefaultUseForm />;
180
+ };
181
+
182
+ export const UseHookForm: StoryObj<StoryDropdownProps> = {
183
+ render: () => <StoryHookForm />,
184
+ };
185
+
186
+ const DefaultUseFormController = () => {
187
+ const { control, handleSubmit } = useReactHookForm({
188
+ defaultValues: {
189
+ textfield: 'John Doe',
190
+ textarea: 'Default description',
191
+ checkbox: true,
192
+ switch: true,
193
+ radiobox: 'c',
194
+ slider: 10,
195
+ sliderd: [10, 20],
196
+ },
197
+ });
198
+ const onSubmit = (data) => {
199
+ console.log(data);
200
+ };
201
+
202
+ return (
203
+ <form onSubmit={handleSubmit(onSubmit)} style={{ display: 'flex', flexDirection: 'column', gap: '20px' }}>
204
+ <Controller
205
+ name="textfield"
206
+ control={control}
207
+ render={({ field }) => <TextField {...field} label="TextField" />}
208
+ />
209
+ <Controller
210
+ name="textarea"
211
+ control={control}
212
+ render={({ field }) => <TextArea {...field} label="TextArea" />}
213
+ />
214
+ <Controller
215
+ name="checkbox"
216
+ control={control}
217
+ render={({ field }) => <Checkbox {...field} checked={field.value} label="Checkbox" />}
218
+ />
219
+ <Controller
220
+ name="switch"
221
+ control={control}
222
+ render={({ field }) => <Switch {...field} checked={field.value} labelPosition="after" label="Switch" />}
223
+ />
224
+ <Controller
225
+ name="slider"
226
+ control={control}
227
+ render={({ field }) => <Slider {...field} type="single" label="Slider" min={0} max={100} />}
228
+ />
229
+ <Controller
230
+ name="sliderd"
231
+ control={control}
232
+ render={({ field }) => <Slider {...field} type="double" label="Slider" min={0} max={100} />}
233
+ />
234
+ <Button type="submit">Отправить</Button>
235
+ </form>
236
+ );
237
+ };
238
+
239
+ const StoryHookFormController = () => {
240
+ return <DefaultUseFormController />;
241
+ };
242
+
243
+ export const UseHookFormController: StoryObj<StoryDropdownProps> = {
244
+ render: () => <StoryHookFormController />,
245
+ };
@@ -4,4 +4,5 @@ export { usePreviousValue } from './usePreviousValue';
4
4
  export { useForceUpdate } from './useForceUpdate';
5
5
  export { useDidMountEffect } from './useDidMountEffect';
6
6
  export { useOutsideClick } from './useOutsideClick';
7
- export { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';
7
+ export { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';
8
+ export { useForm } from './useForm';