@invoicebox/ui 0.1.0-alpha.314 → 0.1.0-alpha.316

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 (87) hide show
  1. package/dist/components/common/Tooltip/index.d.ts +9 -0
  2. package/dist/components/common/Tooltip/index.js +60 -0
  3. package/dist/components/common/Tooltip/index.stories.d.ts +6 -0
  4. package/dist/components/common/Tooltip/index.stories.js +43 -0
  5. package/dist/components/common/Tooltip/palette.d.ts +7 -0
  6. package/dist/components/common/Tooltip/palette.js +13 -0
  7. package/dist/components/common/Tooltip/styles.d.ts +9 -0
  8. package/dist/components/common/Tooltip/styles.js +34 -0
  9. package/dist/components/common/Typography/index.d.ts +5 -2
  10. package/dist/components/form/Autocomplete/components/Autocomplete/index.js +5 -1
  11. package/dist/components/form/Checkbox/CheckIcon.d.ts +2 -0
  12. package/dist/components/form/Checkbox/CheckIcon.js +23 -0
  13. package/dist/components/form/Checkbox/index.d.ts +11 -0
  14. package/dist/components/form/Checkbox/index.js +47 -0
  15. package/dist/components/form/Checkbox/index.stories.d.ts +8 -0
  16. package/dist/components/form/Checkbox/index.stories.js +69 -0
  17. package/dist/components/form/Checkbox/palette.d.ts +12 -0
  18. package/dist/components/form/Checkbox/palette.js +20 -0
  19. package/dist/components/form/Checkbox/styles.d.ts +13 -0
  20. package/dist/components/form/Checkbox/styles.js +71 -0
  21. package/dist/components/form/CurrencyInput/CoreCurrencyInput/index.d.ts +1 -1
  22. package/dist/components/form/CurrencyInput/CoreCurrencyInput/index.js +12 -4
  23. package/dist/components/form/DateInput/index.d.ts +1 -1
  24. package/dist/components/form/DateInput/index.js +8 -2
  25. package/dist/components/form/DateTimeInput/index.d.ts +1 -1
  26. package/dist/components/form/DateTimeInput/index.js +8 -2
  27. package/dist/components/form/InputLabel/index.d.ts +1 -0
  28. package/dist/components/form/InputLabel/index.js +4 -1
  29. package/dist/components/form/PhoneInput/index.js +6 -2
  30. package/dist/components/form/PositiveIntegerInput/index.d.ts +1 -1
  31. package/dist/components/form/PositiveIntegerInput/index.js +8 -2
  32. package/dist/components/form/PureInput/index.js +5 -2
  33. package/dist/components/form/SearchInput/index.d.ts +2 -2
  34. package/dist/components/form/SearchInput/index.js +8 -2
  35. package/dist/components/form/Select/components/Input/index.d.ts +2 -2
  36. package/dist/components/form/Select/components/Input/index.js +8 -2
  37. package/dist/components/form/Select/components/MultipleValue/index.d.ts +9 -0
  38. package/dist/components/form/Select/components/MultipleValue/index.js +129 -0
  39. package/dist/components/form/Select/components/MultipleValue/styles.d.ts +8 -0
  40. package/dist/components/form/Select/components/MultipleValue/styles.js +31 -0
  41. package/dist/components/form/Select/index.d.ts +17 -4
  42. package/dist/components/form/Select/index.js +98 -44
  43. package/dist/components/form/Select/index.stories.d.ts +3 -1
  44. package/dist/components/form/Select/index.stories.js +32 -1
  45. package/dist/components/form/Select/palette.d.ts +2 -0
  46. package/dist/components/form/Select/palette.js +3 -1
  47. package/dist/components/form/Select/styles.d.ts +4 -0
  48. package/dist/components/form/Select/styles.js +26 -10
  49. package/dist/components/form/TagsInput/index.js +4 -1
  50. package/dist/components/form/TextInput/index.js +6 -2
  51. package/dist/esm/components/common/Tooltip/index.js +51 -0
  52. package/dist/esm/components/common/Tooltip/index.stories.js +36 -0
  53. package/dist/esm/components/common/Tooltip/palette.js +7 -0
  54. package/dist/esm/components/common/Tooltip/styles.js +27 -0
  55. package/dist/esm/components/form/Autocomplete/components/Autocomplete/index.js +5 -1
  56. package/dist/esm/components/form/Checkbox/CheckIcon.js +16 -0
  57. package/dist/esm/components/form/Checkbox/index.js +38 -0
  58. package/dist/esm/components/form/Checkbox/index.stories.js +60 -0
  59. package/dist/esm/components/form/Checkbox/palette.js +13 -0
  60. package/dist/esm/components/form/Checkbox/styles.js +64 -0
  61. package/dist/esm/components/form/CurrencyInput/CoreCurrencyInput/index.js +9 -3
  62. package/dist/esm/components/form/DateInput/index.js +9 -3
  63. package/dist/esm/components/form/DateTimeInput/index.js +9 -3
  64. package/dist/esm/components/form/InputLabel/index.js +4 -1
  65. package/dist/esm/components/form/PhoneInput/index.js +7 -3
  66. package/dist/esm/components/form/PositiveIntegerInput/index.js +9 -3
  67. package/dist/esm/components/form/PureInput/index.js +6 -3
  68. package/dist/esm/components/form/SearchInput/index.js +9 -3
  69. package/dist/esm/components/form/Select/components/Input/index.js +9 -3
  70. package/dist/esm/components/form/Select/components/MultipleValue/index.js +120 -0
  71. package/dist/esm/components/form/Select/components/MultipleValue/styles.js +22 -0
  72. package/dist/esm/components/form/Select/index.js +98 -44
  73. package/dist/esm/components/form/Select/index.stories.js +31 -0
  74. package/dist/esm/components/form/Select/palette.js +3 -1
  75. package/dist/esm/components/form/Select/styles.js +25 -9
  76. package/dist/esm/components/form/TagsInput/index.js +5 -2
  77. package/dist/esm/components/form/TextInput/index.js +7 -3
  78. package/dist/esm/index.js +2 -0
  79. package/dist/esm/palette/context.js +5 -1
  80. package/dist/esm/palette/provider.js +5 -1
  81. package/dist/index.d.ts +5 -1
  82. package/dist/index.js +14 -0
  83. package/dist/palette/context.d.ts +4 -0
  84. package/dist/palette/context.js +5 -1
  85. package/dist/palette/provider.js +5 -1
  86. package/dist/palette/usePalette.d.ts +2 -0
  87. package/package.json +1 -1
