@alfalab/core-components-picker-button 7.5.0 → 7.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/{Component-4c462f50.d.ts → Component-6e9a8e09.d.ts} +3 -2
  3. package/dist/{Component-4c462f50.js → Component-6e9a8e09.js} +6 -7
  4. package/dist/Component.d.ts +26 -4
  5. package/dist/Component.js +11 -7
  6. package/dist/{esm/Component-d9d92ac3.d.ts → cssm/Component-2bc0d9b7.d.ts} +3 -2
  7. package/dist/cssm/{Component-aeb02c1b.js → Component-2bc0d9b7.js} +5 -6
  8. package/dist/cssm/Component.d.ts +26 -4
  9. package/dist/cssm/Component.js +10 -6
  10. package/dist/cssm/field/Component.js +6 -3
  11. package/dist/cssm/field/index.d.ts +1 -1
  12. package/dist/cssm/field/index.js +6 -3
  13. package/dist/cssm/index.js +6 -3
  14. package/dist/cssm/index.module.css +4 -0
  15. package/dist/cssm/utils/index.d.ts +4 -0
  16. package/dist/cssm/utils/index.js +17 -0
  17. package/dist/{cssm/Component-aeb02c1b.d.ts → esm/Component-b141ddb0.d.ts} +3 -2
  18. package/dist/esm/{Component-d9d92ac3.js → Component-b141ddb0.js} +6 -7
  19. package/dist/esm/Component.d.ts +26 -4
  20. package/dist/esm/Component.js +11 -7
  21. package/dist/esm/field/Component.js +6 -3
  22. package/dist/esm/field/index.css +3 -3
  23. package/dist/esm/field/index.d.ts +1 -1
  24. package/dist/esm/field/index.js +6 -3
  25. package/dist/esm/index.css +9 -5
  26. package/dist/esm/index.js +6 -3
  27. package/dist/esm/utils/index.d.ts +4 -0
  28. package/dist/esm/utils/index.js +13 -0
  29. package/dist/field/Component.js +6 -3
  30. package/dist/field/index.css +3 -3
  31. package/dist/field/index.d.ts +1 -1
  32. package/dist/field/index.js +6 -3
  33. package/dist/index.css +9 -5
  34. package/dist/index.js +6 -3
  35. package/dist/modern/Component.d.ts +26 -4
  36. package/dist/modern/Component.js +10 -6
  37. package/dist/modern/field/Component.d.ts +3 -2
  38. package/dist/modern/field/Component.js +10 -7
  39. package/dist/modern/field/index.css +3 -3
  40. package/dist/modern/field/index.js +5 -2
  41. package/dist/modern/index.css +9 -5
  42. package/dist/modern/index.js +5 -2
  43. package/dist/modern/utils/index.d.ts +4 -0
  44. package/dist/modern/utils/index.js +13 -0
  45. package/dist/utils/index.d.ts +4 -0
  46. package/dist/utils/index.js +17 -0
  47. package/package.json +4 -4
