@salutejs/plasma-new-hope 0.194.0-canary.1562.11857238836.0 → 0.194.0-canary.1565.11870784206.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (180) hide show
  1. package/cjs/components/Combobox/ComboboxNew/Combobox.js +1 -0
  2. package/cjs/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
  3. package/cjs/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js +2 -1
  4. package/cjs/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js.map +1 -1
  5. package/cjs/components/Combobox/ComboboxOld/Combobox.css +4 -5
  6. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxDivider/ComboboxDivider.css +4 -5
  7. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxFooter/ComboboxFooter.css +4 -5
  8. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxGroup/ComboboxGroup.css +4 -5
  9. package/cjs/components/Combobox/ComboboxOld/ui/ComboboxHeader/ComboboxHeader.css +4 -5
  10. package/cjs/components/Dropdown/Dropdown.css +4 -5
  11. package/cjs/components/Dropdown/Dropdown.js +2 -4
  12. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  13. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.css +4 -5
  14. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.js +2 -3
  15. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.js.map +1 -1
  16. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js +1 -7
  17. package/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js.map +1 -1
  18. package/cjs/components/Dropdown/ui/DropdownItem/{DropdownItem.styles_14yih1y.css → DropdownItem.styles_1b439rx.css} +0 -1
  19. package/cjs/components/Select/Select.js +1 -0
  20. package/cjs/components/Select/Select.js.map +1 -1
  21. package/cjs/components/Select/ui/Inner/ui/Item/Item.js +2 -1
  22. package/cjs/components/Select/ui/Inner/ui/Item/Item.js.map +1 -1
  23. package/cjs/components/Select/ui/Target/ui/Textfield/Textfield.js +3 -18
  24. package/cjs/components/Select/ui/Target/ui/Textfield/Textfield.js.map +1 -1
  25. package/cjs/components/TextField/TextField.js +27 -3
  26. package/cjs/components/TextField/TextField.js.map +1 -1
  27. package/cjs/components/TextField/hooks/useValidation.js +273 -0
  28. package/cjs/components/TextField/hooks/useValidation.js.map +1 -0
  29. package/cjs/index.css +4 -5
  30. package/cjs/utils/constants.js +4 -0
  31. package/cjs/utils/constants.js.map +1 -1
  32. package/emotion/cjs/components/Combobox/ComboboxNew/Combobox.js +1 -0
  33. package/emotion/cjs/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js +2 -1
  34. package/emotion/cjs/components/Dropdown/Dropdown.js +2 -4
  35. package/emotion/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.js +2 -3
  36. package/emotion/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js +11 -15
  37. package/emotion/cjs/components/Select/Select.js +1 -0
  38. package/emotion/cjs/components/Select/ui/Inner/ui/Item/Item.js +2 -1
  39. package/emotion/cjs/components/Select/ui/Target/ui/Textfield/Textfield.js +3 -24
  40. package/emotion/cjs/components/TextField/TextField.js +27 -4
  41. package/emotion/cjs/components/TextField/TextField.template-doc.mdx +330 -0
  42. package/emotion/cjs/components/TextField/hooks/index.js +8 -1
  43. package/emotion/cjs/components/TextField/hooks/useValidation.js +276 -0
  44. package/emotion/cjs/examples/plasma_b2c/components/TextField/TextField.stories.tsx +253 -1
  45. package/emotion/cjs/examples/plasma_web/components/TextField/TextField.stories.tsx +252 -0
  46. package/emotion/cjs/utils/constants.js +4 -2
  47. package/emotion/es/components/Combobox/ComboboxNew/Combobox.js +1 -0
  48. package/emotion/es/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js +2 -1
  49. package/emotion/es/components/Dropdown/Dropdown.js +2 -4
  50. package/emotion/es/components/Dropdown/ui/DropdownItem/DropdownItem.js +3 -4
  51. package/emotion/es/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js +11 -15
  52. package/emotion/es/components/Select/Select.js +1 -0
  53. package/emotion/es/components/Select/ui/Inner/ui/Item/Item.js +2 -1
  54. package/emotion/es/components/Select/ui/Target/ui/Textfield/Textfield.js +3 -24
  55. package/emotion/es/components/TextField/TextField.js +28 -5
  56. package/emotion/es/components/TextField/TextField.template-doc.mdx +330 -0
  57. package/emotion/es/components/TextField/hooks/index.js +2 -1
  58. package/emotion/es/components/TextField/hooks/useValidation.js +270 -0
  59. package/emotion/es/examples/plasma_b2c/components/TextField/TextField.stories.tsx +253 -1
  60. package/emotion/es/examples/plasma_web/components/TextField/TextField.stories.tsx +252 -0
  61. package/emotion/es/utils/constants.js +3 -1
  62. package/es/components/Combobox/ComboboxNew/Combobox.js +1 -0
  63. package/es/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
  64. package/es/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js +2 -1
  65. package/es/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js.map +1 -1
  66. package/es/components/Combobox/ComboboxOld/Combobox.css +4 -5
  67. package/es/components/Combobox/ComboboxOld/ui/ComboboxDivider/ComboboxDivider.css +4 -5
  68. package/es/components/Combobox/ComboboxOld/ui/ComboboxFooter/ComboboxFooter.css +4 -5
  69. package/es/components/Combobox/ComboboxOld/ui/ComboboxGroup/ComboboxGroup.css +4 -5
  70. package/es/components/Combobox/ComboboxOld/ui/ComboboxHeader/ComboboxHeader.css +4 -5
  71. package/es/components/Dropdown/Dropdown.css +4 -5
  72. package/es/components/Dropdown/Dropdown.js +2 -4
  73. package/es/components/Dropdown/Dropdown.js.map +1 -1
  74. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.css +4 -5
  75. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.js +3 -4
  76. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.js.map +1 -1
  77. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js +2 -7
  78. package/es/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js.map +1 -1
  79. package/es/components/Dropdown/ui/DropdownItem/{DropdownItem.styles_14yih1y.css → DropdownItem.styles_1b439rx.css} +0 -1
  80. package/es/components/Select/Select.js +1 -0
  81. package/es/components/Select/Select.js.map +1 -1
  82. package/es/components/Select/ui/Inner/ui/Item/Item.js +2 -1
  83. package/es/components/Select/ui/Inner/ui/Item/Item.js.map +1 -1
  84. package/es/components/Select/ui/Target/ui/Textfield/Textfield.js +4 -19
  85. package/es/components/Select/ui/Target/ui/Textfield/Textfield.js.map +1 -1
  86. package/es/components/TextField/TextField.js +27 -3
  87. package/es/components/TextField/TextField.js.map +1 -1
  88. package/es/components/TextField/hooks/useValidation.js +269 -0
  89. package/es/components/TextField/hooks/useValidation.js.map +1 -0
  90. package/es/index.css +4 -5
  91. package/es/utils/constants.js +3 -1
  92. package/es/utils/constants.js.map +1 -1
  93. package/package.json +2 -3
  94. package/styled-components/cjs/components/Combobox/ComboboxNew/Combobox.js +1 -0
  95. package/styled-components/cjs/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js +2 -1
  96. package/styled-components/cjs/components/Dropdown/Dropdown.js +2 -4
  97. package/styled-components/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.js +2 -3
  98. package/styled-components/cjs/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js +2 -5
  99. package/styled-components/cjs/components/Select/Select.js +1 -0
  100. package/styled-components/cjs/components/Select/ui/Inner/ui/Item/Item.js +2 -1
  101. package/styled-components/cjs/components/Select/ui/Target/ui/Textfield/Textfield.js +3 -24
  102. package/styled-components/cjs/components/TextField/TextField.js +26 -3
  103. package/styled-components/cjs/components/TextField/TextField.template-doc.mdx +330 -0
  104. package/styled-components/cjs/components/TextField/hooks/index.js +8 -1
  105. package/styled-components/cjs/components/TextField/hooks/useValidation.js +276 -0
  106. package/styled-components/cjs/examples/plasma_b2c/components/TextField/TextField.stories.tsx +253 -1
  107. package/styled-components/cjs/examples/plasma_web/components/TextField/TextField.stories.tsx +252 -0
  108. package/styled-components/cjs/utils/constants.js +4 -2
  109. package/styled-components/es/components/Combobox/ComboboxNew/Combobox.js +1 -0
  110. package/styled-components/es/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.js +2 -1
  111. package/styled-components/es/components/Dropdown/Dropdown.js +2 -4
  112. package/styled-components/es/components/Dropdown/ui/DropdownItem/DropdownItem.js +3 -4
  113. package/styled-components/es/components/Dropdown/ui/DropdownItem/DropdownItem.styles.js +2 -5
  114. package/styled-components/es/components/Select/Select.js +1 -0
  115. package/styled-components/es/components/Select/ui/Inner/ui/Item/Item.js +2 -1
  116. package/styled-components/es/components/Select/ui/Target/ui/Textfield/Textfield.js +3 -24
  117. package/styled-components/es/components/TextField/TextField.js +27 -4
  118. package/styled-components/es/components/TextField/TextField.template-doc.mdx +330 -0
  119. package/styled-components/es/components/TextField/hooks/index.js +2 -1
  120. package/styled-components/es/components/TextField/hooks/useValidation.js +270 -0
  121. package/styled-components/es/examples/plasma_b2c/components/TextField/TextField.stories.tsx +253 -1
  122. package/styled-components/es/examples/plasma_web/components/TextField/TextField.stories.tsx +252 -0
  123. package/styled-components/es/utils/constants.js +3 -1
  124. package/types/components/Autocomplete/Autocomplete.types.d.ts +2 -2
  125. package/types/components/Autocomplete/Autocomplete.types.d.ts.map +1 -1
  126. package/types/components/Autocomplete/ui/TextField/TextField.styles.d.ts +1676 -92
  127. package/types/components/Autocomplete/ui/TextField/TextField.styles.d.ts.map +1 -1
  128. package/types/components/Combobox/ComboboxNew/Combobox.d.ts.map +1 -1
  129. package/types/components/Combobox/ComboboxNew/Combobox.types.d.ts +2 -1
  130. package/types/components/Combobox/ComboboxNew/Combobox.types.d.ts.map +1 -1
  131. package/types/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.d.ts.map +1 -1
  132. package/types/components/Combobox/ComboboxNew/ui/Target/Target.styles.d.ts +1676 -92
  133. package/types/components/Combobox/ComboboxNew/ui/Target/Target.styles.d.ts.map +1 -1
  134. package/types/components/DatePicker/SingleDate/SingleDate.styles.d.ts +1676 -92
  135. package/types/components/DatePicker/SingleDate/SingleDate.styles.d.ts.map +1 -1
  136. package/types/components/Dropdown/Dropdown.d.ts +2 -50
  137. package/types/components/Dropdown/Dropdown.d.ts.map +1 -1
  138. package/types/components/Dropdown/Dropdown.types.d.ts +6 -11
  139. package/types/components/Dropdown/Dropdown.types.d.ts.map +1 -1
  140. package/types/components/Dropdown/index.d.ts +0 -1
  141. package/types/components/Dropdown/index.d.ts.map +1 -1
  142. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.d.ts.map +1 -1
  143. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.styles.d.ts +0 -1
  144. package/types/components/Dropdown/ui/DropdownItem/DropdownItem.styles.d.ts.map +1 -1
  145. package/types/components/Range/Range.styles.d.ts +1676 -92
  146. package/types/components/Range/Range.styles.d.ts.map +1 -1
  147. package/types/components/Select/Select.d.ts.map +1 -1
  148. package/types/components/Select/Select.types.d.ts +2 -1
  149. package/types/components/Select/Select.types.d.ts.map +1 -1
  150. package/types/components/Select/ui/Inner/ui/Item/Item.d.ts.map +1 -1
  151. package/types/components/Select/ui/Target/ui/Textfield/Textfield.d.ts.map +1 -1
  152. package/types/components/Select/ui/Target/ui/Textfield/Textfield.styles.d.ts +1676 -92
  153. package/types/components/Select/ui/Target/ui/Textfield/Textfield.styles.d.ts.map +1 -1
  154. package/types/components/Slider/components/Double/Double.styles.d.ts +1676 -92
  155. package/types/components/Slider/components/Double/Double.styles.d.ts.map +1 -1
  156. package/types/components/TextField/TextField.d.ts.map +1 -1
  157. package/types/components/TextField/TextField.types.d.ts +51 -1
  158. package/types/components/TextField/TextField.types.d.ts.map +1 -1
  159. package/types/components/TextField/hooks/index.d.ts +1 -0
  160. package/types/components/TextField/hooks/index.d.ts.map +1 -1
  161. package/types/components/TextField/hooks/useValidation.d.ts +7 -0
  162. package/types/components/TextField/hooks/useValidation.d.ts.map +1 -0
  163. package/types/examples/plasma_b2c/components/Autocomplete/Autocomplete.d.ts +64 -2
  164. package/types/examples/plasma_b2c/components/Autocomplete/Autocomplete.d.ts.map +1 -1
  165. package/types/examples/plasma_b2c/components/Dropdown/Dropdown.d.ts +1 -25
  166. package/types/examples/plasma_b2c/components/Dropdown/Dropdown.d.ts.map +1 -1
  167. package/types/examples/plasma_b2c/components/Mask/Mask.d.ts +2732 -92
  168. package/types/examples/plasma_b2c/components/Mask/Mask.d.ts.map +1 -1
  169. package/types/examples/plasma_b2c/components/TextField/TextField.d.ts +1676 -92
  170. package/types/examples/plasma_b2c/components/TextField/TextField.d.ts.map +1 -1
  171. package/types/examples/plasma_web/components/Autocomplete/Autocomplete.d.ts +64 -2
  172. package/types/examples/plasma_web/components/Autocomplete/Autocomplete.d.ts.map +1 -1
  173. package/types/examples/plasma_web/components/Dropdown/Dropdown.d.ts +1 -25
  174. package/types/examples/plasma_web/components/Dropdown/Dropdown.d.ts.map +1 -1
  175. package/types/examples/plasma_web/components/Mask/Mask.d.ts +2732 -92
  176. package/types/examples/plasma_web/components/Mask/Mask.d.ts.map +1 -1
  177. package/types/examples/plasma_web/components/TextField/TextField.d.ts +1676 -92
  178. package/types/examples/plasma_web/components/TextField/TextField.d.ts.map +1 -1
  179. package/types/utils/constants.d.ts +2 -0
  180. package/types/utils/constants.d.ts.map +1 -1