@@ -45,9 +45,12 @@ var DateInput = exports.DateInput = function DateInput(_ref) {
45
45
  _ref$useModernStyles = _ref.useModernStyles,
46
46
  useModernStyles = _ref$useModernStyles === void 0 ? false : _ref$useModernStyles,
47
47
  _ref$required = _ref.required,
48
- required = _ref$required === void 0 ? false : _ref$required;
48
+ required = _ref$required === void 0 ? false : _ref$required,
49
+ id = _ref.id;
49
50
  var palette = (0, _palette.useComponentPalette)('dateInput');
50
51
  var inputRef = (0, _react.useRef)(null);
52
+ var fallbackId = (0, _react.useId)();
53
+ var inputId = id !== null && id !== void 0 ? id : fallbackId;
51
54
  var isMobile = (0, _index.useMobile)();
52
55
  var _useState = (0, _react.useState)(false),
53
56
  _useState2 = _slicedToArray(_useState, 2),
@@ -124,8 +127,11 @@ var DateInput = exports.DateInput = function DateInput(_ref) {
124
127
  label: inputLabel,
125
128
  useModernStyles: useModernStyles,
126
129
  size: fieldSize,
127
- required: required
130
+ required: required,
131
+ htmlFor: inputId
128
132
  }, /*#__PURE__*/_react["default"].createElement(S.InputWrapper, null, modernPlaceholder, /*#__PURE__*/_react["default"].createElement(_PureInput.PureInput, _extends({
133
+ id: inputId,
134
+ "aria-label": label && !inputLabel ? label : undefined,
129
135
  onClick: handleTrigger,
130
136
  ref: inputRef,
131
137
  hasError: hasError,
@@ -13,7 +13,7 @@ export type TProps = {
13
13
  cancelLabel?: string;
14
14
  required?: boolean;
15
15
  useModernStyles?: boolean;
16
- } & Pick<TPureInputProps, 'hasError' | 'name' | 'onBlur' | 'onFocus'> & Pick<TInputLabelProps, 'label'> & Pick<TCalendarProps, 'maxDate' | 'minDate'> & {
16
+ } & Pick<TPureInputProps, 'hasError' | 'name' | 'onBlur' | 'onFocus' | 'id'> & Pick<TInputLabelProps, 'label'> & Pick<TCalendarProps, 'maxDate' | 'minDate'> & {
17
17
  size?: TSizes;
18
18
  };
19
19
  export declare const DateTimeInput: FC<TProps>;
@@ -49,9 +49,12 @@ var DateTimeInput = exports.DateTimeInput = function DateTimeInput(_ref) {
49
49
  _ref$required = _ref.required,
50
50
  required = _ref$required === void 0 ? false : _ref$required,
51
51
  _ref$useModernStyles = _ref.useModernStyles,
52
- useModernStyles = _ref$useModernStyles === void 0 ? false : _ref$useModernStyles;
52
+ useModernStyles = _ref$useModernStyles === void 0 ? false : _ref$useModernStyles,
53
+ id = _ref.id;
53
54
  var palette = (0, _palette.useComponentPalette)('dateTimeInput');
54
55
  var inputRef = (0, _react.useRef)(null);
56
+ var fallbackId = (0, _react.useId)();
57
+ var inputId = id !== null && id !== void 0 ? id : fallbackId;
55
58
  var isMobile = (0, _index.useMobile)();
56
59
  var withTime = true;
57
60
  var _useState = (0, _react.useState)(false),
@@ -151,8 +154,11 @@ var DateTimeInput = exports.DateTimeInput = function DateTimeInput(_ref) {
151
154
  label: inputLabel,
152
155
  required: required,
153
156
  useModernStyles: useModernStyles,
154
- size: fieldSize
157
+ size: fieldSize,
158
+ htmlFor: inputId
155
159
  }, /*#__PURE__*/_react["default"].createElement(S.InputWrapper, null, modernPlaceholder, /*#__PURE__*/_react["default"].createElement(_PureInput.PureInput, _extends({
160
+ id: inputId,
161
+ "aria-label": label && !inputLabel ? label : undefined,
156
162
  onClick: handleTrigger,
157
163
  ref: inputRef,
158
164
  hasError: hasError,
@@ -9,5 +9,6 @@ export type TProps = {
9
9
  useModernStyles?: boolean;
10
10
  size?: TSizes;
11
11
  left?: number;
12
+ htmlFor?: string;
12
13
  };
13
14
  export declare const InputLabel: FC<TProps>;
@@ -25,7 +25,8 @@ var InputLabel = exports.InputLabel = function InputLabel(_ref) {
25
25
  useModernStyles = _ref$useModernStyles === void 0 ? false : _ref$useModernStyles,
26
26
  _ref$size = _ref.size,
27
27
  size = _ref$size === void 0 ? 'M' : _ref$size,
28
- left = _ref.left;
28
+ left = _ref.left,
29
+ htmlFor = _ref.htmlFor;
29
30
  var palette = (0, _palette.useComponentPalette)('inputLabel');
30
31
  return /*#__PURE__*/_react["default"].createElement(S.Wrapper, {
31
32
  $palette: palette,
@@ -35,6 +36,8 @@ var InputLabel = exports.InputLabel = function InputLabel(_ref) {
35
36
  $marginTop: useModernStyles && _constants.MODERN_STYLE_SIZE_PARAMS_MAP[size].$labelPaddingTop < 0 && !!label ? -_constants.MODERN_STYLE_SIZE_PARAMS_MAP[size].$labelPaddingTop : undefined,
36
37
  $paddingTop: useModernStyles ? 0 : 10
37
38
  }, label && /*#__PURE__*/_react["default"].createElement(S.Label, {
39
+ element: "label",
40
+ htmlFor: htmlFor,
38
41
  $palette: palette,
39
42
  $inFocus: inFocus,
40
43
  variant: size && useModernStyles ? _constants.MODERN_STYLE_SIZE_PARAMS_MAP[size].$labelVariant : 'captionRegular',
@@ -55,6 +55,8 @@ var PhoneInput = exports.PhoneInput = function PhoneInput(_ref) {
55
55
  useModernStyles = _ref$useModernStyles === void 0 ? false : _ref$useModernStyles;
56
56
  var inputRef = (0, _react.useRef)();
57
57
  var isMobile = (0, _useMedia.useMobile)();
58
+ var fallbackId = (0, _react.useId)();
59
+ var inputId = id !== null && id !== void 0 ? id : fallbackId;
58
60
  var phoneInputLogic = (0, _react.useMemo)(function () {
59
61
  return new _phoneInputLogic.PhoneInputLogic(isSupportCityRusPhoneNumber);
60
62
  }, [isSupportCityRusPhoneNumber]);
@@ -192,7 +194,8 @@ var PhoneInput = exports.PhoneInput = function PhoneInput(_ref) {
192
194
  required: required,
193
195
  useModernStyles: useModernStyles,
194
196
  size: fieldSize,
195
- left: isHaveSelectCountries && useModernStyles ? 65 : undefined
197
+ left: isHaveSelectCountries && useModernStyles ? 65 : undefined,
198
+ htmlFor: inputId
196
199
  }, /*#__PURE__*/_react["default"].createElement(S.InputLabelContent, null, useModernStyles && /*#__PURE__*/_react["default"].createElement(_ModernPlaceholder.ModernPlaceholder, {
197
200
  visible: !isHideModernPlaceholder,
198
201
  paddingLeft: isHaveSelectCountries ? 75 : 18,
@@ -222,7 +225,8 @@ var PhoneInput = exports.PhoneInput = function PhoneInput(_ref) {
222
225
  placeholder: inputPlaceholder,
223
226
  ref: inputRef
224
227
  }, /*#__PURE__*/_react["default"].createElement(_PureInput.PureInput, _extends({
225
- id: id,
228
+ id: inputId,
229
+ "aria-label": label && !inputLabel ? label : undefined,
226
230
  hasError: hasPureInputError,
227
231
  inFocus: inFocus,
228
232
  name: name,
@@ -7,7 +7,7 @@ export type TProps = {
7
7
  onChange: (value: number | null) => void;
8
8
  max?: number;
9
9
  upAndDown?: boolean;
10
- } & Pick<TInputLabelProps, 'label'> & Pick<TPureInputProps, 'placeholder' | 'hasError' | 'onFocus' | 'onBlur' | 'disabled' | 'name' | 'useModernStyles'> & {
10
+ } & Pick<TInputLabelProps, 'label'> & Pick<TPureInputProps, 'placeholder' | 'hasError' | 'onFocus' | 'onBlur' | 'disabled' | 'name' | 'useModernStyles' | 'id'> & {
11
11
  size?: TSizes;
12
12
  };
13
13
  export declare const PositiveIntegerInput: FC<TProps>;
@@ -34,7 +34,8 @@ var PositiveIntegerInput = exports.PositiveIntegerInput = function PositiveInteg
34
34
  name = _ref.name,
35
35
  size = _ref.size,
36
36
  _ref$useModernStyles = _ref.useModernStyles,
37
- useModernStyles = _ref$useModernStyles === void 0 ? false : _ref$useModernStyles;
37
+ useModernStyles = _ref$useModernStyles === void 0 ? false : _ref$useModernStyles,
38
+ id = _ref.id;
38
39
  var _useInputFocus = (0, _useInputFocus2.useInputFocus)({
39
40
  onFocus: onFocus,
40
41
  onBlur: onBlur
@@ -42,6 +43,8 @@ var PositiveIntegerInput = exports.PositiveIntegerInput = function PositiveInteg
42
43
  inFocus = _useInputFocus.inFocus,
43
44
  handleFocus = _useInputFocus.handleFocus,
44
45
  handleBlur = _useInputFocus.handleBlur;
46
+ var fallbackId = (0, _react.useId)();
47
+ var inputId = id !== null && id !== void 0 ? id : fallbackId;
45
48
  var _useInputStyles = (0, _useInputStyles2.useInputStyles)({
46
49
  isHaveValue: typeof value === 'number',
47
50
  useModernStyles: useModernStyles,
@@ -86,8 +89,11 @@ var PositiveIntegerInput = exports.PositiveIntegerInput = function PositiveInteg
86
89
  inFocus: inFocus,
87
90
  label: inputLabel,
88
91
  useModernStyles: useModernStyles,
89
- size: fieldSize
92
+ size: fieldSize,
93
+ htmlFor: inputId
90
94
  }, /*#__PURE__*/_react["default"].createElement(S.ControlWrapper, null, modernPlaceholder, /*#__PURE__*/_react["default"].createElement(_PureInput.PureInput, _extends({
95
+ id: inputId,
96
+ "aria-label": label && !inputLabel ? label : undefined,
91
97
  name: name,
92
98
  hasError: hasError,
93
99
  inFocus: inFocus,
@@ -8,7 +8,7 @@ exports.PureInput = void 0;
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
  var S = _interopRequireWildcard(require("./styles"));
10
10
  var _palette = require("../../../palette");
11
- var _excluded = ["paddingLeft", "paddingRight", "paddingTop", "paddingBottom", "borderRadius", "hasError", "inFocus", "hasBorder", "isOnlyNumbers", "className", "onChange", "element", "variant", "renderedValue", "useModernStyles"];
11
+ var _excluded = ["paddingLeft", "paddingRight", "paddingTop", "paddingBottom", "borderRadius", "hasError", "inFocus", "hasBorder", "isOnlyNumbers", "className", "onChange", "element", "variant", "renderedValue", "useModernStyles", "id"];
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() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
@@ -42,8 +42,10 @@ var PureInput = exports.PureInput = /*#__PURE__*/_react["default"].forwardRef(fu
42
42
  renderedValue = _ref.renderedValue,
43
43
  _ref$useModernStyles = _ref.useModernStyles,
44
44
  useModernStyles = _ref$useModernStyles === void 0 ? false : _ref$useModernStyles,
45
+ id = _ref.id,
45
46
  rest = _objectWithoutProperties(_ref, _excluded);
46
47
  var palette = (0, _palette.useComponentPalette)('pureInput');
48
+ var fallbackId = (0, _react.useId)();
47
49
  var handleChange = (0, _react.useCallback)(function (event) {
48
50
  var inputValue = event.target.value;
49
51
  event.target.value = isOnlyNumbers ? inputValue.replace(/[^0-9]/g, '') : inputValue;
@@ -65,7 +67,8 @@ var PureInput = exports.PureInput = /*#__PURE__*/_react["default"].forwardRef(fu
65
67
  $palette: palette,
66
68
  $borderRadius: borderRadius,
67
69
  onChange: handleChange,
68
- $useModernStyles: useModernStyles
70
+ $useModernStyles: useModernStyles,
71
+ id: id !== null && id !== void 0 ? id : fallbackId
69
72
  }, rest), renderedValue);
70
73
  });
71
74
  PureInput.displayName = 'PureInput';
@@ -1,13 +1,13 @@
1
1
  import React from 'react';
2
2
  import { TProps as PureInputProps } from '../PureInput';
3
3
  import { TSizes } from '../constants';
4
- export type TProps = Pick<PureInputProps, 'placeholder' | 'hasBorder' | 'autoFocus' | 'name' | 'onFocus' | 'onBlur' | 'isOnlyNumbers' | 'maxLength'> & {
4
+ export type TProps = Pick<PureInputProps, 'placeholder' | 'hasBorder' | 'autoFocus' | 'name' | 'onFocus' | 'onBlur' | 'isOnlyNumbers' | 'maxLength' | 'id'> & {
5
5
  value: string;
6
6
  onChange: (value: string) => void;
7
7
  size?: TSizes;
8
8
  useModernStyles?: boolean;
9
9
  };
10
- export declare const SearchInput: React.ForwardRefExoticComponent<Pick<PureInputProps, "name" | "maxLength" | "placeholder" | "autoFocus" | "onFocus" | "onBlur" | "hasBorder" | "isOnlyNumbers"> & {
10
+ export declare const SearchInput: React.ForwardRefExoticComponent<Pick<PureInputProps, "id" | "name" | "maxLength" | "placeholder" | "autoFocus" | "onFocus" | "onBlur" | "hasBorder" | "isOnlyNumbers"> & {
11
11
  value: string;
12
12
  onChange: (value: string) => void;
13
13
  size?: TSizes | undefined;
@@ -30,7 +30,8 @@ var SearchInput = exports.SearchInput = /*#__PURE__*/(0, _react.forwardRef)(func
30
30
  maxLength = _ref.maxLength,
31
31
  size = _ref.size,
32
32
  _ref$useModernStyles = _ref.useModernStyles,
33
- useModernStyles = _ref$useModernStyles === void 0 ? false : _ref$useModernStyles;
33
+ useModernStyles = _ref$useModernStyles === void 0 ? false : _ref$useModernStyles,
34
+ id = _ref.id;
34
35
  var _useInputFocus = (0, _useInputFocus2.useInputFocus)({
35
36
  onFocus: onFocus,
36
37
  onBlur: onBlur
@@ -38,6 +39,8 @@ var SearchInput = exports.SearchInput = /*#__PURE__*/(0, _react.forwardRef)(func
38
39
  inFocus = _useInputFocus.inFocus,
39
40
  handleFocus = _useInputFocus.handleFocus,
40
41
  handleBlur = _useInputFocus.handleBlur;
42
+ var fallbackId = (0, _react.useId)();
43
+ var inputId = id !== null && id !== void 0 ? id : fallbackId;
41
44
  var palette = (0, _palette.useComponentPalette)('searchInput');
42
45
  var _useInputStyles = (0, _useInputStyles2.useInputStyles)({
43
46
  isHaveValue: !!value,
@@ -61,9 +64,12 @@ var SearchInput = exports.SearchInput = /*#__PURE__*/(0, _react.forwardRef)(func
61
64
  return /*#__PURE__*/_react["default"].createElement(_InputLabel.InputLabel, {
62
65
  useModernStyles: useModernStyles,
63
66
  size: fieldSize,
64
- label: useModernStyles ? inputLabel : undefined
67
+ label: useModernStyles ? inputLabel : undefined,
68
+ htmlFor: inputId
65
69
  }, modernPlaceholder, /*#__PURE__*/_react["default"].createElement(_PureInput.PureInput, _extends({
66
70
  ref: ref,
71
+ id: inputId,
72
+ "aria-label": useModernStyles && inputLabel ? undefined : placeholder,
67
73
  paddingRight: 56,
68
74
  hasBorder: hasBorder,
69
75
  onChange: handleInputChange,
@@ -3,13 +3,13 @@ import { TProps as TInputLabelProps } from '../../../InputLabel';
3
3
  import { TProps as TPureInputProps } from '../../../PureInput';
4
4
  import { TProps as TArrowProps } from '../../../../common/Arrow';
5
5
  import { TSizes } from '../../../constants';
6
- export type TProps = Pick<TInputLabelProps, 'inFocus' | 'label' | 'required'> & Pick<TPureInputProps, 'hasError' | 'placeholder' | 'name' | 'onFocus' | 'onBlur' | 'value' | 'onClick'> & Pick<TArrowProps, 'isOpen'> & {
6
+ export type TProps = Pick<TInputLabelProps, 'inFocus' | 'label' | 'required'> & Pick<TPureInputProps, 'hasError' | 'placeholder' | 'name' | 'onFocus' | 'onBlur' | 'value' | 'onClick' | 'id'> & Pick<TArrowProps, 'isOpen'> & {
7
7
  onReset?: () => void;
8
8
  size?: TSizes;
9
9
  renderedValue?: React.ReactNode;
10
10
  useModernStyles?: boolean;
11
11
  };
12
- export declare const Input: React.ForwardRefExoticComponent<Pick<TInputLabelProps, "required" | "label" | "inFocus"> & Pick<TPureInputProps, "name" | "value" | "placeholder" | "onFocus" | "onBlur" | "onClick" | "hasError"> & Pick<TArrowProps, "isOpen"> & {
12
+ export declare const Input: React.ForwardRefExoticComponent<Pick<TInputLabelProps, "required" | "label" | "inFocus"> & Pick<TPureInputProps, "id" | "name" | "value" | "placeholder" | "onFocus" | "onBlur" | "onClick" | "hasError"> & Pick<TArrowProps, "isOpen"> & {
13
13
  onReset?: (() => void) | undefined;
14
14
  size?: TSizes | undefined;
15
15
  renderedValue?: React.ReactNode;
@@ -32,7 +32,10 @@ var Input = exports.Input = /*#__PURE__*/(0, _react.forwardRef)(function (_ref,
32
32
  onClick = _ref.onClick,
33
33
  required = _ref.required,
34
34
  _ref$useModernStyles = _ref.useModernStyles,
35
- useModernStyles = _ref$useModernStyles === void 0 ? false : _ref$useModernStyles;
35
+ useModernStyles = _ref$useModernStyles === void 0 ? false : _ref$useModernStyles,
36
+ id = _ref.id;
37
+ var fallbackId = (0, _react.useId)();
38
+ var inputId = id !== null && id !== void 0 ? id : fallbackId;
36
39
  var _useInputStyles = (0, _useInputStyles2.useInputStyles)({
37
40
  isHaveValue: !!value,
38
41
  useModernStyles: useModernStyles,
@@ -53,8 +56,11 @@ var Input = exports.Input = /*#__PURE__*/(0, _react.forwardRef)(function (_ref,
53
56
  label: inputLabel,
54
57
  required: required,
55
58
  useModernStyles: useModernStyles,
56
- size: fieldSize
59
+ size: fieldSize,
60
+ htmlFor: inputId
57
61
  }, /*#__PURE__*/_react["default"].createElement(S.ControlWrapper, null, modernPlaceholder, /*#__PURE__*/_react["default"].createElement(_PureInput.PureInput, _extends({
62
+ id: inputId,
63
+ "aria-label": label && !inputLabel ? label : undefined,
58
64
  ref: ref,
59
65
  hasError: hasError,
60
66
  inFocus: inFocus,
@@ -0,0 +1,9 @@
1
+ import { TOption } from '../..';
2
+ import { TProps as TChipProps } from '../../../../common/Chip';
3
+ export type TProps<TValue> = {
4
+ selectedOptions: TOption<TValue>[];
5
+ onRemove: (value: TValue) => void;
6
+ collapse?: boolean;
7
+ chipProps?: Partial<Omit<TChipProps, 'label'>>;
8
+ };
9
+ export declare const MultipleValue: <TValue extends string | number>({ selectedOptions, onRemove, collapse, chipProps, }: TProps<TValue>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+
3
+ 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); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.MultipleValue = void 0;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var S = _interopRequireWildcard(require("./styles"));
10
+ var _palette = require("../../../../../palette");
11
+ var _Chip = require("../../../../common/Chip");
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
+ 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
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
15
+ 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."); }
16
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
17
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
18
+ 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; } }
19
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
20
+ var CHIP_SIZE = 'xs';
21
+ var MultipleValue = exports.MultipleValue = function MultipleValue(_ref) {
22
+ var _chipProps$color, _chipProps$bgColor, _chipProps$size;
23
+ var selectedOptions = _ref.selectedOptions,
24
+ onRemove = _ref.onRemove,
25
+ _ref$collapse = _ref.collapse,
26
+ collapse = _ref$collapse === void 0 ? false : _ref$collapse,
27
+ chipProps = _ref.chipProps;
28
+ var palette = (0, _palette.useComponentPalette)('select');
29
+ var chipColor = (_chipProps$color = chipProps === null || chipProps === void 0 ? void 0 : chipProps.color) !== null && _chipProps$color !== void 0 ? _chipProps$color : palette.tagColor;
30
+ var chipBgColor = (_chipProps$bgColor = chipProps === null || chipProps === void 0 ? void 0 : chipProps.bgColor) !== null && _chipProps$bgColor !== void 0 ? _chipProps$bgColor : palette.tagBg;
31
+ var chipSize = (_chipProps$size = chipProps === null || chipProps === void 0 ? void 0 : chipProps.size) !== null && _chipProps$size !== void 0 ? _chipProps$size : CHIP_SIZE;
32
+ var wrapperRef = (0, _react.useRef)(null);
33
+ var tagRefs = (0, _react.useRef)([]);
34
+ var counterRef = (0, _react.useRef)(null);
35
+ var _useState = (0, _react.useState)(selectedOptions.length),
36
+ _useState2 = _slicedToArray(_useState, 2),
37
+ visibleCount = _useState2[0],
38
+ setVisibleCount = _useState2[1];
39
+ var handleRemove = (0, _react.useCallback)(function (event, value) {
40
+ event.preventDefault();
41
+ event.stopPropagation();
42
+ onRemove(value);
43
+ }, [onRemove]);
44
+ (0, _react.useLayoutEffect)(function () {
45
+ if (!collapse) {
46
+ setVisibleCount(selectedOptions.length);
47
+ return undefined;
48
+ }
49
+ var wrapper = wrapperRef.current;
50
+ if (!wrapper) return undefined;
51
+ var recalculate = function recalculate() {
52
+ var _counterRef$current;
53
+ var total = selectedOptions.length;
54
+ var containerWidth = wrapper.clientWidth;
55
+ var widths = tagRefs.current.slice(0, total).map(function (el) {
56
+ return (el === null || el === void 0 ? void 0 : el.offsetWidth) || 0;
57
+ });
58
+ var counterWidth = ((_counterRef$current = counterRef.current) === null || _counterRef$current === void 0 ? void 0 : _counterRef$current.offsetWidth) || 0;
59
+ var countFitting = function countFitting(reserve) {
60
+ var used = 0;
61
+ var count = 0;
62
+ for (var i = 0; i < total; i += 1) {
63
+ var width = widths[i] + (count > 0 ? S.TAGS_GAP : 0);
64
+ if (used + width <= containerWidth - reserve) {
65
+ used += width;
66
+ count += 1;
67
+ } else {
68
+ break;
69
+ }
70
+ }
71
+ return count;
72
+ };
73
+ var count = countFitting(0);
74
+ // если влезли не все теги, оставляем место под счётчик "+N"
75
+ if (count < total) {
76
+ count = Math.max(countFitting(counterWidth + S.TAGS_GAP), 1);
77
+ }
78
+ setVisibleCount(count);
79
+ };
80
+ recalculate();
81
+ var observer = new ResizeObserver(recalculate);
82
+ observer.observe(wrapper);
83
+ return function () {
84
+ return observer.disconnect();
85
+ };
86
+ }, [collapse, selectedOptions]);
87
+ var safeVisibleCount = collapse ? visibleCount : selectedOptions.length;
88
+ var hiddenCount = selectedOptions.length - safeVisibleCount;
89
+ var hiddenStyle = {
90
+ position: 'absolute',
91
+ visibility: 'hidden',
92
+ pointerEvents: 'none'
93
+ };
94
+ return /*#__PURE__*/_react["default"].createElement(S.Wrapper, {
95
+ ref: wrapperRef,
96
+ $collapse: collapse
97
+ }, selectedOptions.map(function (option, index) {
98
+ return /*#__PURE__*/_react["default"].createElement(S.ItemWrapper, {
99
+ key: option.value,
100
+ ref: function ref(el) {
101
+ tagRefs.current[index] = el;
102
+ },
103
+ style: collapse && index >= safeVisibleCount ? hiddenStyle : undefined
104
+ }, /*#__PURE__*/_react["default"].createElement(_Chip.Chip, {
105
+ size: chipSize,
106
+ color: chipColor,
107
+ bgColor: chipBgColor,
108
+ label: /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(S.TagLabel, {
109
+ variant: "smallMedium"
110
+ }, option.label), /*#__PURE__*/_react["default"].createElement(S.TagRemove, {
111
+ type: "button",
112
+ onMouseDown: function onMouseDown(event) {
113
+ return event.preventDefault();
114
+ },
115
+ onClick: function onClick(event) {
116
+ return handleRemove(event, option.value);
117
+ }
118
+ }, "\xD7"))
119
+ }));
120
+ }), collapse && /*#__PURE__*/_react["default"].createElement(S.ItemWrapper, {
121
+ ref: counterRef,
122
+ style: hiddenCount > 0 ? undefined : hiddenStyle
123
+ }, /*#__PURE__*/_react["default"].createElement(_Chip.Chip, {
124
+ size: chipSize,
125
+ color: chipColor,
126
+ bgColor: chipBgColor,
127
+ label: "+".concat(hiddenCount)
128
+ })));
129
+ };
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ export declare const TAGS_GAP = 6;
3
+ export declare const Wrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
4
+ $collapse: boolean;
5
+ }>> & string;
6
+ export declare const ItemWrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
7
+ export declare const TagLabel: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("../../../../common/Typography").TTypographyProps & import("styled-components/dist/types").BaseObject, import("styled-components/dist/types").BaseObject>> & string & Omit<import("react").FC<import("../../../../common/Typography").TTypographyProps>, keyof import("react").Component<any, {}, any>>;
8
+ export declare const TagRemove: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never>> & string;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ 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); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.Wrapper = exports.TagRemove = exports.TagLabel = exports.TAGS_GAP = exports.ItemWrapper = void 0;
8
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
9
+ var _Typography = require("../../../../common/Typography");
10
+ 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); }
11
+ 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; }
12
+ var TAGS_GAP = exports.TAGS_GAP = 6;
13
+ var Wrapper = exports.Wrapper = _styledComponents["default"].div.withConfig({
14
+ displayName: "styles__Wrapper",
15
+ componentId: "sc-gzjw07-0"
16
+ })(["display:flex;align-items:center;gap:", "px;width:100%;min-width:0;", ""], TAGS_GAP, function (_ref) {
17
+ var $collapse = _ref.$collapse;
18
+ return $collapse ? (0, _styledComponents.css)(["flex-wrap:nowrap;overflow:hidden;"]) : (0, _styledComponents.css)(["flex-wrap:wrap;"]);
19
+ });
20
+ var ItemWrapper = exports.ItemWrapper = _styledComponents["default"].div.withConfig({
21
+ displayName: "styles__ItemWrapper",
22
+ componentId: "sc-gzjw07-1"
23
+ })(["display:inline-flex;flex:0 0 auto;max-width:100%;"]);
24
+ var TagLabel = exports.TagLabel = (0, _styledComponents["default"])(_Typography.Typography).withConfig({
25
+ displayName: "styles__TagLabel",
26
+ componentId: "sc-gzjw07-2"
27
+ })(["overflow:hidden;text-overflow:ellipsis;white-space:nowrap;"]);
28
+ var TagRemove = exports.TagRemove = _styledComponents["default"].button.withConfig({
29
+ displayName: "styles__TagRemove",
30
+ componentId: "sc-gzjw07-3"
31
+ })(["display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:14px;height:14px;padding:0;border:none;background:none;color:inherit;font-size:16px;line-height:1;cursor:pointer;"]);
@@ -1,5 +1,6 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { TProps as TInputProps } from './components/Input';
3
+ import { TProps as TChipProps } from '../../common/Chip';
3
4
  export type TOption<TValue> = {
4
5
  label: string;
5
6
  value: TValue;
@@ -11,9 +12,7 @@ export type TGroup = {
11
12
  id: string;
12
13
  entity?: unknown;
13
14
  };
14
- export type TProps<TValue> = Pick<TInputProps, 'label' | 'hasError' | 'placeholder' | 'name' | 'size' | 'onBlur' | 'required'> & {
15
- value: TValue | null;
16
- onChange: (value: TValue | null) => void;
15
+ type TSharedProps<TValue> = Pick<TInputProps, 'label' | 'hasError' | 'placeholder' | 'name' | 'size' | 'onBlur' | 'required'> & {
17
16
  options: TOption<TValue>[];
18
17
  groups?: TGroup[];
19
18
  isResetButtonEnabled?: boolean;
@@ -31,4 +30,18 @@ export type TProps<TValue> = Pick<TInputProps, 'label' | 'hasError' | 'placehold
31
30
  dropdownWidth?: string;
32
31
  useModernStyles?: boolean;
33
32
  };
34
- export declare const Select: <TValue extends string | number>({ label, hasError, placeholder, name, value, renderValue, onChange, options, groups, isResetButtonEnabled, size, renderOption, dropdownHeader, isDrawerOptions, renderGroup, scrollbarMaxHeight, scrollbarHeader, emptyOptionsLabel, isLoading, onBlur, required, usePadding, dropdownWidth, useModernStyles, }: TProps<TValue>) => import("react/jsx-runtime").JSX.Element;
33
+ export type TProps<TValue> = TSharedProps<TValue> & {
34
+ isMultiple?: false;
35
+ value: TValue | null;
36
+ onChange: (value: TValue | null) => void;
37
+ };
38
+ export type TMultipleProps<TValue> = TSharedProps<TValue> & {
39
+ isMultiple: true;
40
+ value: TValue[];
41
+ onChange: (value: TValue[]) => void;
42
+ collapseTags?: boolean;
43
+ chipProps?: Partial<Omit<TChipProps, 'label'>>;
44
+ };
45
+ type TAllProps<TValue> = TProps<TValue> | TMultipleProps<TValue>;
46
+ export declare const Select: <TValue extends string | number>(props: TAllProps<TValue>) => import("react/jsx-runtime").JSX.Element;
47
+ export {};