package/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [7.6.0](https://github.com/alfa-laboratory/core-components/compare/@alfalab/core-components-picker-button@7.5.0...@alfalab/core-components-picker-button@7.6.0) (2022-03-03)
7
+
8
+
9
+ ### Features
10
+
11
+ * **picker-button:** added new view and updated dropdown options ([#1013](https://github.com/alfa-laboratory/core-components/issues/1013)) ([050fb3e](https://github.com/alfa-laboratory/core-components/commit/050fb3eb6fd6dde057bbfcad5dd807d354125b63))
12
+
13
+
14
+
15
+
16
+
6
17
  # [7.5.0](https://github.com/alfa-laboratory/core-components/compare/@alfalab/core-components-picker-button@7.4.3...@alfalab/core-components-picker-button@7.5.0) (2022-03-01)
7
18
 
8
19
 
@@ -5,7 +5,7 @@ import { ReactNode, FC, RefAttributes, AriaAttributes, FocusEvent, MouseEvent, R
5
5
  import { CSSTransitionProps } from "react-transition-group/CSSTransition";
6
6
  import { BasePlacement, VariationPlacement } from "@popperjs/core";
7
7
  import { ButtonProps } from "@alfalab/core-components-button";
8
- import { PickerButtonSize } from "./index";
8
+ import { PickerButtonSize, PickerButtonVariant } from "./Component";
9
9
  declare function __extends(d: any, b: any): void;
10
10
  declare function __rest(s: any, e: any): {};
11
11
  declare function __decorate(decorators: any, target: any, key: any, desc: any, ...args: any[]): any;
@@ -869,6 +869,7 @@ declare const FormControl: React.ForwardRefExoticComponent<React.HTMLAttributes<
869
869
  type BaseFieldProps = FieldProps;
870
870
  type FieldProps$0 = Omit<BaseFieldProps, 'size' | 'hint' | 'success' | 'error' | 'placeholder'> & ButtonProps & {
871
871
  buttonSize?: PickerButtonSize;
872
+ buttonVariant?: PickerButtonVariant;
872
873
  };
873
- declare const Field: ({ buttonSize, view, label, open, multiple, rightAddons, Arrow, innerProps, className, selected, selectedMultiple, valueRenderer, ...restProps }: FieldProps$0) => JSX.Element;
874
+ declare const Field: ({ buttonSize, buttonVariant, view, label, open, multiple, rightAddons, Arrow, innerProps, className, selected, selectedMultiple, valueRenderer, ...restProps }: FieldProps$0) => JSX.Element;
874
875
  export { __extends, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault, __classPrivateFieldGet, __classPrivateFieldSet, __assign, __createBinding, OptionShape, GroupShape, BaseSelectProps, FieldProps, ArrowProps, OptionsListProps, OptgroupProps, OptionProps, CheckmarkProps, stackingOrder, StackingContext, StackProps, Stack, PortalProps, Portal, PORTAL_CONTAINER_ATTRIBUTE, getDefaultPortalContainer, setRef, FormControlProps, FormControl, Field };
@@ -3,8 +3,7 @@
3
3
  var React = require('react');
4
4
  var cn = require('classnames');
5
5
  var coreComponentsButton = require('@alfalab/core-components-button');
6
- var ArrowDownMIcon = require('@alfalab/icons-classic/ArrowDownMIcon');
7
- var ArrowDownSIcon = require('@alfalab/icons-classic/ArrowDownSIcon');
6
+ var utils_index = require('./utils/index.js');
8
7
 
9
8
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
9
 
@@ -50,17 +49,17 @@ function __rest(s, e) {
50
49
  return t;
51
50
  }
52
51
 
53
- var styles = {"iconContainer":"picker-button__iconContainer_p0806","open":"picker-button__open_p0806"};
52
+ var styles = {"iconContainer":"picker-button__iconContainer_h15km","open":"picker-button__open_h15km"};
54
53
  require('./field/index.css')
55
54
 
56
55
  var Field = function (_a) {
57
- var _b = _a.buttonSize, buttonSize = _b === void 0 ? 'm' : _b, view = _a.view, label = _a.label, open = _a.open, multiple = _a.multiple, rightAddons = _a.rightAddons, Arrow = _a.Arrow, innerProps = _a.innerProps, className = _a.className, selected = _a.selected, selectedMultiple = _a.selectedMultiple, valueRenderer = _a.valueRenderer, restProps = __rest(_a, ["buttonSize", "view", "label", "open", "multiple", "rightAddons", "Arrow", "innerProps", "className", "selected", "selectedMultiple", "valueRenderer"]);
58
- var Icon = buttonSize === 'xs' ? ArrowDownSIcon.ArrowDownSIcon : ArrowDownMIcon.ArrowDownMIcon;
56
+ var _b = _a.buttonSize, buttonSize = _b === void 0 ? 'm' : _b, _c = _a.buttonVariant, buttonVariant = _c === void 0 ? 'default' : _c, view = _a.view, label = _a.label, open = _a.open, multiple = _a.multiple, rightAddons = _a.rightAddons, Arrow = _a.Arrow, innerProps = _a.innerProps, className = _a.className, selected = _a.selected, selectedMultiple = _a.selectedMultiple, valueRenderer = _a.valueRenderer, restProps = __rest(_a, ["buttonSize", "buttonVariant", "view", "label", "open", "multiple", "rightAddons", "Arrow", "innerProps", "className", "selected", "selectedMultiple", "valueRenderer"]);
57
+ var Icon = utils_index.getIcon(buttonVariant, buttonSize);
59
58
  var ref = innerProps.ref, restInnerProps = __rest(innerProps, ["ref"]);
60
59
  var buttonProps = exports.__assign(exports.__assign({}, restProps), restInnerProps);
61
60
  return (React__default['default'].createElement("div", { ref: ref },
62
- React__default['default'].createElement(coreComponentsButton.Button, exports.__assign({}, buttonProps, { rightAddons: rightAddons !== null && rightAddons !== void 0 ? rightAddons : (React__default['default'].createElement("span", { className: cn__default['default'](styles.iconContainer, open && styles.open) },
63
- React__default['default'].createElement(Icon, { "data-test-id": 'picker-button-icon' }))), block: true, view: view, size: buttonSize, className: cn__default['default'](styles.component, view === 'primary' && styles.primary, className) }), label)));
61
+ React__default['default'].createElement(coreComponentsButton.Button, exports.__assign({}, buttonProps, { rightAddons: rightAddons !== null && rightAddons !== void 0 ? rightAddons : (React__default['default'].createElement("span", { className: cn__default['default'](styles.iconContainer, buttonVariant !== 'compact' && open && styles.open) },
62
+ React__default['default'].createElement(Icon, { "data-test-id": 'picker-button-icon' }))), block: true, view: view, size: buttonSize, className: cn__default['default'](styles.component, view === 'primary' && styles.primary, className) }), buttonVariant !== 'compact' && label)));
64
63
  };
65
64
 
66
65
  exports.Field = Field;
@@ -1,18 +1,40 @@
1
1
  /// <reference types="react" />
2
2
  import React from 'react';
3
+ import { FC, SVGProps } from "react";
3
4
  import { ButtonProps } from "@alfalab/core-components-button";
4
- import { BaseSelectProps } from "@alfalab/core-components-select";
5
+ import { BaseSelectProps, OptionShape } from "@alfalab/core-components-select";
5
6
  type PickerButtonSize = 'xxs' | 'xs' | 's' | 'm' | 'l' | 'xl';
6
- type PickerButtonProps = Omit<BaseSelectProps, 'Field' | 'placeholder' | 'Arrow' | 'autocomplete' | 'size' | 'onFocus' | 'selected' | 'closeOnSelect' | 'multiple' | 'fieldProps' | 'hint' | 'allowUnselect'> & Pick<ButtonProps, 'view' | 'loading' | 'leftAddons' | 'rightAddons'> & {
7
+ type PickerButtonVariant = 'default' | 'compact';
8
+ type PickerButtonProps = Omit<BaseSelectProps, 'Field' | 'placeholder' | 'Arrow' | 'autocomplete' | 'size' | 'onFocus' | 'selected' | 'closeOnSelect' | 'multiple' | 'fieldProps' | 'hint' | 'allowUnselect' | 'options'> & Pick<ButtonProps, 'view' | 'loading' | 'leftAddons' | 'rightAddons'> & {
9
+ options: Array<OptionShape & {
10
+ /**
11
+ * Иконка, отображающаяся слева от текстового представления пункта
12
+ */
13
+ icon?: FC<SVGProps<SVGSVGElement>>;
14
+ }>;
7
15
  /**
8
16
  * Размер кнопки
9
17
  */
10
18
  size?: PickerButtonSize;
19
+ /**
20
+ * Тип кнопки
21
+ */
22
+ variant?: PickerButtonVariant;
11
23
  };
12
- declare const PickerButton: React.ForwardRefExoticComponent<Pick<BaseSelectProps, "className" | "dataTestId" | "label" | "block" | "id" | "onBlur" | "onChange" | "onScroll" | "disabled" | "name" | "fieldClassName" | "error" | "preventFlip" | "popperClassName" | "open" | "options" | "valueRenderer" | "Optgroup" | "visibleOptions" | "Option" | "optionsListClassName" | "optionClassName" | "circularNavigation" | "nativeSelect" | "defaultOpen" | "popoverPosition" | "optionsListWidth" | "optionsSize" | "optionsListProps" | "optionProps" | "onOpen" | "OptionsList" | "updatePopover" | "zIndexPopover" | "showEmptyOptionsList"> & Pick<Partial<import("@alfalab/core-components-button").ComponentProps & React.AnchorHTMLAttributes<HTMLAnchorElement>> | Partial<import("@alfalab/core-components-button").ComponentProps & React.ButtonHTMLAttributes<HTMLButtonElement>>, "view" | "leftAddons" | "rightAddons" | "loading"> & {
24
+ declare const PickerButton: React.ForwardRefExoticComponent<Pick<BaseSelectProps, "className" | "dataTestId" | "label" | "block" | "id" | "onBlur" | "onChange" | "onScroll" | "disabled" | "name" | "fieldClassName" | "error" | "preventFlip" | "popperClassName" | "open" | "valueRenderer" | "Optgroup" | "visibleOptions" | "Option" | "optionsListClassName" | "optionClassName" | "circularNavigation" | "nativeSelect" | "defaultOpen" | "popoverPosition" | "optionsListWidth" | "optionsSize" | "optionsListProps" | "optionProps" | "onOpen" | "OptionsList" | "updatePopover" | "zIndexPopover" | "showEmptyOptionsList"> & Pick<Partial<import("@alfalab/core-components-button").ComponentProps & React.AnchorHTMLAttributes<HTMLAnchorElement>> | Partial<import("@alfalab/core-components-button").ComponentProps & React.ButtonHTMLAttributes<HTMLButtonElement>>, "view" | "leftAddons" | "rightAddons" | "loading"> & {
25
+ options: (OptionShape & {
26
+ /**
27
+ * Иконка, отображающаяся слева от текстового представления пункта
28
+ */
29
+ icon?: React.FC<React.SVGProps<SVGSVGElement>> | undefined;
30
+ })[];
13
31
  /**
14
32
  * Размер кнопки
15
33
  */
16
34
  size?: "s" | "xxs" | "xs" | "m" | "l" | "xl" | undefined;
35
+ /**
36
+ * Тип кнопки
37
+ */
38
+ variant?: "default" | "compact" | undefined;
17
39
  } & React.RefAttributes<HTMLInputElement>>;
18
- export { PickerButtonSize, PickerButtonProps, PickerButton };
40
+ export { PickerButtonSize, PickerButtonVariant, PickerButtonProps, PickerButton };
package/dist/Component.js CHANGED
@@ -2,37 +2,41 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var field_Component = require('./Component-4c462f50.js');
5
+ var field_Component = require('./Component-6e9a8e09.js');
6
6
  var React = require('react');
7
7
  var cn = require('classnames');
8
8
  var coreComponentsSelect = require('@alfalab/core-components-select');
9
9
  require('@alfalab/core-components-button');
10
- require('@alfalab/icons-classic/ArrowDownMIcon');
11
- require('@alfalab/icons-classic/ArrowDownSIcon');
10
+ require('@alfalab/icons-glyph/ChevronDownMIcon');
11
+ require('@alfalab/icons-glyph/ChevronDownCompactSIcon');
12
+ require('@alfalab/icons-glyph/MoreMIcon');
13
+ require('@alfalab/icons-glyph/MoreSIcon');
14
+ require('./utils/index.js');
12
15
 
13
16
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
14
17
 
15
18
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
16
19
  var cn__default = /*#__PURE__*/_interopDefaultLegacy(cn);
17
20
 
18
- var styles = {"container":"picker-button__container_12ijs","optionsPopover":"picker-button__optionsPopover_12ijs","sideGap":"picker-button__sideGap_12ijs","optionsListContainer":"picker-button__optionsListContainer_12ijs"};
21
+ var styles = {"container":"picker-button__container_lu5mb","optionsPopover":"picker-button__optionsPopover_lu5mb","sideGap":"picker-button__sideGap_lu5mb","optionsListContainer":"picker-button__optionsListContainer_lu5mb","option":"picker-button__option_lu5mb"};
19
22
  require('./index.css')
20
23
 
21
24
  var SIDE_POSITIONS = ['right', 'right-start', 'right-end', 'left', 'left-start', 'left-end'];
22
25
  var PickerButton = React.forwardRef(function (_a, ref) {
23
26
  var _b;
24
- var _c = _a.OptionsList, OptionsList = _c === void 0 ? coreComponentsSelect.OptionsList : _c, _d = _a.Optgroup, Optgroup = _d === void 0 ? coreComponentsSelect.Optgroup : _d, _e = _a.Option, Option = _e === void 0 ? coreComponentsSelect.Option : _e, view = _a.view, loading = _a.loading, _f = _a.size, size = _f === void 0 ? 'm' : _f, className = _a.className, leftAddons = _a.leftAddons, rightAddons = _a.rightAddons, popperClassName = _a.popperClassName, optionsListClassName = _a.optionsListClassName, restProps = field_Component.__rest(_a, ["OptionsList", "Optgroup", "Option", "view", "loading", "size", "className", "leftAddons", "rightAddons", "popperClassName", "optionsListClassName"]);
27
+ var _c = _a.OptionsList, OptionsList = _c === void 0 ? coreComponentsSelect.OptionsList : _c, _d = _a.Optgroup, Optgroup = _d === void 0 ? coreComponentsSelect.Optgroup : _d, _e = _a.Option, Option = _e === void 0 ? coreComponentsSelect.Option : _e, view = _a.view, loading = _a.loading, _f = _a.size, size = _f === void 0 ? 'm' : _f, _g = _a.variant, variant = _g === void 0 ? 'default' : _g, className = _a.className, leftAddons = _a.leftAddons, rightAddons = _a.rightAddons, popperClassName = _a.popperClassName, optionsListClassName = _a.optionsListClassName, optionClassName = _a.optionClassName, restProps = field_Component.__rest(_a, ["OptionsList", "Optgroup", "Option", "view", "loading", "size", "variant", "className", "leftAddons", "rightAddons", "popperClassName", "optionsListClassName", "optionClassName"]);
25
28
  var isSideGap = !!restProps.popoverPosition && SIDE_POSITIONS.includes(restProps.popoverPosition);
26
- return (React__default['default'].createElement(coreComponentsSelect.BaseSelect, field_Component.__assign({}, restProps, { ref: ref, Option: Option, Field: field_Component.Field, size: size === 'm' ? 'm' : 's', fieldProps: {
29
+ return (React__default['default'].createElement(coreComponentsSelect.BaseSelect, field_Component.__assign({}, restProps, { optionProps: { Checkmark: null }, ref: ref, Option: Option, Field: field_Component.Field, size: size === 'm' ? 'm' : 's', fieldProps: {
27
30
  view: view,
28
31
  loading: loading,
29
32
  /** size у select, button несовместимы */
30
33
  buttonSize: size,
34
+ buttonVariant: variant,
31
35
  leftAddons: leftAddons,
32
36
  rightAddons: rightAddons,
33
37
  }, Optgroup: Optgroup, OptionsList: OptionsList, className: cn__default['default'](styles.container, className), popperClassName: cn__default['default'](styles.optionsPopover, popperClassName, (_b = {},
34
38
  _b[styles.sideGap] = isSideGap,
35
- _b)), optionsListClassName: cn__default['default'](styles.optionsListContainer, optionsListClassName), selected: [], closeOnSelect: true })));
39
+ _b)), optionsListClassName: cn__default['default'](styles.optionsListContainer, optionsListClassName), optionClassName: cn__default['default'](styles.option, optionClassName), selected: [], closeOnSelect: true })));
36
40
  });
37
41
 
38
42
  exports.PickerButton = PickerButton;
@@ -5,7 +5,7 @@ import { ReactNode, FC, RefAttributes, AriaAttributes, FocusEvent, MouseEvent, R
5
5
  import { CSSTransitionProps } from "react-transition-group/CSSTransition";
6
6
  import { BasePlacement, VariationPlacement } from "@popperjs/core";
7
7
  import { ButtonProps } from "@alfalab/core-components-button";
8
- import { PickerButtonSize } from "./index";
8
+ import { PickerButtonSize, PickerButtonVariant } from "./Component";
9
9
  declare function __extends(d: any, b: any): void;
10
10
  declare function __rest(s: any, e: any): {};
11
11
  declare function __decorate(decorators: any, target: any, key: any, desc: any, ...args: any[]): any;
@@ -869,6 +869,7 @@ declare const FormControl: React.ForwardRefExoticComponent<React.HTMLAttributes<
869
869
  type BaseFieldProps = FieldProps;
870
870
  type FieldProps$0 = Omit<BaseFieldProps, 'size' | 'hint' | 'success' | 'error' | 'placeholder'> & ButtonProps & {
871
871
  buttonSize?: PickerButtonSize;
872
+ buttonVariant?: PickerButtonVariant;
872
873
  };
873
- declare const Field: ({ buttonSize, view, label, open, multiple, rightAddons, Arrow, innerProps, className, selected, selectedMultiple, valueRenderer, ...restProps }: FieldProps$0) => JSX.Element;
874
+ declare const Field: ({ buttonSize, buttonVariant, view, label, open, multiple, rightAddons, Arrow, innerProps, className, selected, selectedMultiple, valueRenderer, ...restProps }: FieldProps$0) => JSX.Element;
874
875
  export { __extends, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault, __classPrivateFieldGet, __classPrivateFieldSet, __assign, __createBinding, OptionShape, GroupShape, BaseSelectProps, FieldProps, ArrowProps, OptionsListProps, OptgroupProps, OptionProps, CheckmarkProps, stackingOrder, StackingContext, StackProps, Stack, PortalProps, Portal, PORTAL_CONTAINER_ATTRIBUTE, getDefaultPortalContainer, setRef, FormControlProps, FormControl, Field };
@@ -3,8 +3,7 @@
3
3
  var React = require('react');
4
4
  var cn = require('classnames');
5
5
  var coreComponentsButton = require('@alfalab/core-components-button/dist/cssm');
6
- var ArrowDownMIcon = require('@alfalab/icons-classic/ArrowDownMIcon');
7
- var ArrowDownSIcon = require('@alfalab/icons-classic/ArrowDownSIcon');
6
+ var utils_index = require('./utils/index.js');
8
7
  var styles = require('./field/index.module.css');
9
8
 
10
9
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -53,13 +52,13 @@ function __rest(s, e) {
53
52
  }
54
53
 
55
54
  var Field = function (_a) {
56
- var _b = _a.buttonSize, buttonSize = _b === void 0 ? 'm' : _b, view = _a.view, label = _a.label, open = _a.open, multiple = _a.multiple, rightAddons = _a.rightAddons, Arrow = _a.Arrow, innerProps = _a.innerProps, className = _a.className, selected = _a.selected, selectedMultiple = _a.selectedMultiple, valueRenderer = _a.valueRenderer, restProps = __rest(_a, ["buttonSize", "view", "label", "open", "multiple", "rightAddons", "Arrow", "innerProps", "className", "selected", "selectedMultiple", "valueRenderer"]);
57
- var Icon = buttonSize === 'xs' ? ArrowDownSIcon.ArrowDownSIcon : ArrowDownMIcon.ArrowDownMIcon;
55
+ var _b = _a.buttonSize, buttonSize = _b === void 0 ? 'm' : _b, _c = _a.buttonVariant, buttonVariant = _c === void 0 ? 'default' : _c, view = _a.view, label = _a.label, open = _a.open, multiple = _a.multiple, rightAddons = _a.rightAddons, Arrow = _a.Arrow, innerProps = _a.innerProps, className = _a.className, selected = _a.selected, selectedMultiple = _a.selectedMultiple, valueRenderer = _a.valueRenderer, restProps = __rest(_a, ["buttonSize", "buttonVariant", "view", "label", "open", "multiple", "rightAddons", "Arrow", "innerProps", "className", "selected", "selectedMultiple", "valueRenderer"]);
56
+ var Icon = utils_index.getIcon(buttonVariant, buttonSize);
58
57
  var ref = innerProps.ref, restInnerProps = __rest(innerProps, ["ref"]);
59
58
  var buttonProps = exports.__assign(exports.__assign({}, restProps), restInnerProps);
60
59
  return (React__default['default'].createElement("div", { ref: ref },
61
- React__default['default'].createElement(coreComponentsButton.Button, exports.__assign({}, buttonProps, { rightAddons: rightAddons !== null && rightAddons !== void 0 ? rightAddons : (React__default['default'].createElement("span", { className: cn__default['default'](styles__default['default'].iconContainer, open && styles__default['default'].open) },
62
- React__default['default'].createElement(Icon, { "data-test-id": 'picker-button-icon' }))), block: true, view: view, size: buttonSize, className: cn__default['default'](styles__default['default'].component, view === 'primary' && styles__default['default'].primary, className) }), label)));
60
+ React__default['default'].createElement(coreComponentsButton.Button, exports.__assign({}, buttonProps, { rightAddons: rightAddons !== null && rightAddons !== void 0 ? rightAddons : (React__default['default'].createElement("span", { className: cn__default['default'](styles__default['default'].iconContainer, buttonVariant !== 'compact' && open && styles__default['default'].open) },
61
+ React__default['default'].createElement(Icon, { "data-test-id": 'picker-button-icon' }))), block: true, view: view, size: buttonSize, className: cn__default['default'](styles__default['default'].component, view === 'primary' && styles__default['default'].primary, className) }), buttonVariant !== 'compact' && label)));
63
62
  };
64
63
 
65
64
  exports.Field = Field;
@@ -1,18 +1,40 @@
1
1
  /// <reference types="react" />
2
2
  import React from 'react';
3
+ import { FC, SVGProps } from "react";
3
4
  import { ButtonProps } from "@alfalab/core-components-button";
4
- import { BaseSelectProps } from "@alfalab/core-components-select";
5
+ import { BaseSelectProps, OptionShape } from "@alfalab/core-components-select";
5
6
  type PickerButtonSize = 'xxs' | 'xs' | 's' | 'm' | 'l' | 'xl';
6
- type PickerButtonProps = Omit<BaseSelectProps, 'Field' | 'placeholder' | 'Arrow' | 'autocomplete' | 'size' | 'onFocus' | 'selected' | 'closeOnSelect' | 'multiple' | 'fieldProps' | 'hint' | 'allowUnselect'> & Pick<ButtonProps, 'view' | 'loading' | 'leftAddons' | 'rightAddons'> & {
7
+ type PickerButtonVariant = 'default' | 'compact';
8
+ type PickerButtonProps = Omit<BaseSelectProps, 'Field' | 'placeholder' | 'Arrow' | 'autocomplete' | 'size' | 'onFocus' | 'selected' | 'closeOnSelect' | 'multiple' | 'fieldProps' | 'hint' | 'allowUnselect' | 'options'> & Pick<ButtonProps, 'view' | 'loading' | 'leftAddons' | 'rightAddons'> & {
9
+ options: Array<OptionShape & {
10
+ /**
11
+ * Иконка, отображающаяся слева от текстового представления пункта
12
+ */
13
+ icon?: FC<SVGProps<SVGSVGElement>>;
14
+ }>;
7
15
  /**
8
16
  * Размер кнопки
9
17
  */
10
18
  size?: PickerButtonSize;
19
+ /**
20
+ * Тип кнопки
21
+ */
22
+ variant?: PickerButtonVariant;
11
23
  };
12
- declare const PickerButton: React.ForwardRefExoticComponent<Pick<BaseSelectProps, "className" | "dataTestId" | "label" | "block" | "id" | "onBlur" | "onChange" | "onScroll" | "disabled" | "name" | "fieldClassName" | "error" | "preventFlip" | "popperClassName" | "open" | "options" | "valueRenderer" | "Optgroup" | "visibleOptions" | "Option" | "optionsListClassName" | "optionClassName" | "circularNavigation" | "nativeSelect" | "defaultOpen" | "popoverPosition" | "optionsListWidth" | "optionsSize" | "optionsListProps" | "optionProps" | "onOpen" | "OptionsList" | "updatePopover" | "zIndexPopover" | "showEmptyOptionsList"> & Pick<Partial<import("@alfalab/core-components-button").ComponentProps & React.AnchorHTMLAttributes<HTMLAnchorElement>> | Partial<import("@alfalab/core-components-button").ComponentProps & React.ButtonHTMLAttributes<HTMLButtonElement>>, "view" | "leftAddons" | "rightAddons" | "loading"> & {
24
+ declare const PickerButton: React.ForwardRefExoticComponent<Pick<BaseSelectProps, "className" | "dataTestId" | "label" | "block" | "id" | "onBlur" | "onChange" | "onScroll" | "disabled" | "name" | "fieldClassName" | "error" | "preventFlip" | "popperClassName" | "open" | "valueRenderer" | "Optgroup" | "visibleOptions" | "Option" | "optionsListClassName" | "optionClassName" | "circularNavigation" | "nativeSelect" | "defaultOpen" | "popoverPosition" | "optionsListWidth" | "optionsSize" | "optionsListProps" | "optionProps" | "onOpen" | "OptionsList" | "updatePopover" | "zIndexPopover" | "showEmptyOptionsList"> & Pick<Partial<import("@alfalab/core-components-button").ComponentProps & React.AnchorHTMLAttributes<HTMLAnchorElement>> | Partial<import("@alfalab/core-components-button").ComponentProps & React.ButtonHTMLAttributes<HTMLButtonElement>>, "view" | "leftAddons" | "rightAddons" | "loading"> & {
25
+ options: (OptionShape & {
26
+ /**
27
+ * Иконка, отображающаяся слева от текстового представления пункта
28
+ */
29
+ icon?: React.FC<React.SVGProps<SVGSVGElement>> | undefined;
30
+ })[];
13
31
  /**
14
32
  * Размер кнопки
15
33
  */
16
34
  size?: "s" | "xxs" | "xs" | "m" | "l" | "xl" | undefined;
35
+ /**
36
+ * Тип кнопки
37
+ */
38
+ variant?: "default" | "compact" | undefined;
17
39
  } & React.RefAttributes<HTMLInputElement>>;
18
- export { PickerButtonSize, PickerButtonProps, PickerButton };
40
+ export { PickerButtonSize, PickerButtonVariant, PickerButtonProps, PickerButton };
@@ -2,13 +2,16 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var field_Component = require('./Component-aeb02c1b.js');
5
+ var field_Component = require('./Component-2bc0d9b7.js');
6
6
  var React = require('react');
7
7
  var cn = require('classnames');
8
8
  var coreComponentsSelect = require('@alfalab/core-components-select/dist/cssm');
9
9
  require('@alfalab/core-components-button/dist/cssm');
10
- require('@alfalab/icons-classic/ArrowDownMIcon');
11
- require('@alfalab/icons-classic/ArrowDownSIcon');
10
+ require('@alfalab/icons-glyph/ChevronDownMIcon');
11
+ require('@alfalab/icons-glyph/ChevronDownCompactSIcon');
12
+ require('@alfalab/icons-glyph/MoreMIcon');
13
+ require('@alfalab/icons-glyph/MoreSIcon');
14
+ require('./utils/index.js');
12
15
  require('./field/index.module.css');
13
16
  var styles = require('./index.module.css');
14
17
 
@@ -21,18 +24,19 @@ var styles__default = /*#__PURE__*/_interopDefaultLegacy(styles);
21
24
  var SIDE_POSITIONS = ['right', 'right-start', 'right-end', 'left', 'left-start', 'left-end'];
22
25
  var PickerButton = React.forwardRef(function (_a, ref) {
23
26
  var _b;
24
- var _c = _a.OptionsList, OptionsList = _c === void 0 ? coreComponentsSelect.OptionsList : _c, _d = _a.Optgroup, Optgroup = _d === void 0 ? coreComponentsSelect.Optgroup : _d, _e = _a.Option, Option = _e === void 0 ? coreComponentsSelect.Option : _e, view = _a.view, loading = _a.loading, _f = _a.size, size = _f === void 0 ? 'm' : _f, className = _a.className, leftAddons = _a.leftAddons, rightAddons = _a.rightAddons, popperClassName = _a.popperClassName, optionsListClassName = _a.optionsListClassName, restProps = field_Component.__rest(_a, ["OptionsList", "Optgroup", "Option", "view", "loading", "size", "className", "leftAddons", "rightAddons", "popperClassName", "optionsListClassName"]);
27
+ var _c = _a.OptionsList, OptionsList = _c === void 0 ? coreComponentsSelect.OptionsList : _c, _d = _a.Optgroup, Optgroup = _d === void 0 ? coreComponentsSelect.Optgroup : _d, _e = _a.Option, Option = _e === void 0 ? coreComponentsSelect.Option : _e, view = _a.view, loading = _a.loading, _f = _a.size, size = _f === void 0 ? 'm' : _f, _g = _a.variant, variant = _g === void 0 ? 'default' : _g, className = _a.className, leftAddons = _a.leftAddons, rightAddons = _a.rightAddons, popperClassName = _a.popperClassName, optionsListClassName = _a.optionsListClassName, optionClassName = _a.optionClassName, restProps = field_Component.__rest(_a, ["OptionsList", "Optgroup", "Option", "view", "loading", "size", "variant", "className", "leftAddons", "rightAddons", "popperClassName", "optionsListClassName", "optionClassName"]);
25
28
  var isSideGap = !!restProps.popoverPosition && SIDE_POSITIONS.includes(restProps.popoverPosition);
26
- return (React__default['default'].createElement(coreComponentsSelect.BaseSelect, field_Component.__assign({}, restProps, { ref: ref, Option: Option, Field: field_Component.Field, size: size === 'm' ? 'm' : 's', fieldProps: {
29
+ return (React__default['default'].createElement(coreComponentsSelect.BaseSelect, field_Component.__assign({}, restProps, { optionProps: { Checkmark: null }, ref: ref, Option: Option, Field: field_Component.Field, size: size === 'm' ? 'm' : 's', fieldProps: {
27
30
  view: view,
28
31
  loading: loading,
29
32
  /** size у select, button несовместимы */
30
33
  buttonSize: size,
34
+ buttonVariant: variant,
31
35
  leftAddons: leftAddons,
32
36
  rightAddons: rightAddons,
33
37
  }, Optgroup: Optgroup, OptionsList: OptionsList, className: cn__default['default'](styles__default['default'].container, className), popperClassName: cn__default['default'](styles__default['default'].optionsPopover, popperClassName, (_b = {},
34
38
  _b[styles__default['default'].sideGap] = isSideGap,
35
- _b)), optionsListClassName: cn__default['default'](styles__default['default'].optionsListContainer, optionsListClassName), selected: [], closeOnSelect: true })));
39
+ _b)), optionsListClassName: cn__default['default'](styles__default['default'].optionsListContainer, optionsListClassName), optionClassName: cn__default['default'](styles__default['default'].option, optionClassName), selected: [], closeOnSelect: true })));
36
40
  });
37
41
 
38
42
  exports.PickerButton = PickerButton;
@@ -2,12 +2,15 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var field_Component = require('../Component-aeb02c1b.js');
5
+ var field_Component = require('../Component-2bc0d9b7.js');
6
6
  require('react');
7
7
  require('classnames');
8
8
  require('@alfalab/core-components-button/dist/cssm');
9
- require('@alfalab/icons-classic/ArrowDownMIcon');
10
- require('@alfalab/icons-classic/ArrowDownSIcon');
9
+ require('@alfalab/icons-glyph/ChevronDownMIcon');
10
+ require('@alfalab/icons-glyph/ChevronDownCompactSIcon');
11
+ require('@alfalab/icons-glyph/MoreMIcon');
12
+ require('@alfalab/icons-glyph/MoreSIcon');
13
+ require('../utils/index.js');
11
14
  require('./index.module.css');
12
15
 
13
16
 
@@ -1 +1 @@
1
- export * from "../Component-aeb02c1b";
1
+ export * from "../Component-2bc0d9b7";
@@ -2,12 +2,15 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var field_Component = require('../Component-aeb02c1b.js');
5
+ var field_Component = require('../Component-2bc0d9b7.js');
6
6
  require('react');
7
7
  require('classnames');
8
8
  require('@alfalab/core-components-button/dist/cssm');
9
- require('@alfalab/icons-classic/ArrowDownMIcon');
10
- require('@alfalab/icons-classic/ArrowDownSIcon');
9
+ require('@alfalab/icons-glyph/ChevronDownMIcon');
10
+ require('@alfalab/icons-glyph/ChevronDownCompactSIcon');
11
+ require('@alfalab/icons-glyph/MoreMIcon');
12
+ require('@alfalab/icons-glyph/MoreSIcon');
13
+ require('../utils/index.js');
11
14
  require('./index.module.css');
12
15
 
13
16
 
@@ -2,13 +2,16 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- require('./Component-aeb02c1b.js');
5
+ require('./Component-2bc0d9b7.js');
6
6
  require('react');
7
7
  require('classnames');
8
8
  require('@alfalab/core-components-select/dist/cssm');
9
9
  require('@alfalab/core-components-button/dist/cssm');
10
- require('@alfalab/icons-classic/ArrowDownMIcon');
11
- require('@alfalab/icons-classic/ArrowDownSIcon');
10
+ require('@alfalab/icons-glyph/ChevronDownMIcon');
11
+ require('@alfalab/icons-glyph/ChevronDownCompactSIcon');
12
+ require('@alfalab/icons-glyph/MoreMIcon');
13
+ require('@alfalab/icons-glyph/MoreSIcon');
14
+ require('./utils/index.js');
12
15
  require('./field/index.module.css');
13
16
  require('./index.module.css');
14
17
  var Component = require('./Component.js');
@@ -8,6 +8,7 @@
8
8
  }
9
9
  :root {
10
10
  --gap-xs: 8px;
11
+ --gap-m: 16px;
11
12
  }
12
13
  :root {
13
14
  --border-radius-s: 4px;
@@ -24,3 +25,6 @@
24
25
  .optionsListContainer {
25
26
  border-radius: var(--border-radius-s);
26
27
  }
28
+ .option {
29
+ padding: 0 var(--gap-m);
30
+ }
@@ -0,0 +1,4 @@
1
+ import { FC, SVGProps } from 'react';
2
+ import { PickerButtonVariant } from "../index";
3
+ declare const getIcon: (variant: PickerButtonVariant, size: "s" | "xxs" | "xs" | "m" | "l" | "xl") => FC<SVGProps<SVGSVGElement>>;
4
+ export { getIcon };
@@ -0,0 +1,17 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var ChevronDownMIcon = require('@alfalab/icons-glyph/ChevronDownMIcon');
6
+ var ChevronDownCompactSIcon = require('@alfalab/icons-glyph/ChevronDownCompactSIcon');
7
+ var MoreMIcon = require('@alfalab/icons-glyph/MoreMIcon');
8
+ var MoreSIcon = require('@alfalab/icons-glyph/MoreSIcon');
9
+
10
+ var getIcon = function (variant, size) {
11
+ if (variant === 'compact') {
12
+ return size === 'xxs' ? MoreSIcon.MoreSIcon : MoreMIcon.MoreMIcon;
13
+ }
14
+ return size === 'xxs' ? ChevronDownCompactSIcon.ChevronDownCompactSIcon : ChevronDownMIcon.ChevronDownMIcon;
15
+ };
16
+
17
+ exports.getIcon = getIcon;
@@ -5,7 +5,7 @@ import { ReactNode, FC, RefAttributes, AriaAttributes, FocusEvent, MouseEvent, R
5
5
  import { CSSTransitionProps } from "react-transition-group/CSSTransition";
6
6
  import { BasePlacement, VariationPlacement } from "@popperjs/core";
7
7
  import { ButtonProps } from "@alfalab/core-components-button";
8
- import { PickerButtonSize } from "./index";
8
+ import { PickerButtonSize, PickerButtonVariant } from "./Component";
9
9
  declare function __extends(d: any, b: any): void;
10
10
  declare function __rest(s: any, e: any): {};
11
11
  declare function __decorate(decorators: any, target: any, key: any, desc: any, ...args: any[]): any;
@@ -869,6 +869,7 @@ declare const FormControl: React.ForwardRefExoticComponent<React.HTMLAttributes<
869
869
  type BaseFieldProps = FieldProps;
870
870
  type FieldProps$0 = Omit<BaseFieldProps, 'size' | 'hint' | 'success' | 'error' | 'placeholder'> & ButtonProps & {
871
871
  buttonSize?: PickerButtonSize;
872
+ buttonVariant?: PickerButtonVariant;
872
873
  };
873
- declare const Field: ({ buttonSize, view, label, open, multiple, rightAddons, Arrow, innerProps, className, selected, selectedMultiple, valueRenderer, ...restProps }: FieldProps$0) => JSX.Element;
874
+ declare const Field: ({ buttonSize, buttonVariant, view, label, open, multiple, rightAddons, Arrow, innerProps, className, selected, selectedMultiple, valueRenderer, ...restProps }: FieldProps$0) => JSX.Element;
874
875
  export { __extends, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault, __classPrivateFieldGet, __classPrivateFieldSet, __assign, __createBinding, OptionShape, GroupShape, BaseSelectProps, FieldProps, ArrowProps, OptionsListProps, OptgroupProps, OptionProps, CheckmarkProps, stackingOrder, StackingContext, StackProps, Stack, PortalProps, Portal, PORTAL_CONTAINER_ATTRIBUTE, getDefaultPortalContainer, setRef, FormControlProps, FormControl, Field };
@@ -1,8 +1,7 @@
1
1
  import React from 'react';
2
2
  import cn from 'classnames';
3
3
  import { Button } from '@alfalab/core-components-button/dist/esm';
4
- import { ArrowDownMIcon } from '@alfalab/icons-classic/ArrowDownMIcon';
5
- import { ArrowDownSIcon } from '@alfalab/icons-classic/ArrowDownSIcon';
4
+ import { getIcon } from './utils/index.js';
6
5
 
7
6
  /*! *****************************************************************************
8
7
  Copyright (c) Microsoft Corporation.
@@ -43,17 +42,17 @@ function __rest(s, e) {
43
42
  return t;
44
43
  }
45
44
 
46
- var styles = {"iconContainer":"picker-button__iconContainer_p0806","open":"picker-button__open_p0806"};
45
+ var styles = {"iconContainer":"picker-button__iconContainer_h15km","open":"picker-button__open_h15km"};
47
46
  require('./field/index.css')
48
47
 
49
48
  var Field = function (_a) {
50
- var _b = _a.buttonSize, buttonSize = _b === void 0 ? 'm' : _b, view = _a.view, label = _a.label, open = _a.open, multiple = _a.multiple, rightAddons = _a.rightAddons, Arrow = _a.Arrow, innerProps = _a.innerProps, className = _a.className, selected = _a.selected, selectedMultiple = _a.selectedMultiple, valueRenderer = _a.valueRenderer, restProps = __rest(_a, ["buttonSize", "view", "label", "open", "multiple", "rightAddons", "Arrow", "innerProps", "className", "selected", "selectedMultiple", "valueRenderer"]);
51
- var Icon = buttonSize === 'xs' ? ArrowDownSIcon : ArrowDownMIcon;
49
+ var _b = _a.buttonSize, buttonSize = _b === void 0 ? 'm' : _b, _c = _a.buttonVariant, buttonVariant = _c === void 0 ? 'default' : _c, view = _a.view, label = _a.label, open = _a.open, multiple = _a.multiple, rightAddons = _a.rightAddons, Arrow = _a.Arrow, innerProps = _a.innerProps, className = _a.className, selected = _a.selected, selectedMultiple = _a.selectedMultiple, valueRenderer = _a.valueRenderer, restProps = __rest(_a, ["buttonSize", "buttonVariant", "view", "label", "open", "multiple", "rightAddons", "Arrow", "innerProps", "className", "selected", "selectedMultiple", "valueRenderer"]);
50
+ var Icon = getIcon(buttonVariant, buttonSize);
52
51
  var ref = innerProps.ref, restInnerProps = __rest(innerProps, ["ref"]);
53
52
  var buttonProps = __assign(__assign({}, restProps), restInnerProps);
54
53
  return (React.createElement("div", { ref: ref },
55
- React.createElement(Button, __assign({}, buttonProps, { rightAddons: rightAddons !== null && rightAddons !== void 0 ? rightAddons : (React.createElement("span", { className: cn(styles.iconContainer, open && styles.open) },
56
- React.createElement(Icon, { "data-test-id": 'picker-button-icon' }))), block: true, view: view, size: buttonSize, className: cn(styles.component, view === 'primary' && styles.primary, className) }), label)));
54
+ React.createElement(Button, __assign({}, buttonProps, { rightAddons: rightAddons !== null && rightAddons !== void 0 ? rightAddons : (React.createElement("span", { className: cn(styles.iconContainer, buttonVariant !== 'compact' && open && styles.open) },
55
+ React.createElement(Icon, { "data-test-id": 'picker-button-icon' }))), block: true, view: view, size: buttonSize, className: cn(styles.component, view === 'primary' && styles.primary, className) }), buttonVariant !== 'compact' && label)));
57
56
  };
58
57
 
59
58
  export { Field as F, __rest as _, __assign as a };
@@ -1,18 +1,40 @@
1
1
  /// <reference types="react" />
2
2
  import React from 'react';
3
+ import { FC, SVGProps } from "react";
3
4
  import { ButtonProps } from "@alfalab/core-components-button";
4
- import { BaseSelectProps } from "@alfalab/core-components-select";
5
+ import { BaseSelectProps, OptionShape } from "@alfalab/core-components-select";
5
6
  type PickerButtonSize = 'xxs' | 'xs' | 's' | 'm' | 'l' | 'xl';
6
- type PickerButtonProps = Omit<BaseSelectProps, 'Field' | 'placeholder' | 'Arrow' | 'autocomplete' | 'size' | 'onFocus' | 'selected' | 'closeOnSelect' | 'multiple' | 'fieldProps' | 'hint' | 'allowUnselect'> & Pick<ButtonProps, 'view' | 'loading' | 'leftAddons' | 'rightAddons'> & {
7
+ type PickerButtonVariant = 'default' | 'compact';
8
+ type PickerButtonProps = Omit<BaseSelectProps, 'Field' | 'placeholder' | 'Arrow' | 'autocomplete' | 'size' | 'onFocus' | 'selected' | 'closeOnSelect' | 'multiple' | 'fieldProps' | 'hint' | 'allowUnselect' | 'options'> & Pick<ButtonProps, 'view' | 'loading' | 'leftAddons' | 'rightAddons'> & {
9
+ options: Array<OptionShape & {
10
+ /**
11
+ * Иконка, отображающаяся слева от текстового представления пункта
12
+ */
13
+ icon?: FC<SVGProps<SVGSVGElement>>;
14
+ }>;
7
15
  /**
8
16
  * Размер кнопки
9
17
  */
10
18
  size?: PickerButtonSize;
19
+ /**
20
+ * Тип кнопки
21
+ */
22
+ variant?: PickerButtonVariant;
11
23
  };
12
- declare const PickerButton: React.ForwardRefExoticComponent<Pick<BaseSelectProps, "className" | "dataTestId" | "label" | "block" | "id" | "onBlur" | "onChange" | "onScroll" | "disabled" | "name" | "fieldClassName" | "error" | "preventFlip" | "popperClassName" | "open" | "options" | "valueRenderer" | "Optgroup" | "visibleOptions" | "Option" | "optionsListClassName" | "optionClassName" | "circularNavigation" | "nativeSelect" | "defaultOpen" | "popoverPosition" | "optionsListWidth" | "optionsSize" | "optionsListProps" | "optionProps" | "onOpen" | "OptionsList" | "updatePopover" | "zIndexPopover" | "showEmptyOptionsList"> & Pick<Partial<import("@alfalab/core-components-button").ComponentProps & React.AnchorHTMLAttributes<HTMLAnchorElement>> | Partial<import("@alfalab/core-components-button").ComponentProps & React.ButtonHTMLAttributes<HTMLButtonElement>>, "view" | "leftAddons" | "rightAddons" | "loading"> & {
24
+ declare const PickerButton: React.ForwardRefExoticComponent<Pick<BaseSelectProps, "className" | "dataTestId" | "label" | "block" | "id" | "onBlur" | "onChange" | "onScroll" | "disabled" | "name" | "fieldClassName" | "error" | "preventFlip" | "popperClassName" | "open" | "valueRenderer" | "Optgroup" | "visibleOptions" | "Option" | "optionsListClassName" | "optionClassName" | "circularNavigation" | "nativeSelect" | "defaultOpen" | "popoverPosition" | "optionsListWidth" | "optionsSize" | "optionsListProps" | "optionProps" | "onOpen" | "OptionsList" | "updatePopover" | "zIndexPopover" | "showEmptyOptionsList"> & Pick<Partial<import("@alfalab/core-components-button").ComponentProps & React.AnchorHTMLAttributes<HTMLAnchorElement>> | Partial<import("@alfalab/core-components-button").ComponentProps & React.ButtonHTMLAttributes<HTMLButtonElement>>, "view" | "leftAddons" | "rightAddons" | "loading"> & {
25
+ options: (OptionShape & {
26
+ /**
27
+ * Иконка, отображающаяся слева от текстового представления пункта
28
+ */
29
+ icon?: React.FC<React.SVGProps<SVGSVGElement>> | undefined;
30
+ })[];
13
31
  /**
14
32
  * Размер кнопки
15
33
  */
16
34
  size?: "s" | "xxs" | "xs" | "m" | "l" | "xl" | undefined;
35
+ /**
36
+ * Тип кнопки
37
+ */
38
+ variant?: "default" | "compact" | undefined;
17
39
  } & React.RefAttributes<HTMLInputElement>>;
18
- export { PickerButtonSize, PickerButtonProps, PickerButton };
40
+ export { PickerButtonSize, PickerButtonVariant, PickerButtonProps, PickerButton };
@@ -1,29 +1,33 @@
1
- import { _ as __rest, a as __assign, F as Field } from './Component-d9d92ac3.js';
1
+ import { _ as __rest, a as __assign, F as Field } from './Component-b141ddb0.js';
2
2
  import React, { forwardRef } from 'react';
3
3
  import cn from 'classnames';
4
4
  import { BaseSelect, OptionsList, Optgroup, Option } from '@alfalab/core-components-select/dist/esm';
5
5
  import '@alfalab/core-components-button/dist/esm';
6
- import '@alfalab/icons-classic/ArrowDownMIcon';
7
- import '@alfalab/icons-classic/ArrowDownSIcon';
6
+ import '@alfalab/icons-glyph/ChevronDownMIcon';
7
+ import '@alfalab/icons-glyph/ChevronDownCompactSIcon';
8
+ import '@alfalab/icons-glyph/MoreMIcon';
9
+ import '@alfalab/icons-glyph/MoreSIcon';
10
+ import './utils/index.js';
8
11
 
9
- var styles = {"container":"picker-button__container_12ijs","optionsPopover":"picker-button__optionsPopover_12ijs","sideGap":"picker-button__sideGap_12ijs","optionsListContainer":"picker-button__optionsListContainer_12ijs"};
12
+ var styles = {"container":"picker-button__container_lu5mb","optionsPopover":"picker-button__optionsPopover_lu5mb","sideGap":"picker-button__sideGap_lu5mb","optionsListContainer":"picker-button__optionsListContainer_lu5mb","option":"picker-button__option_lu5mb"};
10
13
  require('./index.css')
11
14
 
12
15
  var SIDE_POSITIONS = ['right', 'right-start', 'right-end', 'left', 'left-start', 'left-end'];
13
16
  var PickerButton = forwardRef(function (_a, ref) {
14
17
  var _b;
15
- var _c = _a.OptionsList, OptionsList$1 = _c === void 0 ? OptionsList : _c, _d = _a.Optgroup, Optgroup$1 = _d === void 0 ? Optgroup : _d, _e = _a.Option, Option$1 = _e === void 0 ? Option : _e, view = _a.view, loading = _a.loading, _f = _a.size, size = _f === void 0 ? 'm' : _f, className = _a.className, leftAddons = _a.leftAddons, rightAddons = _a.rightAddons, popperClassName = _a.popperClassName, optionsListClassName = _a.optionsListClassName, restProps = __rest(_a, ["OptionsList", "Optgroup", "Option", "view", "loading", "size", "className", "leftAddons", "rightAddons", "popperClassName", "optionsListClassName"]);
18
+ var _c = _a.OptionsList, OptionsList$1 = _c === void 0 ? OptionsList : _c, _d = _a.Optgroup, Optgroup$1 = _d === void 0 ? Optgroup : _d, _e = _a.Option, Option$1 = _e === void 0 ? Option : _e, view = _a.view, loading = _a.loading, _f = _a.size, size = _f === void 0 ? 'm' : _f, _g = _a.variant, variant = _g === void 0 ? 'default' : _g, className = _a.className, leftAddons = _a.leftAddons, rightAddons = _a.rightAddons, popperClassName = _a.popperClassName, optionsListClassName = _a.optionsListClassName, optionClassName = _a.optionClassName, restProps = __rest(_a, ["OptionsList", "Optgroup", "Option", "view", "loading", "size", "variant", "className", "leftAddons", "rightAddons", "popperClassName", "optionsListClassName", "optionClassName"]);
16
19
  var isSideGap = !!restProps.popoverPosition && SIDE_POSITIONS.includes(restProps.popoverPosition);
17
- return (React.createElement(BaseSelect, __assign({}, restProps, { ref: ref, Option: Option$1, Field: Field, size: size === 'm' ? 'm' : 's', fieldProps: {
20
+ return (React.createElement(BaseSelect, __assign({}, restProps, { optionProps: { Checkmark: null }, ref: ref, Option: Option$1, Field: Field, size: size === 'm' ? 'm' : 's', fieldProps: {
18
21
  view: view,
19
22
  loading: loading,
20
23
  /** size у select, button несовместимы */
21
24
  buttonSize: size,
25
+ buttonVariant: variant,
22
26
  leftAddons: leftAddons,
23
27
  rightAddons: rightAddons,
24
28
  }, Optgroup: Optgroup$1, OptionsList: OptionsList$1, className: cn(styles.container, className), popperClassName: cn(styles.optionsPopover, popperClassName, (_b = {},
25
29
  _b[styles.sideGap] = isSideGap,
26
- _b)), optionsListClassName: cn(styles.optionsListContainer, optionsListClassName), selected: [], closeOnSelect: true })));
30
+ _b)), optionsListClassName: cn(styles.optionsListContainer, optionsListClassName), optionClassName: cn(styles.option, optionClassName), selected: [], closeOnSelect: true })));
27
31
  });
28
32
 
29
33
  export { PickerButton };
@@ -1,6 +1,9 @@
1
- export { F as Field } from '../Component-d9d92ac3.js';
1
+ export { F as Field } from '../Component-b141ddb0.js';
2
2
  import 'react';
3
3
  import 'classnames';
4
4
  import '@alfalab/core-components-button/dist/esm';
5
- import '@alfalab/icons-classic/ArrowDownMIcon';
6
- import '@alfalab/icons-classic/ArrowDownSIcon';
5
+ import '@alfalab/icons-glyph/ChevronDownMIcon';
6
+ import '@alfalab/icons-glyph/ChevronDownCompactSIcon';
7
+ import '@alfalab/icons-glyph/MoreMIcon';
8
+ import '@alfalab/icons-glyph/MoreSIcon';
9
+ import '../utils/index.js';
@@ -1,4 +1,4 @@
1
- /* hash: h1l5h */
1
+ /* hash: a0xav */
2
2
  :root {
3
3
 
4
4
  /* Hard */
@@ -10,10 +10,10 @@
10
10
  :root {
11
11
  --arrow-transform: rotate(180deg);
12
12
  }
13
- .picker-button__iconContainer_p0806 {
13
+ .picker-button__iconContainer_h15km {
14
14
  display: flex;
15
15
  transition: transform 0.15s ease-in-out;
16
16
  }
17
- .picker-button__open_p0806 {
17
+ .picker-button__open_h15km {
18
18
  transform: var(--arrow-transform);
19
19
  }
@@ -1 +1 @@
1
- export * from "../Component-d9d92ac3";
1
+ export * from "../Component-b141ddb0";
@@ -1,6 +1,9 @@
1
- export { F as Field } from '../Component-d9d92ac3.js';
1
+ export { F as Field } from '../Component-b141ddb0.js';
2
2
  import 'react';
3
3
  import 'classnames';
4
4
  import '@alfalab/core-components-button/dist/esm';
5
- import '@alfalab/icons-classic/ArrowDownMIcon';
6
- import '@alfalab/icons-classic/ArrowDownSIcon';
5
+ import '@alfalab/icons-glyph/ChevronDownMIcon';
6
+ import '@alfalab/icons-glyph/ChevronDownCompactSIcon';
7
+ import '@alfalab/icons-glyph/MoreMIcon';
8
+ import '@alfalab/icons-glyph/MoreSIcon';
9
+ import '../utils/index.js';
@@ -1,4 +1,4 @@
1
- /* hash: 1qe6w */
1
+ /* hash: 8bi4r */
2
2
  :root {
3
3
 
4
4
  /* Hard */
@@ -9,19 +9,23 @@
9
9
  }
10
10
  :root {
11
11
  --gap-xs: 8px;
12
+ --gap-m: 16px;
12
13
  }
13
14
  :root {
14
15
  --border-radius-s: 4px;
15
16
  }
16
- .picker-button__container_12ijs {
17
+ .picker-button__container_lu5mb {
17
18
  min-width: auto;
18
19
  }
19
- .picker-button__optionsPopover_12ijs {
20
+ .picker-button__optionsPopover_lu5mb {
20
21
  padding: var(--gap-xs) 0
21
22
  }
22
- .picker-button__optionsPopover_12ijs.picker-button__sideGap_12ijs {
23
+ .picker-button__optionsPopover_lu5mb.picker-button__sideGap_lu5mb {
23
24
  padding: 0 var(--gap-xs);
24
25
  }
25
- .picker-button__optionsListContainer_12ijs {
26
+ .picker-button__optionsListContainer_lu5mb {
26
27
  border-radius: var(--border-radius-s);
27
28
  }
29
+ .picker-button__option_lu5mb {
30
+ padding: 0 var(--gap-m);
31
+ }
package/dist/esm/index.js CHANGED
@@ -1,8 +1,11 @@
1
- import './Component-d9d92ac3.js';
1
+ import './Component-b141ddb0.js';
2
2
  import 'react';
3
3
  import 'classnames';
4
4
  import '@alfalab/core-components-select/dist/esm';
5
5
  import '@alfalab/core-components-button/dist/esm';
6
- import '@alfalab/icons-classic/ArrowDownMIcon';
7
- import '@alfalab/icons-classic/ArrowDownSIcon';
6
+ import '@alfalab/icons-glyph/ChevronDownMIcon';
7
+ import '@alfalab/icons-glyph/ChevronDownCompactSIcon';
8
+ import '@alfalab/icons-glyph/MoreMIcon';
9
+ import '@alfalab/icons-glyph/MoreSIcon';
10
+ import './utils/index.js';
8
11
  export { PickerButton } from './Component.js';
@@ -0,0 +1,4 @@
1
+ import { FC, SVGProps } from 'react';
2
+ import { PickerButtonVariant } from "../index";
3
+ declare const getIcon: (variant: PickerButtonVariant, size: "s" | "xxs" | "xs" | "m" | "l" | "xl") => FC<SVGProps<SVGSVGElement>>;
4
+ export { getIcon };
@@ -0,0 +1,13 @@
1
+ import { ChevronDownMIcon } from '@alfalab/icons-glyph/ChevronDownMIcon';
2
+ import { ChevronDownCompactSIcon } from '@alfalab/icons-glyph/ChevronDownCompactSIcon';
3
+ import { MoreMIcon } from '@alfalab/icons-glyph/MoreMIcon';
4
+ import { MoreSIcon } from '@alfalab/icons-glyph/MoreSIcon';
5
+
6
+ var getIcon = function (variant, size) {
7
+ if (variant === 'compact') {
8
+ return size === 'xxs' ? MoreSIcon : MoreMIcon;
9
+ }
10
+ return size === 'xxs' ? ChevronDownCompactSIcon : ChevronDownMIcon;
11
+ };
12
+
13
+ export { getIcon };
@@ -2,12 +2,15 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var field_Component = require('../Component-4c462f50.js');
5
+ var field_Component = require('../Component-6e9a8e09.js');
6
6
  require('react');
7
7
  require('classnames');
8
8
  require('@alfalab/core-components-button');
9
- require('@alfalab/icons-classic/ArrowDownMIcon');
10
- require('@alfalab/icons-classic/ArrowDownSIcon');
9
+ require('@alfalab/icons-glyph/ChevronDownMIcon');
10
+ require('@alfalab/icons-glyph/ChevronDownCompactSIcon');
11
+ require('@alfalab/icons-glyph/MoreMIcon');
12
+ require('@alfalab/icons-glyph/MoreSIcon');
13
+ require('../utils/index.js');
11
14
 
12
15
 
13
16
 
@@ -1,4 +1,4 @@
1
- /* hash: h1l5h */
1
+ /* hash: a0xav */
2
2
  :root {
3
3
 
4
4
  /* Hard */
@@ -10,10 +10,10 @@
10
10
  :root {
11
11
  --arrow-transform: rotate(180deg);
12
12
  }
13
- .picker-button__iconContainer_p0806 {
13
+ .picker-button__iconContainer_h15km {
14
14
  display: flex;
15
15
  transition: transform 0.15s ease-in-out;
16
16
  }
17
- .picker-button__open_p0806 {
17
+ .picker-button__open_h15km {
18
18
  transform: var(--arrow-transform);
19
19
  }
@@ -1 +1 @@
1
- export * from "../Component-4c462f50";
1
+ export * from "../Component-6e9a8e09";
@@ -2,12 +2,15 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var field_Component = require('../Component-4c462f50.js');
5
+ var field_Component = require('../Component-6e9a8e09.js');
6
6
  require('react');
7
7
  require('classnames');
8
8
  require('@alfalab/core-components-button');
9
- require('@alfalab/icons-classic/ArrowDownMIcon');
10
- require('@alfalab/icons-classic/ArrowDownSIcon');
9
+ require('@alfalab/icons-glyph/ChevronDownMIcon');
10
+ require('@alfalab/icons-glyph/ChevronDownCompactSIcon');
11
+ require('@alfalab/icons-glyph/MoreMIcon');
12
+ require('@alfalab/icons-glyph/MoreSIcon');
13
+ require('../utils/index.js');
11
14
 
12
15
 
13
16
 
package/dist/index.css CHANGED
@@ -1,4 +1,4 @@
1
- /* hash: 1qe6w */
1
+ /* hash: 8bi4r */
2
2
  :root {
3
3
 
4
4
  /* Hard */
@@ -9,19 +9,23 @@
9
9
  }
10
10
  :root {
11
11
  --gap-xs: 8px;
12
+ --gap-m: 16px;
12
13
  }
13
14
  :root {
14
15
  --border-radius-s: 4px;
15
16
  }
16
- .picker-button__container_12ijs {
17
+ .picker-button__container_lu5mb {
17
18
  min-width: auto;
18
19
  }
19
- .picker-button__optionsPopover_12ijs {
20
+ .picker-button__optionsPopover_lu5mb {
20
21
  padding: var(--gap-xs) 0
21
22
  }
22
- .picker-button__optionsPopover_12ijs.picker-button__sideGap_12ijs {
23
+ .picker-button__optionsPopover_lu5mb.picker-button__sideGap_lu5mb {
23
24
  padding: 0 var(--gap-xs);
24
25
  }
25
- .picker-button__optionsListContainer_12ijs {
26
+ .picker-button__optionsListContainer_lu5mb {
26
27
  border-radius: var(--border-radius-s);
27
28
  }
29
+ .picker-button__option_lu5mb {
30
+ padding: 0 var(--gap-m);
31
+ }
package/dist/index.js CHANGED
@@ -2,13 +2,16 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- require('./Component-4c462f50.js');
5
+ require('./Component-6e9a8e09.js');
6
6
  require('react');
7
7
  require('classnames');
8
8
  require('@alfalab/core-components-select');
9
9
  require('@alfalab/core-components-button');
10
- require('@alfalab/icons-classic/ArrowDownMIcon');
11
- require('@alfalab/icons-classic/ArrowDownSIcon');
10
+ require('@alfalab/icons-glyph/ChevronDownMIcon');
11
+ require('@alfalab/icons-glyph/ChevronDownCompactSIcon');
12
+ require('@alfalab/icons-glyph/MoreMIcon');
13
+ require('@alfalab/icons-glyph/MoreSIcon');
14
+ require('./utils/index.js');
12
15
  var Component = require('./Component.js');
13
16
 
14
17
 
@@ -1,18 +1,40 @@
1
1
  /// <reference types="react" />
2
2
  import React from 'react';
3
+ import { FC, SVGProps } from "react";
3
4
  import { ButtonProps } from "@alfalab/core-components-button";
4
- import { BaseSelectProps } from "@alfalab/core-components-select";
5
+ import { BaseSelectProps, OptionShape } from "@alfalab/core-components-select";
5
6
  type PickerButtonSize = 'xxs' | 'xs' | 's' | 'm' | 'l' | 'xl';
6
- type PickerButtonProps = Omit<BaseSelectProps, 'Field' | 'placeholder' | 'Arrow' | 'autocomplete' | 'size' | 'onFocus' | 'selected' | 'closeOnSelect' | 'multiple' | 'fieldProps' | 'hint' | 'allowUnselect'> & Pick<ButtonProps, 'view' | 'loading' | 'leftAddons' | 'rightAddons'> & {
7
+ type PickerButtonVariant = 'default' | 'compact';
8
+ type PickerButtonProps = Omit<BaseSelectProps, 'Field' | 'placeholder' | 'Arrow' | 'autocomplete' | 'size' | 'onFocus' | 'selected' | 'closeOnSelect' | 'multiple' | 'fieldProps' | 'hint' | 'allowUnselect' | 'options'> & Pick<ButtonProps, 'view' | 'loading' | 'leftAddons' | 'rightAddons'> & {
9
+ options: Array<OptionShape & {
10
+ /**
11
+ * Иконка, отображающаяся слева от текстового представления пункта
12
+ */
13
+ icon?: FC<SVGProps<SVGSVGElement>>;
14
+ }>;
7
15
  /**
8
16
  * Размер кнопки
9
17
  */
10
18
  size?: PickerButtonSize;
19
+ /**
20
+ * Тип кнопки
21
+ */
22
+ variant?: PickerButtonVariant;
11
23
  };
12
- declare const PickerButton: React.ForwardRefExoticComponent<Pick<BaseSelectProps, "className" | "dataTestId" | "label" | "block" | "id" | "onBlur" | "onChange" | "onScroll" | "disabled" | "name" | "fieldClassName" | "error" | "preventFlip" | "popperClassName" | "open" | "options" | "valueRenderer" | "Optgroup" | "visibleOptions" | "Option" | "optionsListClassName" | "optionClassName" | "circularNavigation" | "nativeSelect" | "defaultOpen" | "popoverPosition" | "optionsListWidth" | "optionsSize" | "optionsListProps" | "optionProps" | "onOpen" | "OptionsList" | "updatePopover" | "zIndexPopover" | "showEmptyOptionsList"> & Pick<Partial<import("@alfalab/core-components-button").ComponentProps & React.AnchorHTMLAttributes<HTMLAnchorElement>> | Partial<import("@alfalab/core-components-button").ComponentProps & React.ButtonHTMLAttributes<HTMLButtonElement>>, "view" | "leftAddons" | "rightAddons" | "loading"> & {
24
+ declare const PickerButton: React.ForwardRefExoticComponent<Pick<BaseSelectProps, "className" | "dataTestId" | "label" | "block" | "id" | "onBlur" | "onChange" | "onScroll" | "disabled" | "name" | "fieldClassName" | "error" | "preventFlip" | "popperClassName" | "open" | "valueRenderer" | "Optgroup" | "visibleOptions" | "Option" | "optionsListClassName" | "optionClassName" | "circularNavigation" | "nativeSelect" | "defaultOpen" | "popoverPosition" | "optionsListWidth" | "optionsSize" | "optionsListProps" | "optionProps" | "onOpen" | "OptionsList" | "updatePopover" | "zIndexPopover" | "showEmptyOptionsList"> & Pick<Partial<import("@alfalab/core-components-button").ComponentProps & React.AnchorHTMLAttributes<HTMLAnchorElement>> | Partial<import("@alfalab/core-components-button").ComponentProps & React.ButtonHTMLAttributes<HTMLButtonElement>>, "view" | "leftAddons" | "rightAddons" | "loading"> & {
25
+ options: (OptionShape & {
26
+ /**
27
+ * Иконка, отображающаяся слева от текстового представления пункта
28
+ */
29
+ icon?: React.FC<React.SVGProps<SVGSVGElement>> | undefined;
30
+ })[];
13
31
  /**
14
32
  * Размер кнопки
15
33
  */
16
34
  size?: "s" | "xxs" | "xs" | "m" | "l" | "xl" | undefined;
35
+ /**
36
+ * Тип кнопки
37
+ */
38
+ variant?: "default" | "compact" | undefined;
17
39
  } & React.RefAttributes<HTMLInputElement>>;
18
- export { PickerButtonSize, PickerButtonProps, PickerButton };
40
+ export { PickerButtonSize, PickerButtonVariant, PickerButtonProps, PickerButton };
@@ -2,26 +2,30 @@ import React, { forwardRef } from 'react';
2
2
  import cn from 'classnames';
3
3
  import { OptionsList, Optgroup, Option, BaseSelect } from '@alfalab/core-components-select/dist/modern';
4
4
  import '@alfalab/core-components-button/dist/modern';
5
- import '@alfalab/icons-classic/ArrowDownMIcon';
6
- import '@alfalab/icons-classic/ArrowDownSIcon';
5
+ import '@alfalab/icons-glyph/ChevronDownMIcon';
6
+ import '@alfalab/icons-glyph/ChevronDownCompactSIcon';
7
+ import '@alfalab/icons-glyph/MoreMIcon';
8
+ import '@alfalab/icons-glyph/MoreSIcon';
9
+ import './utils/index.js';
7
10
  import { Field } from './field/Component.js';
8
11
 
9
- var styles = {"container":"picker-button__container_12ijs","optionsPopover":"picker-button__optionsPopover_12ijs","sideGap":"picker-button__sideGap_12ijs","optionsListContainer":"picker-button__optionsListContainer_12ijs"};
12
+ var styles = {"container":"picker-button__container_lu5mb","optionsPopover":"picker-button__optionsPopover_lu5mb","sideGap":"picker-button__sideGap_lu5mb","optionsListContainer":"picker-button__optionsListContainer_lu5mb","option":"picker-button__option_lu5mb"};
10
13
  require('./index.css')
11
14
 
12
15
  const SIDE_POSITIONS = ['right', 'right-start', 'right-end', 'left', 'left-start', 'left-end'];
13
- const PickerButton = forwardRef(({ OptionsList: OptionsList$1 = OptionsList, Optgroup: Optgroup$1 = Optgroup, Option: Option$1 = Option, view, loading, size = 'm', className, leftAddons, rightAddons, popperClassName, optionsListClassName, ...restProps }, ref) => {
16
+ const PickerButton = forwardRef(({ OptionsList: OptionsList$1 = OptionsList, Optgroup: Optgroup$1 = Optgroup, Option: Option$1 = Option, view, loading, size = 'm', variant = 'default', className, leftAddons, rightAddons, popperClassName, optionsListClassName, optionClassName, ...restProps }, ref) => {
14
17
  const isSideGap = !!restProps.popoverPosition && SIDE_POSITIONS.includes(restProps.popoverPosition);
15
- return (React.createElement(BaseSelect, Object.assign({}, restProps, { ref: ref, Option: Option$1, Field: Field, size: size === 'm' ? 'm' : 's', fieldProps: {
18
+ return (React.createElement(BaseSelect, Object.assign({}, restProps, { optionProps: { Checkmark: null }, ref: ref, Option: Option$1, Field: Field, size: size === 'm' ? 'm' : 's', fieldProps: {
16
19
  view,
17
20
  loading,
18
21
  /** size у select, button несовместимы */
19
22
  buttonSize: size,
23
+ buttonVariant: variant,
20
24
  leftAddons,
21
25
  rightAddons,
22
26
  }, Optgroup: Optgroup$1, OptionsList: OptionsList$1, className: cn(styles.container, className), popperClassName: cn(styles.optionsPopover, popperClassName, {
23
27
  [styles.sideGap]: isSideGap,
24
- }), optionsListClassName: cn(styles.optionsListContainer, optionsListClassName), selected: [], closeOnSelect: true })));
28
+ }), optionsListClassName: cn(styles.optionsListContainer, optionsListClassName), optionClassName: cn(styles.option, optionClassName), selected: [], closeOnSelect: true })));
25
29
  });
26
30
 
27
31
  export { PickerButton };
@@ -5,7 +5,7 @@ import React from "react";
5
5
  import { ReactNode, FC, RefAttributes, AriaAttributes, FocusEvent, MouseEvent, ReactElement, CSSProperties, MutableRefObject, InputHTMLAttributes, ChangeEvent } from "react";
6
6
  import { CSSTransitionProps } from "react-transition-group/CSSTransition";
7
7
  import { BasePlacement, VariationPlacement } from "@popperjs/core";
8
- import { PickerButtonSize } from "../index";
8
+ import { PickerButtonSize, PickerButtonVariant } from "../Component";
9
9
  type RefElement = HTMLElement | null;
10
10
  type Position = BasePlacement | VariationPlacement;
11
11
  type PopoverProps = {
@@ -707,6 +707,7 @@ type CheckmarkProps = {
707
707
  type BaseFieldProps = FieldProps;
708
708
  type FieldProps$0 = Omit<BaseFieldProps, 'size' | 'hint' | 'success' | 'error' | 'placeholder'> & ButtonProps & {
709
709
  buttonSize?: PickerButtonSize;
710
+ buttonVariant?: PickerButtonVariant;
710
711
  };
711
- declare const Field: ({ buttonSize, view, label, open, multiple, rightAddons, Arrow, innerProps, className, selected, selectedMultiple, valueRenderer, ...restProps }: FieldProps$0) => JSX.Element;
712
+ declare const Field: ({ buttonSize, buttonVariant, view, label, open, multiple, rightAddons, Arrow, innerProps, className, selected, selectedMultiple, valueRenderer, ...restProps }: FieldProps$0) => JSX.Element;
712
713
  export { Field };
@@ -1,22 +1,25 @@
1
1
  import React from 'react';
2
2
  import cn from 'classnames';
3
3
  import { Button } from '@alfalab/core-components-button/dist/modern';
4
- import { ArrowDownMIcon } from '@alfalab/icons-classic/ArrowDownMIcon';
5
- import { ArrowDownSIcon } from '@alfalab/icons-classic/ArrowDownSIcon';
4
+ import '@alfalab/icons-glyph/ChevronDownMIcon';
5
+ import '@alfalab/icons-glyph/ChevronDownCompactSIcon';
6
+ import '@alfalab/icons-glyph/MoreMIcon';
7
+ import '@alfalab/icons-glyph/MoreSIcon';
8
+ import { getIcon } from '../utils/index.js';
6
9
 
7
- var styles = {"iconContainer":"picker-button__iconContainer_p0806","open":"picker-button__open_p0806"};
10
+ var styles = {"iconContainer":"picker-button__iconContainer_h15km","open":"picker-button__open_h15km"};
8
11
  require('./index.css')
9
12
 
10
- const Field = ({ buttonSize = 'm', view, label, open, multiple, rightAddons, Arrow, innerProps, className, selected, selectedMultiple, valueRenderer, ...restProps }) => {
11
- const Icon = buttonSize === 'xs' ? ArrowDownSIcon : ArrowDownMIcon;
13
+ const Field = ({ buttonSize = 'm', buttonVariant = 'default', view, label, open, multiple, rightAddons, Arrow, innerProps, className, selected, selectedMultiple, valueRenderer, ...restProps }) => {
14
+ const Icon = getIcon(buttonVariant, buttonSize);
12
15
  const { ref, ...restInnerProps } = innerProps;
13
16
  const buttonProps = {
14
17
  ...restProps,
15
18
  ...restInnerProps,
16
19
  };
17
20
  return (React.createElement("div", { ref: ref },
18
- React.createElement(Button, Object.assign({}, buttonProps, { rightAddons: rightAddons ?? (React.createElement("span", { className: cn(styles.iconContainer, open && styles.open) },
19
- React.createElement(Icon, { "data-test-id": 'picker-button-icon' }))), block: true, view: view, size: buttonSize, className: cn(styles.component, view === 'primary' && styles.primary, className) }), label)));
21
+ React.createElement(Button, Object.assign({}, buttonProps, { rightAddons: rightAddons ?? (React.createElement("span", { className: cn(styles.iconContainer, buttonVariant !== 'compact' && open && styles.open) },
22
+ React.createElement(Icon, { "data-test-id": 'picker-button-icon' }))), block: true, view: view, size: buttonSize, className: cn(styles.component, view === 'primary' && styles.primary, className) }), buttonVariant !== 'compact' && label)));
20
23
  };
21
24
 
22
25
  export { Field };
@@ -1,4 +1,4 @@
1
- /* hash: h1l5h */
1
+ /* hash: a0xav */
2
2
  :root {
3
3
 
4
4
  /* Hard */
@@ -10,10 +10,10 @@
10
10
  :root {
11
11
  --arrow-transform: rotate(180deg);
12
12
  }
13
- .picker-button__iconContainer_p0806 {
13
+ .picker-button__iconContainer_h15km {
14
14
  display: flex;
15
15
  transition: transform 0.15s ease-in-out;
16
16
  }
17
- .picker-button__open_p0806 {
17
+ .picker-button__open_h15km {
18
18
  transform: var(--arrow-transform);
19
19
  }
@@ -1,6 +1,9 @@
1
1
  import 'react';
2
2
  import 'classnames';
3
3
  import '@alfalab/core-components-button/dist/modern';
4
- import '@alfalab/icons-classic/ArrowDownMIcon';
5
- import '@alfalab/icons-classic/ArrowDownSIcon';
4
+ import '@alfalab/icons-glyph/ChevronDownMIcon';
5
+ import '@alfalab/icons-glyph/ChevronDownCompactSIcon';
6
+ import '@alfalab/icons-glyph/MoreMIcon';
7
+ import '@alfalab/icons-glyph/MoreSIcon';
8
+ import '../utils/index.js';
6
9
  export { Field } from './Component.js';
@@ -1,4 +1,4 @@
1
- /* hash: 1qe6w */
1
+ /* hash: 8bi4r */
2
2
  :root {
3
3
 
4
4
  /* Hard */
@@ -9,19 +9,23 @@
9
9
  }
10
10
  :root {
11
11
  --gap-xs: 8px;
12
+ --gap-m: 16px;
12
13
  }
13
14
  :root {
14
15
  --border-radius-s: 4px;
15
16
  }
16
- .picker-button__container_12ijs {
17
+ .picker-button__container_lu5mb {
17
18
  min-width: auto;
18
19
  }
19
- .picker-button__optionsPopover_12ijs {
20
+ .picker-button__optionsPopover_lu5mb {
20
21
  padding: var(--gap-xs) 0
21
22
  }
22
- .picker-button__optionsPopover_12ijs.picker-button__sideGap_12ijs {
23
+ .picker-button__optionsPopover_lu5mb.picker-button__sideGap_lu5mb {
23
24
  padding: 0 var(--gap-xs);
24
25
  }
25
- .picker-button__optionsListContainer_12ijs {
26
+ .picker-button__optionsListContainer_lu5mb {
26
27
  border-radius: var(--border-radius-s);
27
28
  }
29
+ .picker-button__option_lu5mb {
30
+ padding: 0 var(--gap-m);
31
+ }
@@ -2,7 +2,10 @@ import 'react';
2
2
  import 'classnames';
3
3
  import '@alfalab/core-components-select/dist/modern';
4
4
  import '@alfalab/core-components-button/dist/modern';
5
- import '@alfalab/icons-classic/ArrowDownMIcon';
6
- import '@alfalab/icons-classic/ArrowDownSIcon';
5
+ import '@alfalab/icons-glyph/ChevronDownMIcon';
6
+ import '@alfalab/icons-glyph/ChevronDownCompactSIcon';
7
+ import '@alfalab/icons-glyph/MoreMIcon';
8
+ import '@alfalab/icons-glyph/MoreSIcon';
9
+ import './utils/index.js';
7
10
  import './field/Component.js';
8
11
  export { PickerButton } from './Component.js';
@@ -0,0 +1,4 @@
1
+ import { FC, SVGProps } from 'react';
2
+ import { PickerButtonVariant } from "../index";
3
+ declare const getIcon: (variant: PickerButtonVariant, size: "s" | "xxs" | "xs" | "m" | "l" | "xl") => FC<SVGProps<SVGSVGElement>>;
4
+ export { getIcon };
@@ -0,0 +1,13 @@
1
+ import { ChevronDownMIcon } from '@alfalab/icons-glyph/ChevronDownMIcon';
2
+ import { ChevronDownCompactSIcon } from '@alfalab/icons-glyph/ChevronDownCompactSIcon';
3
+ import { MoreMIcon } from '@alfalab/icons-glyph/MoreMIcon';
4
+ import { MoreSIcon } from '@alfalab/icons-glyph/MoreSIcon';
5
+
6
+ const getIcon = (variant, size) => {
7
+ if (variant === 'compact') {
8
+ return size === 'xxs' ? MoreSIcon : MoreMIcon;
9
+ }
10
+ return size === 'xxs' ? ChevronDownCompactSIcon : ChevronDownMIcon;
11
+ };
12
+
13
+ export { getIcon };
@@ -0,0 +1,4 @@
1
+ import { FC, SVGProps } from 'react';
2
+ import { PickerButtonVariant } from "../index";
3
+ declare const getIcon: (variant: PickerButtonVariant, size: "s" | "xxs" | "xs" | "m" | "l" | "xl") => FC<SVGProps<SVGSVGElement>>;
4
+ export { getIcon };
@@ -0,0 +1,17 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var ChevronDownMIcon = require('@alfalab/icons-glyph/ChevronDownMIcon');
6
+ var ChevronDownCompactSIcon = require('@alfalab/icons-glyph/ChevronDownCompactSIcon');
7
+ var MoreMIcon = require('@alfalab/icons-glyph/MoreMIcon');
8
+ var MoreSIcon = require('@alfalab/icons-glyph/MoreSIcon');
9
+
10
+ var getIcon = function (variant, size) {
11
+ if (variant === 'compact') {
12
+ return size === 'xxs' ? MoreSIcon.MoreSIcon : MoreMIcon.MoreMIcon;
13
+ }
14
+ return size === 'xxs' ? ChevronDownCompactSIcon.ChevronDownCompactSIcon : ChevronDownMIcon.ChevronDownMIcon;
15
+ };
16
+
17
+ exports.getIcon = getIcon;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alfalab/core-components-picker-button",
3
- "version": "7.5.0",
3
+ "version": "7.6.0",
4
4
  "description": "Picker button component",
5
5
  "keywords": [],
6
6
  "license": "MIT",
@@ -20,10 +20,10 @@
20
20
  },
21
21
  "dependencies": {
22
22
  "@alfalab/core-components-button": "^5.1.1",
23
- "@alfalab/core-components-select": "^10.5.0",
23
+ "@alfalab/core-components-select": "^10.6.0",
24
24
  "@alfalab/icons-classic": "^1.76.0",
25
- "@alfalab/icons-glyph": "^2.14.0",
25
+ "@alfalab/icons-glyph": "^2.15.0",
26
26
  "classnames": "^2.2.6"
27
27
  },
28
- "gitHead": "ddf4fab6035139cf412e0acb7174ef388f23e4f2"
28
+ "gitHead": "e2a33a61248e7a64a8f7a857a59f8beaf7234f93"
29
29
  }