@@ -357,6 +357,7 @@ var comboboxRoot = exports.comboboxRoot = function comboboxRoot(Root) {
357
357
  handleItemClick: handleItemClick,
358
358
  variant: variant,
359
359
  renderItem: renderItem,
360
+ valueToItemMap: valueToItemMap,
360
361
  treeId: treeId
361
362
  }
362
363
  }, /*#__PURE__*/_react["default"].createElement(_FloatingPopover.FloatingPopover, {
@@ -40,6 +40,7 @@ var Item = exports.Item = function Item(_ref) {
40
40
  handleItemClick = _useContext.handleItemClick,
41
41
  variant = _useContext.variant,
42
42
  renderItem = _useContext.renderItem,
43
+ valueToItemMap = _useContext.valueToItemMap,
43
44
  treeId = _useContext.treeId;
44
45
  var disabledClassName = disabled ? _Combobox.classes.dropdownItemIsDisabled : undefined;
45
46
  var focusedClass = currentLevel === focusedPath.length - 1 && index === (focusedPath === null || focusedPath === void 0 ? void 0 : focusedPath[currentLevel]) ? _Combobox.classes.dropdownItemIsFocused : undefined;
@@ -93,7 +94,7 @@ var Item = exports.Item = function Item(_ref) {
93
94
  }))), !multiple && checked.get(item.value) === 'done' && /*#__PURE__*/_react["default"].createElement(_Icon.IconDone, {
94
95
  size: (0, _utils.sizeToIconSize)(size, variant),
95
96
  color: "inherit"
96
- })), renderItem ? /*#__PURE__*/_react["default"].createElement(_Item.StyledText, null, renderItem(item)) : /*#__PURE__*/_react["default"].createElement(_Item.StyledWrapper, null, /*#__PURE__*/_react["default"].createElement(_Item.StyledCell, {
97
+ })), renderItem ? /*#__PURE__*/_react["default"].createElement(_Item.StyledText, null, renderItem(valueToItemMap.get(value))) : /*#__PURE__*/_react["default"].createElement(_Item.StyledWrapper, null, /*#__PURE__*/_react["default"].createElement(_Item.StyledCell, {
97
98
  view: "default",
98
99
  size: "l",
99
100
  contentLeft: contentLeft,
@@ -20,7 +20,7 @@ var _Dropdown2 = /*#__PURE__*/require("./Dropdown.tokens");
20
20
  var _useKeyboardNavigation = /*#__PURE__*/require("./hooks/useKeyboardNavigation");
21
21
  var _useHashMaps3 = /*#__PURE__*/require("./hooks/useHashMaps");
22
22
  var _FloatingPopover = /*#__PURE__*/require("./FloatingPopover");
23
- var _excluded = ["items", "children", "placement", "offset", "closeOnOverlayClick", "onToggle", "size", "view", "itemRole", "className", "listWidth", "listHeight", "listOverflow", "closeOnSelect", "onHover", "onItemSelect", "onItemClick", "trigger", "variant", "hasArrow", "alwaysOpened", "portal", "renderItem"];
23
+ var _excluded = ["items", "children", "placement", "offset", "closeOnOverlayClick", "onToggle", "size", "view", "itemRole", "className", "listWidth", "listHeight", "listOverflow", "closeOnSelect", "onHover", "onItemSelect", "onItemClick", "trigger", "variant", "hasArrow", "alwaysOpened", "portal"];
24
24
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
25
25
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
26
26
  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); }
@@ -69,7 +69,6 @@ var dropdownRoot = exports.dropdownRoot = function dropdownRoot(Root) {
69
69
  _ref$alwaysOpened = _ref.alwaysOpened,
70
70
  alwaysOpened = _ref$alwaysOpened === void 0 ? false : _ref$alwaysOpened,
71
71
  portal = _ref.portal,
72
- renderItem = _ref.renderItem,
73
72
  rest = _objectWithoutProperties(_ref, _excluded);
74
73
  var _useReducer = (0, _react.useReducer)(_pathReducer.pathReducer, []),
75
74
  _useReducer2 = _slicedToArray(_useReducer, 2),
@@ -145,8 +144,7 @@ var dropdownRoot = exports.dropdownRoot = function dropdownRoot(Root) {
145
144
  onItemClick: onItemClick,
146
145
  onItemSelect: onItemSelect,
147
146
  hasArrow: hasArrow,
148
- treeId: treeId,
149
- renderItem: renderItem
147
+ treeId: treeId
150
148
  }
151
149
  }, /*#__PURE__*/_react["default"].createElement(_FloatingPopover.FloatingPopover, {
152
150
  ref: floatingPopoverRef,
@@ -43,8 +43,7 @@ var DropdownItem = exports.DropdownItem = function DropdownItem(_ref) {
43
43
  onItemSelect = _useContext.onItemSelect,
44
44
  onItemClick = _useContext.onItemClick,
45
45
  hasArrow = _useContext.hasArrow,
46
- treeId = _useContext.treeId,
47
- renderItem = _useContext.renderItem;
46
+ treeId = _useContext.treeId;
48
47
  var hasDescendants = Boolean(item.items);
49
48
  var disclosureIconSize = size === 'xs' ? 'xs' : 's';
50
49
  var isDisabledClassName = disabled || isDisabled ? _Dropdown.classes.dropdownItemIsDisabled : undefined;
@@ -95,7 +94,7 @@ var DropdownItem = exports.DropdownItem = function DropdownItem(_ref) {
95
94
  "aria-expanded": ariaExpanded,
96
95
  "aria-level": ariaLevel,
97
96
  "aria-label": ariaLabel
98
- }, renderItem ? /*#__PURE__*/_react["default"].createElement(_DropdownItem.RenderItemWrapper, null, renderItem(item)) : /*#__PURE__*/_react["default"].createElement(_DropdownItem.CellWrapper, null, /*#__PURE__*/_react["default"].createElement(_DropdownItem.StyledCell, {
97
+ }, /*#__PURE__*/_react["default"].createElement(_DropdownItem.CellWrapper, null, /*#__PURE__*/_react["default"].createElement(_DropdownItem.StyledCell, {
99
98
  contentLeft: contentLeft,
100
99
  contentRight: contentRight,
101
100
  alignContentLeft: "center",
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.Wrapper = exports.StyledCell = exports.RenderItemWrapper = exports.Divider = exports.DisclosureIconWrapper = exports.CellWrapper = void 0;
6
+ exports.Wrapper = exports.StyledCell = exports.Divider = exports.DisclosureIconWrapper = exports.CellWrapper = void 0;
7
7
  var _styledComponents = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("styled-components"));
8
8
  var _Dropdown = /*#__PURE__*/require("../../Dropdown.tokens");
9
9
  var _mixins = /*#__PURE__*/require("../../../../mixins");
@@ -42,7 +42,4 @@ var Wrapper = exports.Wrapper = /*#__PURE__*/_styledComponents["default"].li.wit
42
42
  outlineRadius: /*#__PURE__*/"var(".concat(_Dropdown.tokens.itemBorderRadius, ")"),
43
43
  hasTransition: false,
44
44
  customFocusRules: /*#__PURE__*/"\n &.".concat(_Dropdown.classes.dropdownItemIsFocused, ":before {\n outline: none;\n box-shadow: 0 0 0 0.0625rem var(").concat(_Dropdown.constants.focusColor, ");\n }\n ")
45
- }));
46
- var RenderItemWrapper = exports.RenderItemWrapper = /*#__PURE__*/_styledComponents["default"].div.withConfig({
47
- componentId: "plasma-new-hope__sc-hs0ek1-5"
48
- })(["", ";flex:1;"], /*#__PURE__*/(0, _mixins.applyEllipsis)());
45
+ }));
@@ -281,6 +281,7 @@ var selectRoot = exports.selectRoot = function selectRoot(Root) {
281
281
  handleItemClick: handleItemClick,
282
282
  variant: variant,
283
283
  renderItem: renderItem,
284
+ valueToItemMap: valueToItemMap,
284
285
  treeId: treeId
285
286
  }
286
287
  }, /*#__PURE__*/_react["default"].createElement(_FloatingPopover.FloatingPopover, {
@@ -41,6 +41,7 @@ var Item = exports.Item = function Item(_ref) {
41
41
  handleItemClick = _useContext.handleItemClick,
42
42
  variant = _useContext.variant,
43
43
  renderItem = _useContext.renderItem,
44
+ valueToItemMap = _useContext.valueToItemMap,
44
45
  treeId = _useContext.treeId;
45
46
  var itemDisabled = Boolean(disabled || isDisabled);
46
47
  var disabledClassName = itemDisabled ? _Select.classes.dropdownItemIsDisabled : undefined;
@@ -95,7 +96,7 @@ var Item = exports.Item = function Item(_ref) {
95
96
  }))), !multiselect && checked.get(item.value) === 'done' && /*#__PURE__*/_react["default"].createElement(_Icon.IconDone, {
96
97
  size: (0, _utils.sizeToIconSize)(size, variant),
97
98
  color: "inherit"
98
- })), renderItem ? /*#__PURE__*/_react["default"].createElement(_Item.StyledText, null, renderItem(item)) : /*#__PURE__*/_react["default"].createElement(_Item.StyledWrapper, null, /*#__PURE__*/_react["default"].createElement(_Item.StyledCell, {
99
+ })), renderItem ? /*#__PURE__*/_react["default"].createElement(_Item.StyledText, null, renderItem(valueToItemMap.get(value))) : /*#__PURE__*/_react["default"].createElement(_Item.StyledWrapper, null, /*#__PURE__*/_react["default"].createElement(_Item.StyledCell, {
99
100
  contentLeft: contentLeft,
100
101
  contentRight: contentRight
101
102
  // TODO: #1548
@@ -12,12 +12,6 @@ var _Textfield = /*#__PURE__*/require("./Textfield.styles");
12
12
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
13
13
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
14
14
  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); }
15
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
16
- function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
17
- 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); }
18
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
19
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
20
- 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; }
21
15
  var Textfield = exports.Textfield = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
22
16
  var _valueToItemMap$get;
23
17
  var inputWrapperRef = _ref.inputWrapperRef,
@@ -62,24 +56,9 @@ var Textfield = exports.Textfield = /*#__PURE__*/(0, _react.forwardRef)(function
62
56
 
63
57
  // Обработчик чипов
64
58
  var handleChipsChange = function handleChipsChange(chipLabels) {
65
- if (!Array.isArray(value)) return;
66
-
67
- // TODO: #1564
68
- // Из лейблов чипов получаем value у item и далее прокидываем его в onChange.
69
- if (renderValue && !isTargetAmount) {
70
- var resultValues = _toConsumableArray(value);
71
- value.forEach(function (_, index) {
72
- var labelAfterRenderValue = renderValue(labelToItemMap.get(valueToItemMap.get(value[index]).label));
73
- if (!chipLabels.includes(labelAfterRenderValue)) {
74
- resultValues.splice(index, 1);
75
- }
76
- });
77
- onChange(resultValues);
78
- } else {
79
- onChange(chipLabels.map(function (chipLabel) {
80
- return labelToItemMap.get(chipLabel).value;
81
- }));
82
- }
59
+ onChange(chipLabels.map(function (chipLabel) {
60
+ return labelToItemMap.get(chipLabel).value;
61
+ }));
83
62
  };
84
63
  return /*#__PURE__*/_react["default"].createElement(_Textfield.StyledTextField, _extends({
85
64
  ref: ref,
@@ -23,7 +23,7 @@ var _TextField2 = /*#__PURE__*/require("./TextField.tokens");
23
23
  var _ui = /*#__PURE__*/require("./ui");
24
24
  var _hooks2 = /*#__PURE__*/require("./hooks");
25
25
  var _Hint = /*#__PURE__*/require("./ui/Hint/Hint");
26
- var _excluded = ["id", "className", "style", "contentLeft", "contentRight", "label", "labelPlacement", "textBefore", "textAfter", "placeholder", "leftHelper", "enumerationType", "requiredPlacement", "titleCaption", "hintTrigger", "hintText", "hintView", "hintSize", "hintTargetIcon", "hintPlacement", "hintHasArrow", "hintOffset", "hintWidth", "hintContentLeft", "view", "size", "readOnly", "disabled", "required", "clear", "optional", "hasDivider", "value", "chips", "onChange", "onChangeChips", "onSearch", "onKeyDown"];
26
+ var _excluded = ["id", "className", "style", "contentLeft", "contentRight", "label", "labelPlacement", "textBefore", "textAfter", "placeholder", "leftHelper", "enumerationType", "requiredPlacement", "titleCaption", "hintTrigger", "hintText", "hintView", "hintSize", "hintTargetIcon", "hintPlacement", "hintHasArrow", "hintOffset", "hintWidth", "hintContentLeft", "view", "size", "readOnly", "disabled", "required", "clear", "optional", "hasDivider", "value", "chips", "validationType", "options", "passwordHidden", "onValidate", "onChange", "onBlur", "onChangeChips", "onSearch", "onKeyDown"];
27
27
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
28
28
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
29
29
  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); }
@@ -86,7 +86,12 @@ var textFieldRoot = exports.textFieldRoot = function textFieldRoot(Root) {
86
86
  hasDivider = _ref.hasDivider,
87
87
  outerValue = _ref.value,
88
88
  values = _ref.chips,
89
+ validationType = _ref.validationType,
90
+ options = _ref.options,
91
+ passwordHidden = _ref.passwordHidden,
92
+ onValidate = _ref.onValidate,
89
93
  onChange = _ref.onChange,
94
+ onBlur = _ref.onBlur,
90
95
  onChangeChips = _ref.onChangeChips,
91
96
  onSearch = _ref.onSearch,
92
97
  onKeyDown = _ref.onKeyDown,
@@ -136,6 +141,7 @@ var textFieldRoot = exports.textFieldRoot = function textFieldRoot(Root) {
136
141
  var hasValueClass = hasValue ? _TextField2.classes.hasValue : undefined;
137
142
  var wrapperWithoutLeftContent = !contentLeft && isChipsVisible ? _TextField2.classes.hasEmptyContentLeft : undefined;
138
143
  var wrapperWithoutRightContent = !contentRight && isChipsVisible ? _TextField2.classes.hasEmptyContentRight : undefined;
144
+ var isPasswordHidden = validationType === 'password' && passwordHidden;
139
145
  var hintRef = (0, _hooks.useOutsideClick)(function () {
140
146
  setIsHintVisible(false);
141
147
  });
@@ -178,6 +184,13 @@ var textFieldRoot = exports.textFieldRoot = function textFieldRoot(Root) {
178
184
  setChips(newChips);
179
185
  onChangeChips === null || onChangeChips === void 0 || onChangeChips(newValues);
180
186
  };
187
+ var _useValidation = (0, _hooks2.useValidation)({
188
+ validationType: validationType,
189
+ options: options,
190
+ onValidate: onValidate
191
+ }),
192
+ handleValidationBlur = _useValidation.handleValidationBlur,
193
+ handleValidationKeyDown = _useValidation.handleValidationKeyDown;
181
194
  var _useKeyNavigation = (0, _hooks2.useKeyNavigation)({
182
195
  controlledRefs: controlledRefs,
183
196
  disabled: disabled,
@@ -207,6 +220,12 @@ var textFieldRoot = exports.textFieldRoot = function textFieldRoot(Root) {
207
220
  });
208
221
  inputRef.current.focus();
209
222
  };
223
+ var handleInputBlur = function handleInputBlur(event) {
224
+ if (onBlur) {
225
+ onBlur(event);
226
+ }
227
+ handleValidationBlur(event);
228
+ };
210
229
  var getRef = function getRef(element, index) {
211
230
  if (element && chipsRefs !== null && chipsRefs !== void 0 && chipsRefs.current) {
212
231
  chipsRefs.current[index] = element;
@@ -214,6 +233,7 @@ var textFieldRoot = exports.textFieldRoot = function textFieldRoot(Root) {
214
233
  };
215
234
  var handleOnKeyDown = function handleOnKeyDown(event) {
216
235
  handleInputKeydown(event);
236
+ handleValidationKeyDown(event);
217
237
  if (onKeyDown) {
218
238
  onKeyDown(event);
219
239
  }
@@ -347,8 +367,11 @@ var textFieldRoot = exports.textFieldRoot = function textFieldRoot(Root) {
347
367
  readOnly: !disabled && readOnly,
348
368
  onInput: handleInput,
349
369
  onChange: handleChange,
350
- onKeyDown: handleOnKeyDown
351
- }, rest)), hasInnerLabel && /*#__PURE__*/_react["default"].createElement(_TextField.Label, {
370
+ onKeyDown: handleOnKeyDown,
371
+ onBlur: handleInputBlur
372
+ }, rest, isPasswordHidden && {
373
+ type: 'password'
374
+ })), hasInnerLabel && /*#__PURE__*/_react["default"].createElement(_TextField.Label, {
352
375
  id: labelId,
353
376
  htmlFor: innerId
354
377
  }, innerLabelValue, optionalTextNode), placeholderShown && !hasValue && /*#__PURE__*/_react["default"].createElement(_TextField.InputPlaceholder, null, innerPlaceholderValue, hasPlaceholderOptional && optionalTextNode)), textAfter && /*#__PURE__*/_react["default"].createElement(_TextField.StyledTextAfter, null, textAfter)), contentRight && /*#__PURE__*/_react["default"].createElement(_TextField.StyledContentRight, null, contentRight)), leftHelper && /*#__PURE__*/_react["default"].createElement(_TextField.LeftHelper, {
@@ -5,6 +5,9 @@ title: TextField
5
5
 
6
6
  import { PropsTable, Description } from '@site/src/components';
7
7
 
8
+ import Tabs from '@theme/Tabs';
9
+ import TabItem from '@theme/TabItem';
10
+
8
11
  # TextField
9
12
  <Description name="TextField" />
10
13
  <PropsTable name="TextField" exclude={['$isFocused']} />
@@ -198,3 +201,330 @@ export function App() {
198
201
  );
199
202
  }
200
203
  ```
204
+
205
+ ### Валидация
206
+ Поддерживается валидация почты и пароля:
207
+
208
+ <Tabs>
209
+ <TabItem value="email" label="Email" default>
210
+ Свойства доступные при валидации почты:
211
+ ```tsx
212
+ type ValidationProps = {
213
+ /*
214
+ * Тип валидации
215
+ */
216
+ validationType: 'email';
217
+ /*
218
+ * Опции валидации
219
+ */
220
+ options?: EmailValidationOptions;
221
+ /*
222
+ * Функция, вызываемая при валидации значения.
223
+ * Вызывается при событии onBlur и по нажатию Enter, когда фокус на поле ввода
224
+ */
225
+ onValidate?: (args: OnValidateArgs) => void;
226
+ }
227
+ ```
228
+ Свойство `options` имеет следующий вид:
229
+ ```tsx
230
+ type EmailValidationOptions = {
231
+ /*
232
+ * Пользовательское регулярное выражение, для проверки почты на валидность
233
+ */
234
+ customEmailRegex?: {
235
+ value?: RegExp;
236
+ errorMessage?: string;
237
+ };
238
+ /*
239
+ * Минимальная длина почты
240
+ */
241
+ minLength?: {
242
+ value?: number;
243
+ errorMessage?: string;
244
+ };
245
+ /*
246
+ * Максимальная длина почты
247
+ */
248
+ maxLength?: {
249
+ value?: number;
250
+ errorMessage?: string;
251
+ };
252
+ /*
253
+ * Минимальная длина хоста (часть почты до `@`)
254
+ */
255
+ minHostLength?: {
256
+ value?: number;
257
+ errorMessage?: string;
258
+ };
259
+ /*
260
+ * Максимальная длина хоста (часть почты до `@`)
261
+ */
262
+ maxHostLength?: {
263
+ value?: number;
264
+ errorMessage?: string;
265
+ };
266
+ /*
267
+ * Минимальная длина домена (часть почты от `@` до `.` перед доменной зоной)
268
+ */
269
+ minDomainLength?: {
270
+ value?: number;
271
+ errorMessage?: string;
272
+ };
273
+ /*
274
+ * Максимальная длина домена (часть почты от `@` до `.` перед доменной зоной)
275
+ */
276
+ maxDomainLength?: {
277
+ value?: number;
278
+ errorMessage?: string;
279
+ };
280
+ /*
281
+ * Минимальная длина доменной зоны (часть почты от `.`; например `ru`, `com`...)
282
+ */
283
+ minZoneLength?: {
284
+ value?: number;
285
+ errorMessage?: string;
286
+ };
287
+ /*
288
+ * Максимальная длина доменной зоны (часть почты от `.`; например `ru`, `com`...)
289
+ */
290
+ maxZoneLength?: {
291
+ value?: number;
292
+ errorMessage?: string;
293
+ };
294
+ /*
295
+ * Список разрешенных доменов (например `['mail.ru', 'yahoo.ru', 'gmail.com']`)
296
+ */
297
+ whitelistDomains?: {
298
+ value?: string[];
299
+ errorMessage?: string;
300
+ };
301
+ /*
302
+ * Список запрещенных доменов (например `['org.biz', 'expressmail.com']`)
303
+ */
304
+ blacklistDomains?: {
305
+ value?: string[];
306
+ errorMessage?: string;
307
+ };
308
+ };
309
+ ```
310
+
311
+ ```tsx live
312
+ import React, { useState } from 'react';
313
+ import { TextField } from '@salutejs/{{ package }}';
314
+
315
+ export function App() {
316
+ const options = {
317
+ minLength: {
318
+ value: 7,
319
+ errorMessage: 'Почта слишком короткая',
320
+ },
321
+ maxLength: {
322
+ value: 30,
323
+ errorMessage: 'Почта слишком длинная',
324
+ },
325
+ minHostLength: {
326
+ value: 2,
327
+ errorMessage: 'Хост слишком короткий',
328
+ },
329
+ maxHostLength: {
330
+ value: 12,
331
+ errorMessage: 'Хост слишком длинный',
332
+ },
333
+ minDomainLength: {
334
+ value: 3,
335
+ errorMessage: 'Домен слишком короткий',
336
+ },
337
+ maxDomainLength: {
338
+ value: 6,
339
+ errorMessage: 'Домен слишком длинный',
340
+ },
341
+ minZoneLength: {
342
+ value: 2,
343
+ errorMessage: 'Доменная зона слишком короткая',
344
+ },
345
+ maxZoneLength: {
346
+ value: 5,
347
+ errorMessage: 'Доменная зона слишком длинная',
348
+ },
349
+ whitelistDomains: {
350
+ value: ['plasma.ru', 'gmail.com', 'mail.ru'],
351
+ errorMessage: 'Домен не разрешен',
352
+ },
353
+ blacklistDomains: {
354
+ value: ['hah.ah', 'heh.eh'],
355
+ errorMessage: 'Домен запрещен',
356
+ },
357
+ };
358
+
359
+ const [error, setError] = useState('');
360
+
361
+ const handleOnChange = () => {
362
+ setError('');
363
+ };
364
+
365
+ const handleOnValidate = ({ errorMessage }: { errorMessage?: string }) => {
366
+ setError(errorMessage || '');
367
+ };
368
+
369
+ return (
370
+ <div>
371
+ <TextField
372
+ label="Валидация почты"
373
+ placeholder="Заполните поле"
374
+ validationType="email"
375
+ options={options}
376
+ view={error ? 'negative' : 'default}
377
+ helperText={error || 'Валидация почты'}
378
+ onChange={handleOnChange}
379
+ onValidate={handleOnValidate}
380
+ />
381
+ </div>
382
+ );
383
+ }
384
+ ```
385
+ </TabItem>
386
+
387
+ <TabItem value="password" label="Password" default>
388
+ Свойства доступные при валидации пароля:
389
+ ```tsx
390
+ type ValidationProps = {
391
+ /*
392
+ * Тип валидации
393
+ */
394
+ validationType: 'password';
395
+ /*
396
+ * Опции валидации
397
+ */
398
+ options?: PasswordValidationOptions;
399
+ /*
400
+ * Состояние сокрытия оригинального пароля
401
+ */
402
+ passwordHidden?: boolean;
403
+ /*
404
+ * Функция, вызываемая при валидации значения.
405
+ * Вызывается при событии onBlur и по нажатию Enter, когда фокус на поле ввода
406
+ */
407
+ onValidate?: (args: OnValidateArgs) => void;
408
+ }
409
+ ```
410
+ Свойство `options` имеет следующий вид:
411
+ ```tsx
412
+ type PasswordValidationOptions = {
413
+ /*
414
+ * Минимальная длина пароля
415
+ */
416
+ minLength?: {
417
+ value?: number;
418
+ errorMessage?: string;
419
+ };
420
+ /*
421
+ * Максимальная длина пароля
422
+ */
423
+ maxLength?: {
424
+ value?: number;
425
+ errorMessage?: string;
426
+ };
427
+ /*
428
+ * Должны ли быть буквы верхнего регистра в пароле
429
+ */
430
+ includeUppercase?: {
431
+ value?: boolean;
432
+ errorMessage?: string;
433
+ };
434
+ /*
435
+ * Должны ли быть буквы нижнего регистра в пароле
436
+ */
437
+ includeLowercase?: {
438
+ value?: boolean;
439
+ errorMessage?: string;
440
+ };
441
+ /*
442
+ * Должны ли быть цифры в пароле
443
+ */
444
+ includeDigits?: {
445
+ value?: boolean;
446
+ errorMessage?: string;
447
+ };
448
+ /*
449
+ * Должны ли быть специальные символы в пароле
450
+ */
451
+ includeSpecialSymbols?: {
452
+ value?: boolean;
453
+ errorMessage?: string;
454
+ };
455
+ };
456
+ ```
457
+
458
+ ```tsx live
459
+ import React, { useState } from 'react';
460
+ import { TextField, IconButton } from '@salutejs/{{ package }}';
461
+ import { IconEyeFill, IconEyeClosedFill } from '@salutejs/plasma-icons';
462
+
463
+ export function App() {
464
+ const options = {
465
+ minLength: {
466
+ value: 5,
467
+ errorMessage: 'Пароль слишком короткий',
468
+ },
469
+ maxLength: {
470
+ value: 20,
471
+ errorMessage: 'Пароль слишком длинный',
472
+ },
473
+ includeUppercase: {
474
+ value: true,
475
+ errorMessage: 'Пароль должен содержать хотя бы одну заглавную букву',
476
+ },
477
+ includeLowercase: {
478
+ value: true,
479
+ errorMessage: 'Пароль должен содержать хотя бы одну строчную букву',
480
+ },
481
+ includeDigits: {
482
+ value: true,
483
+ errorMessage: 'Пароль должен содержать хотя бы одну цифру',
484
+ },
485
+ includeSpecialSymbols: {
486
+ value: true,
487
+ errorMessage: 'Пароль должен содержать хотя бы один специальный символ',
488
+ },
489
+ };
490
+
491
+ const [error, setError] = useState('');
492
+ const [hidden, setHidden] = useState(false);
493
+
494
+ const handleOnChange = () => {
495
+ setError('');
496
+ };
497
+
498
+ const handleOnValidate = ({ errorMessage }: { errorMessage?: string }) => {
499
+ setError(errorMessage || '');
500
+ };
501
+
502
+ const toggleShowPassword = () => setHidden(!hidden);
503
+
504
+ const HideButton = () => (
505
+ <IconButton size="s" view="clear" onClick={toggleShowPassword}>
506
+ {hidden ? <IconEyeClosedFill size="xs" color="inherit" /> : <IconEyeFill size="xs" color="inherit" />}
507
+ </IconButton>
508
+ )
509
+
510
+ return (
511
+ <div>
512
+ <TextField
513
+ label="Валидация пароля"
514
+ placeholder="Заполните поле"
515
+ validationType="password"
516
+ options={options}
517
+ view={error ? 'negative' : 'default'}
518
+ leftHelper={error || 'Валидация пароля'}
519
+ onChange={handleOnChange}
520
+ onValidate={handleOnValidate}
521
+ passwordHidden={hidden}
522
+ contentLeft={<HideButton />}
523
+ />
524
+ </div>
525
+ );
526
+ }
527
+ ```
528
+ </TabItem>
529
+ </Tabs>
530
+
@@ -9,4 +9,11 @@ Object.defineProperty(exports, "useKeyNavigation", {
9
9
  return _useKeyNavigation.useKeyNavigation;
10
10
  }
11
11
  });
12
- var _useKeyNavigation = /*#__PURE__*/require("./useKeyNavigation");
12
+ Object.defineProperty(exports, "useValidation", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _useValidation.useValidation;
16
+ }
17
+ });
18
+ var _useKeyNavigation = /*#__PURE__*/require("./useKeyNavigation");
19
+ var _useValidation = /*#__PURE__*/require("./useValidation");