@salutejs/plasma-new-hope 0.122.0-dev.0 → 0.123.0-canary.1349.10432639210.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (160) hide show
  1. package/cjs/components/Autocomplete/Autocomplete.js +1 -1
  2. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  3. package/cjs/components/Pagination/Pagination.css +8 -8
  4. package/cjs/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.css +8 -8
  5. package/cjs/components/Select/Select.css +8 -8
  6. package/cjs/components/Select/Select.js +13 -6
  7. package/cjs/components/Select/Select.js.map +1 -1
  8. package/cjs/components/Select/hooks/useKeyboardNavigation.js.map +1 -1
  9. package/cjs/components/Select/hooks/usePathMaps.js +2 -2
  10. package/cjs/components/Select/hooks/usePathMaps.js.map +1 -1
  11. package/cjs/components/Select/ui/Inner/Inner.css +8 -8
  12. package/cjs/components/Select/ui/Inner/Inner.js.map +1 -1
  13. package/cjs/components/Select/ui/Inner/ui/Item/Item.css +8 -8
  14. package/cjs/components/Select/ui/Inner/ui/Item/Item.js +13 -5
  15. package/cjs/components/Select/ui/Inner/ui/Item/Item.js.map +1 -1
  16. package/cjs/components/Select/ui/Inner/ui/Item/Item.styles.js +15 -6
  17. package/cjs/components/Select/ui/Inner/ui/Item/Item.styles.js.map +1 -1
  18. package/cjs/components/Select/ui/Inner/ui/Item/{Item.styles_y3jg1m.css → Item.styles_baxa65.css} +1 -1
  19. package/cjs/components/Select/ui/Target/Target.js +4 -2
  20. package/cjs/components/Select/ui/Target/Target.js.map +1 -1
  21. package/cjs/components/Select/ui/Target/ui/Button/Button.js +3 -1
  22. package/cjs/components/Select/ui/Target/ui/Button/Button.js.map +1 -1
  23. package/cjs/components/Select/ui/Target/ui/Textfield/Textfield.js +7 -5
  24. package/cjs/components/Select/ui/Target/ui/Textfield/Textfield.js.map +1 -1
  25. package/cjs/components/Select/utils/getButtonLabel.js +5 -5
  26. package/cjs/components/Select/utils/getButtonLabel.js.map +1 -1
  27. package/cjs/components/Select/utils/getView.js +27 -0
  28. package/cjs/components/Select/utils/getView.js.map +1 -0
  29. package/cjs/components/Select/utils/initialItemsTransform.js.map +1 -1
  30. package/cjs/components/Select/utils/updateAncestors.js.map +1 -1
  31. package/cjs/components/Select/utils/updateDescendants.js.map +1 -1
  32. package/cjs/components/Select/utils/updateSingleAncestors.js.map +1 -1
  33. package/cjs/index.css +8 -8
  34. package/emotion/cjs/components/Autocomplete/Autocomplete.js +1 -1
  35. package/emotion/cjs/components/Select/Select.js +13 -6
  36. package/emotion/cjs/components/Select/hooks/usePathMaps.js +2 -2
  37. package/emotion/cjs/components/Select/ui/Inner/ui/Item/Item.js +13 -5
  38. package/emotion/cjs/components/Select/ui/Inner/ui/Item/Item.styles.js +14 -11
  39. package/emotion/cjs/components/Select/ui/Target/Target.js +4 -2
  40. package/emotion/cjs/components/Select/ui/Target/ui/Button/Button.js +3 -1
  41. package/emotion/cjs/components/Select/ui/Target/ui/Textfield/Textfield.js +7 -5
  42. package/emotion/cjs/components/Select/utils/getButtonLabel.js +5 -5
  43. package/emotion/cjs/components/Select/utils/getView.js +26 -0
  44. package/emotion/cjs/components/Select/utils/index.js +8 -1
  45. package/emotion/cjs/examples/plasma_b2c/components/Select/Select.stories.tsx +38 -21
  46. package/emotion/cjs/examples/plasma_web/components/Select/Select.stories.tsx +38 -21
  47. package/emotion/es/components/Autocomplete/Autocomplete.js +1 -1
  48. package/emotion/es/components/Select/Select.js +14 -7
  49. package/emotion/es/components/Select/hooks/usePathMaps.js +2 -2
  50. package/emotion/es/components/Select/ui/Inner/ui/Item/Item.js +13 -5
  51. package/emotion/es/components/Select/ui/Inner/ui/Item/Item.styles.js +14 -11
  52. package/emotion/es/components/Select/ui/Target/Target.js +4 -2
  53. package/emotion/es/components/Select/ui/Target/ui/Button/Button.js +3 -1
  54. package/emotion/es/components/Select/ui/Target/ui/Textfield/Textfield.js +7 -5
  55. package/emotion/es/components/Select/utils/getButtonLabel.js +5 -5
  56. package/emotion/es/components/Select/utils/getView.js +20 -0
  57. package/emotion/es/components/Select/utils/index.js +2 -1
  58. package/emotion/es/examples/plasma_b2c/components/Select/Select.stories.tsx +38 -21
  59. package/emotion/es/examples/plasma_web/components/Select/Select.stories.tsx +38 -21
  60. package/es/components/Autocomplete/Autocomplete.js +1 -1
  61. package/es/components/Autocomplete/Autocomplete.js.map +1 -1
  62. package/es/components/Pagination/Pagination.css +8 -8
  63. package/es/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.css +8 -8
  64. package/es/components/Select/Select.css +8 -8
  65. package/es/components/Select/Select.js +13 -6
  66. package/es/components/Select/Select.js.map +1 -1
  67. package/es/components/Select/hooks/useKeyboardNavigation.js.map +1 -1
  68. package/es/components/Select/hooks/usePathMaps.js +2 -2
  69. package/es/components/Select/hooks/usePathMaps.js.map +1 -1
  70. package/es/components/Select/ui/Inner/Inner.css +8 -8
  71. package/es/components/Select/ui/Inner/Inner.js.map +1 -1
  72. package/es/components/Select/ui/Inner/ui/Item/Item.css +8 -8
  73. package/es/components/Select/ui/Inner/ui/Item/Item.js +13 -5
  74. package/es/components/Select/ui/Inner/ui/Item/Item.js.map +1 -1
  75. package/es/components/Select/ui/Inner/ui/Item/Item.styles.js +15 -6
  76. package/es/components/Select/ui/Inner/ui/Item/Item.styles.js.map +1 -1
  77. package/es/components/Select/ui/Inner/ui/Item/{Item.styles_y3jg1m.css → Item.styles_baxa65.css} +1 -1
  78. package/es/components/Select/ui/Target/Target.js +4 -2
  79. package/es/components/Select/ui/Target/Target.js.map +1 -1
  80. package/es/components/Select/ui/Target/ui/Button/Button.js +3 -1
  81. package/es/components/Select/ui/Target/ui/Button/Button.js.map +1 -1
  82. package/es/components/Select/ui/Target/ui/Textfield/Textfield.js +7 -5
  83. package/es/components/Select/ui/Target/ui/Textfield/Textfield.js.map +1 -1
  84. package/es/components/Select/utils/getButtonLabel.js +5 -5
  85. package/es/components/Select/utils/getButtonLabel.js.map +1 -1
  86. package/es/components/Select/utils/getView.js +23 -0
  87. package/es/components/Select/utils/getView.js.map +1 -0
  88. package/es/components/Select/utils/initialItemsTransform.js.map +1 -1
  89. package/es/components/Select/utils/updateAncestors.js.map +1 -1
  90. package/es/components/Select/utils/updateDescendants.js.map +1 -1
  91. package/es/components/Select/utils/updateSingleAncestors.js.map +1 -1
  92. package/es/index.css +8 -8
  93. package/package.json +2 -2
  94. package/styled-components/cjs/components/Autocomplete/Autocomplete.js +1 -1
  95. package/styled-components/cjs/components/Select/Select.js +13 -6
  96. package/styled-components/cjs/components/Select/hooks/usePathMaps.js +2 -2
  97. package/styled-components/cjs/components/Select/ui/Inner/ui/Item/Item.js +13 -5
  98. package/styled-components/cjs/components/Select/ui/Inner/ui/Item/Item.styles.js +6 -3
  99. package/styled-components/cjs/components/Select/ui/Target/Target.js +4 -2
  100. package/styled-components/cjs/components/Select/ui/Target/ui/Button/Button.js +3 -1
  101. package/styled-components/cjs/components/Select/ui/Target/ui/Textfield/Textfield.js +7 -5
  102. package/styled-components/cjs/components/Select/utils/getButtonLabel.js +5 -5
  103. package/styled-components/cjs/components/Select/utils/getView.js +26 -0
  104. package/styled-components/cjs/components/Select/utils/index.js +8 -1
  105. package/styled-components/cjs/examples/plasma_b2c/components/Select/Select.stories.tsx +38 -21
  106. package/styled-components/cjs/examples/plasma_web/components/Select/Select.stories.tsx +38 -21
  107. package/styled-components/es/components/Autocomplete/Autocomplete.js +1 -1
  108. package/styled-components/es/components/Select/Select.js +14 -7
  109. package/styled-components/es/components/Select/hooks/usePathMaps.js +2 -2
  110. package/styled-components/es/components/Select/ui/Inner/ui/Item/Item.js +13 -5
  111. package/styled-components/es/components/Select/ui/Inner/ui/Item/Item.styles.js +6 -3
  112. package/styled-components/es/components/Select/ui/Target/Target.js +4 -2
  113. package/styled-components/es/components/Select/ui/Target/ui/Button/Button.js +3 -1
  114. package/styled-components/es/components/Select/ui/Target/ui/Textfield/Textfield.js +7 -5
  115. package/styled-components/es/components/Select/utils/getButtonLabel.js +5 -5
  116. package/styled-components/es/components/Select/utils/getView.js +20 -0
  117. package/styled-components/es/components/Select/utils/index.js +2 -1
  118. package/styled-components/es/examples/plasma_b2c/components/Select/Select.stories.tsx +38 -21
  119. package/styled-components/es/examples/plasma_web/components/Select/Select.stories.tsx +38 -21
  120. package/types/components/Autocomplete/Autocomplete.d.ts.map +1 -1
  121. package/types/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.styles.d.ts +123 -27
  122. package/types/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.styles.d.ts.map +1 -1
  123. package/types/components/Select/Select.d.ts +3 -3
  124. package/types/components/Select/Select.d.ts.map +1 -1
  125. package/types/components/Select/Select.types.d.ts +140 -11
  126. package/types/components/Select/Select.types.d.ts.map +1 -1
  127. package/types/components/Select/hooks/useKeyboardNavigation.d.ts +6 -6
  128. package/types/components/Select/hooks/useKeyboardNavigation.d.ts.map +1 -1
  129. package/types/components/Select/hooks/usePathMaps.d.ts +6 -6
  130. package/types/components/Select/hooks/usePathMaps.d.ts.map +1 -1
  131. package/types/components/Select/index.d.ts +1 -1
  132. package/types/components/Select/index.d.ts.map +1 -1
  133. package/types/components/Select/ui/Inner/Inner.type.d.ts +4 -4
  134. package/types/components/Select/ui/Inner/Inner.type.d.ts.map +1 -1
  135. package/types/components/Select/ui/Inner/ui/Item/Item.d.ts.map +1 -1
  136. package/types/components/Select/ui/Inner/ui/Item/Item.styles.d.ts +3 -1
  137. package/types/components/Select/ui/Inner/ui/Item/Item.styles.d.ts.map +1 -1
  138. package/types/components/Select/ui/Inner/ui/Item/Item.types.d.ts +18 -3
  139. package/types/components/Select/ui/Inner/ui/Item/Item.types.d.ts.map +1 -1
  140. package/types/components/Select/ui/Target/Target.d.ts.map +1 -1
  141. package/types/components/Select/ui/Target/Target.types.d.ts +4 -3
  142. package/types/components/Select/ui/Target/Target.types.d.ts.map +1 -1
  143. package/types/components/Select/ui/Target/ui/Button/Button.d.ts.map +1 -1
  144. package/types/components/Select/ui/Target/ui/Textfield/Textfield.d.ts.map +1 -1
  145. package/types/components/Select/utils/getView.d.ts +3 -0
  146. package/types/components/Select/utils/getView.d.ts.map +1 -0
  147. package/types/components/Select/utils/index.d.ts +1 -0
  148. package/types/components/Select/utils/index.d.ts.map +1 -1
  149. package/types/components/Select/utils/initialItemsTransform.d.ts +2 -2
  150. package/types/components/Select/utils/initialItemsTransform.d.ts.map +1 -1
  151. package/types/components/Select/utils/updateAncestors.d.ts +2 -2
  152. package/types/components/Select/utils/updateAncestors.d.ts.map +1 -1
  153. package/types/components/Select/utils/updateDescendants.d.ts +2 -2
  154. package/types/components/Select/utils/updateDescendants.d.ts.map +1 -1
  155. package/types/components/Select/utils/updateSingleAncestors.d.ts +2 -2
  156. package/types/components/Select/utils/updateSingleAncestors.d.ts.map +1 -1
  157. package/types/examples/plasma_b2c/components/Select/Select.d.ts +123 -27
  158. package/types/examples/plasma_b2c/components/Select/Select.d.ts.map +1 -1
  159. package/types/examples/plasma_web/components/Select/Select.d.ts +123 -27
  160. package/types/examples/plasma_web/components/Select/Select.d.ts.map +1 -1
@@ -23,7 +23,8 @@ var Target = exports.Target = function Target(_ref) {
23
23
  renderValue = _ref.renderValue,
24
24
  focusedPath = _ref.focusedPath,
25
25
  focusedToValueMap = _ref.focusedToValueMap,
26
- selectProps = _ref.selectProps;
26
+ selectProps = _ref.selectProps,
27
+ separator = _ref.separator;
27
28
  return selectProps.target === 'button-like' ? /*#__PURE__*/_react["default"].createElement(_ui.Button, {
28
29
  opened: opened,
29
30
  value: value,
@@ -35,7 +36,8 @@ var Target = exports.Target = function Target(_ref) {
35
36
  renderValue: renderValue,
36
37
  focusedPath: focusedPath,
37
38
  focusedToValueMap: focusedToValueMap,
38
- selectProps: selectProps
39
+ selectProps: selectProps,
40
+ separator: separator
39
41
  }) : /*#__PURE__*/_react["default"].createElement(_ui.Textfield, {
40
42
  opened: opened,
41
43
  value: value,
@@ -46,7 +46,9 @@ var Button = exports.Button = function Button(_ref) {
46
46
  "aria-activedescendant": getActiveDescendant(),
47
47
  "aria-label": label,
48
48
  renderTarget: Boolean(selectProps.renderTarget)
49
- }, selectProps.renderTarget ? selectProps.renderTarget(value) : /*#__PURE__*/_react["default"].createElement(_Button.Label, null, (0, _utils2.getButtonLabel)({
49
+ }, selectProps.renderTarget ? selectProps.renderTarget(Array.isArray(value) ? value.map(function (value) {
50
+ return valueToItemMap.get(value);
51
+ }) : valueToItemMap.get(value)) : /*#__PURE__*/_react["default"].createElement(_Button.Label, null, (0, _utils2.getButtonLabel)({
50
52
  value: value,
51
53
  valueToItemMap: valueToItemMap,
52
54
  label: label,
@@ -22,7 +22,7 @@ var getLabel = function getLabel(_ref) {
22
22
  labelPlacement = _ref.labelPlacement,
23
23
  size = _ref.size,
24
24
  renderValue = _ref.renderValue;
25
- if ((0, _utils.isEmpty)(value)) {
25
+ if ((0, _utils.isEmpty)(value) && typeof value !== 'number') {
26
26
  if (!label || labelPlacement === 'outer') {
27
27
  return /*#__PURE__*/_react["default"].createElement(_Textfield.Placeholder, null, placeholder);
28
28
  }
@@ -38,7 +38,7 @@ var getLabel = function getLabel(_ref) {
38
38
  return value.map(function (currentValue, index) {
39
39
  var itemLabel = valueToItemMap.get(currentValue).label;
40
40
  return /*#__PURE__*/_react["default"].createElement(_ui.Chip, {
41
- text: renderValue ? renderValue(currentValue, itemLabel) : itemLabel,
41
+ text: renderValue ? renderValue(valueToItemMap.get(currentValue)) : itemLabel,
42
42
  onClick: function onClick(e) {
43
43
  e.stopPropagation();
44
44
  onChipClick(currentValue);
@@ -49,9 +49,9 @@ var getLabel = function getLabel(_ref) {
49
49
  }
50
50
  var itemLabel = valueToItemMap.get(value).label;
51
51
  if (!label || labelPlacement === 'outer') {
52
- return /*#__PURE__*/_react["default"].createElement(_Textfield.Value, null, renderValue ? renderValue(value, itemLabel) : itemLabel);
52
+ return /*#__PURE__*/_react["default"].createElement(_Textfield.Value, null, renderValue ? renderValue(valueToItemMap.get(value)) : itemLabel);
53
53
  }
54
- return /*#__PURE__*/_react["default"].createElement(_Textfield.InnerLabelWrapper, null, size !== 'xs' && /*#__PURE__*/_react["default"].createElement(_Textfield.InnerLabel, null, label), /*#__PURE__*/_react["default"].createElement(_Textfield.Value, null, renderValue ? renderValue(value, itemLabel) : itemLabel));
54
+ return /*#__PURE__*/_react["default"].createElement(_Textfield.InnerLabelWrapper, null, size !== 'xs' && /*#__PURE__*/_react["default"].createElement(_Textfield.InnerLabel, null, label), /*#__PURE__*/_react["default"].createElement(_Textfield.Value, null, renderValue ? renderValue(valueToItemMap.get(value)) : itemLabel));
55
55
  };
56
56
  var Textfield = exports.Textfield = function Textfield(_ref2) {
57
57
  var opened = _ref2.opened,
@@ -92,7 +92,9 @@ var Textfield = exports.Textfield = function Textfield(_ref2) {
92
92
  "aria-activedescendant": getActiveDescendant(),
93
93
  "aria-label": label,
94
94
  renderTarget: Boolean(selectProps.renderTarget)
95
- }, /*#__PURE__*/_react["default"].createElement(_Textfield.Wrapper, null, selectProps !== null && selectProps !== void 0 && selectProps.renderTarget ? selectProps.renderTarget(value) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, contentLeft && (!selectProps.multiselect || (0, _utils.isEmpty)(value)) && /*#__PURE__*/_react["default"].createElement(_Textfield.ContentLeftWrapper, null, contentLeft), /*#__PURE__*/_react["default"].createElement(_Textfield.ChipWrapper, null, getLabel({
95
+ }, /*#__PURE__*/_react["default"].createElement(_Textfield.Wrapper, null, selectProps !== null && selectProps !== void 0 && selectProps.renderTarget ? selectProps.renderTarget(Array.isArray(value) ? value.map(function (value) {
96
+ return valueToItemMap.get(value);
97
+ }) : valueToItemMap.get(value)) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, contentLeft && (!selectProps.multiselect || (0, _utils.isEmpty)(value)) && /*#__PURE__*/_react["default"].createElement(_Textfield.ContentLeftWrapper, null, contentLeft), /*#__PURE__*/_react["default"].createElement(_Textfield.ChipWrapper, null, getLabel({
96
98
  value: value,
97
99
  valueToItemMap: valueToItemMap,
98
100
  onChipClick: onChipClick,
@@ -9,9 +9,9 @@ var getLabel = function getLabel(_ref) {
9
9
  var value = _ref.value,
10
10
  valueToItemMap = _ref.valueToItemMap,
11
11
  renderValue = _ref.renderValue;
12
- var _ref2 = valueToItemMap.get(value === null || value === void 0 ? void 0 : value.toString()),
12
+ var _ref2 = valueToItemMap.get(value),
13
13
  label = _ref2.label;
14
- return renderValue ? renderValue(value, label) : label;
14
+ return renderValue ? renderValue(valueToItemMap.get(value)) : label;
15
15
  };
16
16
  var getButtonLabel = exports.getButtonLabel = function getButtonLabel(_ref3) {
17
17
  var value = _ref3.value,
@@ -19,7 +19,7 @@ var getButtonLabel = exports.getButtonLabel = function getButtonLabel(_ref3) {
19
19
  label = _ref3.label,
20
20
  renderValue = _ref3.renderValue,
21
21
  selectProps = _ref3.selectProps;
22
- if ((0, _utils.isEmpty)(value)) {
22
+ if ((0, _utils.isEmpty)(value) && typeof value !== 'number') {
23
23
  return label || '';
24
24
  }
25
25
  if (selectProps.multiselect && selectProps.isTargetAmount) {
@@ -35,8 +35,8 @@ var getButtonLabel = exports.getButtonLabel = function getButtonLabel(_ref3) {
35
35
  }).join(', ');
36
36
  }
37
37
  return getLabel({
38
- renderValue: renderValue,
39
38
  value: value,
40
- valueToItemMap: valueToItemMap
39
+ valueToItemMap: valueToItemMap,
40
+ renderValue: renderValue
41
41
  });
42
42
  };
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getView = void 0;
7
+ var getView = exports.getView = function getView(status) {
8
+ switch (status) {
9
+ case 'success':
10
+ {
11
+ return 'positive';
12
+ }
13
+ case 'error':
14
+ {
15
+ return 'negative';
16
+ }
17
+ case 'warning':
18
+ {
19
+ return 'warning';
20
+ }
21
+ default:
22
+ {
23
+ return 'default';
24
+ }
25
+ }
26
+ };
@@ -15,6 +15,12 @@ Object.defineProperty(exports, "getCorrectHeight", {
15
15
  return _getCorrectHeight.getCorrectHeight;
16
16
  }
17
17
  });
18
+ Object.defineProperty(exports, "getView", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _getView.getView;
22
+ }
23
+ });
18
24
  Object.defineProperty(exports, "initialItemsTransform", {
19
25
  enumerable: true,
20
26
  get: function get() {
@@ -51,4 +57,5 @@ var _updateAncestors = /*#__PURE__*/require("./updateAncestors");
51
57
  var _updateSingleAncestors = /*#__PURE__*/require("./updateSingleAncestors");
52
58
  var _sizeToIconSize = /*#__PURE__*/require("./sizeToIconSize");
53
59
  var _getCorrectHeight = /*#__PURE__*/require("./getCorrectHeight");
54
- var _getButtonLabel = /*#__PURE__*/require("./getButtonLabel");
60
+ var _getButtonLabel = /*#__PURE__*/require("./getButtonLabel");
61
+ var _getView = /*#__PURE__*/require("./getView");
@@ -60,9 +60,23 @@ const meta: Meta<StorySelectProps> = {
60
60
  type: 'select',
61
61
  },
62
62
  },
63
+ listWidth: {
64
+ control: {
65
+ type: 'text',
66
+ },
67
+ },
68
+ listOverflow: {
69
+ control: {
70
+ type: 'text',
71
+ },
72
+ },
73
+ listHeight: {
74
+ control: {
75
+ type: 'text',
76
+ },
77
+ },
63
78
  },
64
79
  args: {
65
- multiselect: false,
66
80
  target: 'textfield-like',
67
81
  label: 'Label',
68
82
  labelPlacement: 'outer',
@@ -75,7 +89,27 @@ const meta: Meta<StorySelectProps> = {
75
89
  isTargetAmount: false,
76
90
  variant: 'normal',
77
91
  disabled: false,
78
- separator: '',
92
+ },
93
+ parameters: {
94
+ controls: {
95
+ include: [
96
+ 'target',
97
+ 'size',
98
+ 'view',
99
+ 'chipView',
100
+ 'enableContentLeft',
101
+ 'label',
102
+ 'labelPlacement',
103
+ 'placeholder',
104
+ 'helperText',
105
+ 'isTargetAmount',
106
+ 'variant',
107
+ 'disabled',
108
+ 'listWidth',
109
+ 'listOverflow',
110
+ 'listHeight',
111
+ ],
112
+ },
79
113
  },
80
114
  };
81
115
 
@@ -354,8 +388,8 @@ const PredefinedStory = (args: StorySelectProps) => {
354
388
 
355
389
  <Select
356
390
  {...args}
357
- multiselect
358
391
  items={items}
392
+ multiselect
359
393
  value={valueMultiple}
360
394
  onChange={setValueMultiple}
361
395
  contentLeft={args.enableContentLeft ? <IconDone size="s" /> : undefined}
@@ -365,11 +399,6 @@ const PredefinedStory = (args: StorySelectProps) => {
365
399
  };
366
400
 
367
401
  export const Predefined: StoryObj<StorySelectProps> = {
368
- parameters: {
369
- controls: {
370
- exclude: ['multiselect'],
371
- },
372
- },
373
402
  render: (args) => <PredefinedStory {...args} />,
374
403
  };
375
404
 
@@ -795,19 +824,7 @@ const CommonStory = (args: StorySelectProps) => {
795
824
  export const Common: StoryObj<StorySelectProps> = {
796
825
  parameters: {
797
826
  controls: {
798
- include: [
799
- 'size',
800
- 'enableContentLeft',
801
- 'chipView',
802
- 'label',
803
- 'labelPlacement',
804
- 'placeholder',
805
- 'helperText',
806
- 'isTargetAmount',
807
- 'variant',
808
- 'disabled',
809
- 'separator',
810
- ],
827
+ exclude: ['target', 'view'],
811
828
  },
812
829
  },
813
830
  argTypes: {
@@ -60,9 +60,23 @@ const meta: Meta<StorySelectProps> = {
60
60
  type: 'select',
61
61
  },
62
62
  },
63
+ listWidth: {
64
+ control: {
65
+ type: 'text',
66
+ },
67
+ },
68
+ listOverflow: {
69
+ control: {
70
+ type: 'text',
71
+ },
72
+ },
73
+ listHeight: {
74
+ control: {
75
+ type: 'text',
76
+ },
77
+ },
63
78
  },
64
79
  args: {
65
- multiselect: false,
66
80
  target: 'textfield-like',
67
81
  label: 'Label',
68
82
  labelPlacement: 'outer',
@@ -75,7 +89,27 @@ const meta: Meta<StorySelectProps> = {
75
89
  isTargetAmount: false,
76
90
  variant: 'normal',
77
91
  disabled: false,
78
- separator: '',
92
+ },
93
+ parameters: {
94
+ controls: {
95
+ include: [
96
+ 'target',
97
+ 'size',
98
+ 'view',
99
+ 'chipView',
100
+ 'enableContentLeft',
101
+ 'label',
102
+ 'labelPlacement',
103
+ 'placeholder',
104
+ 'helperText',
105
+ 'isTargetAmount',
106
+ 'variant',
107
+ 'disabled',
108
+ 'listWidth',
109
+ 'listOverflow',
110
+ 'listHeight',
111
+ ],
112
+ },
79
113
  },
80
114
  };
81
115
 
@@ -354,8 +388,8 @@ const PredefinedStory = (args: StorySelectProps) => {
354
388
 
355
389
  <Select
356
390
  {...args}
357
- multiselect
358
391
  items={items}
392
+ multiselect
359
393
  value={valueMultiple}
360
394
  onChange={setValueMultiple}
361
395
  contentLeft={args.enableContentLeft ? <IconDone size="s" /> : undefined}
@@ -365,11 +399,6 @@ const PredefinedStory = (args: StorySelectProps) => {
365
399
  };
366
400
 
367
401
  export const Predefined: StoryObj<StorySelectProps> = {
368
- parameters: {
369
- controls: {
370
- exclude: ['multiselect'],
371
- },
372
- },
373
402
  render: (args) => <PredefinedStory {...args} />,
374
403
  };
375
404
 
@@ -795,19 +824,7 @@ const CommonStory = (args: StorySelectProps) => {
795
824
  export const Common: StoryObj<StorySelectProps> = {
796
825
  parameters: {
797
826
  controls: {
798
- include: [
799
- 'size',
800
- 'enableContentLeft',
801
- 'chipView',
802
- 'label',
803
- 'labelPlacement',
804
- 'placeholder',
805
- 'helperText',
806
- 'isTargetAmount',
807
- 'variant',
808
- 'disabled',
809
- 'separator',
810
- ],
827
+ exclude: ['target', 'view'],
811
828
  },
812
829
  },
813
830
  argTypes: {
@@ -61,7 +61,7 @@ export var autocompleteRoot = function autocompleteRoot(Root) {
61
61
  isOpen = _useState4[0],
62
62
  setIsOpen = _useState4[1];
63
63
  var listId = safeUseId();
64
- var value = outerValue || innerValue;
64
+ var value = outerValue !== null && outerValue !== void 0 ? outerValue : innerValue;
65
65
  var helperTextId = safeUseId();
66
66
  var targetRef = useOutsideClick(function () {
67
67
  setIsOpen(false);
@@ -1,4 +1,4 @@
1
- var _excluded = ["value", "onChange", "target", "items", "placement", "label", "labelPlacement", "placeholder", "helperText", "disabled", "view", "size", "listOverflow", "listHeight", "listWidth", "contentLeft", "onScrollBottom", "chipView", "variant", "portal", "renderValue", "renderItem"];
1
+ var _excluded = ["value", "onChange", "target", "items", "placement", "label", "labelPlacement", "placeholder", "helperText", "disabled", "view", "size", "listOverflow", "listHeight", "listWidth", "contentLeft", "onScrollBottom", "chipView", "variant", "portal", "renderValue", "renderItem", "status", "onItemSelect", "separator"];
2
2
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
3
3
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
4
4
  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."); }
@@ -12,7 +12,7 @@ import React, { forwardRef, useState, useReducer, useMemo, createContext, useLay
12
12
  import { isEmpty, getPlacements } from '../../utils';
13
13
  import { useOutsideClick } from '../../hooks';
14
14
  import { useKeyNavigation } from './hooks/useKeyboardNavigation';
15
- import { initialItemsTransform, updateAncestors, updateDescendants, updateSingleAncestors } from './utils';
15
+ import { initialItemsTransform, updateAncestors, updateDescendants, updateSingleAncestors, getView } from './utils';
16
16
  import { Inner, Target } from './ui';
17
17
  import { pathReducer, focusedPathReducer, focusedChipIndexReducer } from './reducers';
18
18
  import { usePathMaps } from './hooks/usePathMaps';
@@ -53,6 +53,9 @@ export var selectRoot = function selectRoot(Root) {
53
53
  portal = props.portal,
54
54
  renderValue = props.renderValue,
55
55
  renderItem = props.renderItem,
56
+ status = props.status,
57
+ onItemSelect = props.onItemSelect,
58
+ separator = props.separator,
56
59
  rest = _objectWithoutProperties(props, _excluded);
57
60
  var _useState = useState(outerValue || props.multiselect ? [] : ''),
58
61
  _useState2 = _slicedToArray(_useState, 2),
@@ -66,7 +69,7 @@ export var selectRoot = function selectRoot(Root) {
66
69
  setInternalValue(e);
67
70
  };
68
71
  var transformedItems = useMemo(function () {
69
- return initialItemsTransform(items);
72
+ return initialItemsTransform(items || []);
70
73
  }, [items]);
71
74
  var _usePathMaps = usePathMaps(transformedItems),
72
75
  _usePathMaps2 = _slicedToArray(_usePathMaps, 4),
@@ -158,6 +161,9 @@ export var selectRoot = function selectRoot(Root) {
158
161
  if (onChange) {
159
162
  onChange(isCurrentChecked ? '' : item.value);
160
163
  }
164
+ if (onItemSelect) {
165
+ onItemSelect(item, e);
166
+ }
161
167
  }
162
168
  };
163
169
  var handleChipClick = function handleChipClick(currentValue) {
@@ -202,7 +208,7 @@ export var selectRoot = function selectRoot(Root) {
202
208
  checkedCopy.forEach(function (_, key) {
203
209
  checkedCopy.set(key, false);
204
210
  });
205
- if (!isEmpty(value)) {
211
+ if (!isEmpty(value) || typeof value === 'number') {
206
212
  if (Array.isArray(value)) {
207
213
  value.forEach(function (val) {
208
214
  checkedCopy.set(val, true);
@@ -219,7 +225,7 @@ export var selectRoot = function selectRoot(Root) {
219
225
  return /*#__PURE__*/React.createElement(Root, _extends({
220
226
  ref: ref,
221
227
  size: size,
222
- view: view,
228
+ view: status ? getView(status) : view,
223
229
  chipView: chipView
224
230
  }, rest), label && labelPlacement === 'outer' && target !== 'button-like' && /*#__PURE__*/React.createElement(OuterLabel, null, label), /*#__PURE__*/React.createElement(Context.Provider, {
225
231
  value: {
@@ -230,7 +236,8 @@ export var selectRoot = function selectRoot(Root) {
230
236
  handleCheckboxChange: handleCheckboxChange,
231
237
  handleItemClick: handleItemClick,
232
238
  variant: variant,
233
- renderItem: renderItem
239
+ renderItem: renderItem,
240
+ valueToItemMap: valueToItemMap
234
241
  }
235
242
  }, /*#__PURE__*/React.createElement(StyledPopover, {
236
243
  ref: targetRef,
@@ -260,7 +267,7 @@ export var selectRoot = function selectRoot(Root) {
260
267
  }),
261
268
  preventOverflow: false,
262
269
  closeOnOverlayClick: true
263
- }, /*#__PURE__*/React.createElement(Root, _extends({
270
+ }, items && /*#__PURE__*/React.createElement(Root, _extends({
264
271
  size: size
265
272
  }, rest), /*#__PURE__*/React.createElement(Ul, {
266
273
  role: "tree",
@@ -5,10 +5,10 @@ export var usePathMaps = function usePathMaps(items) {
5
5
  var focusedToValueMap = new Map();
6
6
  var valueToCheckedMap = new Map();
7
7
  var valueToItemMap = new Map();
8
- pathMap.set('root', items.length);
8
+ pathMap.set('root', (items === null || items === void 0 ? void 0 : items.length) || 0);
9
9
  var rec = function rec(items) {
10
10
  var prevIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
11
- items.forEach(function (item, index) {
11
+ items === null || items === void 0 || items.forEach(function (item, index) {
12
12
  var value = item.value,
13
13
  innerItems = item.items;
14
14
  var currIndex = "".concat(prevIndex, "/").concat(index).replace(/^(\/)/, '');
@@ -18,6 +18,8 @@ export var Item = function Item(_ref) {
18
18
  var value = item.value,
19
19
  label = item.label,
20
20
  disabled = item.disabled,
21
+ isDisabled = item.isDisabled,
22
+ color = item.color,
21
23
  contentLeft = item.contentLeft,
22
24
  contentRight = item.contentRight;
23
25
  var ref = useRef(null);
@@ -29,8 +31,9 @@ export var Item = function Item(_ref) {
29
31
  handleCheckboxChange = _useContext.handleCheckboxChange,
30
32
  handleItemClick = _useContext.handleItemClick,
31
33
  variant = _useContext.variant,
32
- renderItem = _useContext.renderItem;
33
- var isDisabledClassName = disabled ? classes.dropdownItemIsDisabled : undefined;
34
+ renderItem = _useContext.renderItem,
35
+ valueToItemMap = _useContext.valueToItemMap;
36
+ var isDisabledClassName = disabled || isDisabled ? classes.dropdownItemIsDisabled : undefined;
34
37
  var focusedClass = currentLevel === focusedPath.length - 1 && index === (focusedPath === null || focusedPath === void 0 ? void 0 : focusedPath[currentLevel]) ? classes.dropdownItemIsFocused : undefined;
35
38
  var activeClass = value === (path === null || path === void 0 ? void 0 : path[currentLevel + 1]) ? classes.dropdownItemIsActive : undefined;
36
39
  useEffect(function () {
@@ -43,12 +46,15 @@ export var Item = function Item(_ref) {
43
46
  }
44
47
  }, [focusedClass]);
45
48
  var handleChange = function handleChange(e) {
46
- if (disabled) return;
49
+ if (disabled || isDisabled) return;
47
50
  e.stopPropagation();
48
51
  handleCheckboxChange(item);
49
52
  };
50
53
  var handleClick = function handleClick(e) {
51
- if (disabled) return;
54
+ if (disabled || isDisabled) {
55
+ e.stopPropagation();
56
+ return;
57
+ }
52
58
  handleItemClick(item, e);
53
59
  };
54
60
  return /*#__PURE__*/React.createElement(Wrapper, {
@@ -79,7 +85,9 @@ export var Item = function Item(_ref) {
79
85
  }))), !multiselect && checked.get(item.value) === 'done' && /*#__PURE__*/React.createElement(IconDone, {
80
86
  size: sizeToIconSize(size, variant),
81
87
  color: "inherit"
82
- })), contentLeft && /*#__PURE__*/React.createElement(StyledContentLeft, null, contentLeft), /*#__PURE__*/React.createElement(StyledText, null, renderItem && renderItem(value, label) || label), contentRight && /*#__PURE__*/React.createElement(StyledContentRight, null, contentRight), !isEmpty(item.items) && /*#__PURE__*/React.createElement(DisclosureIconWrapper, null, /*#__PURE__*/React.createElement(IconDisclosureRightCentered, {
88
+ })), contentLeft && /*#__PURE__*/React.createElement(StyledContentLeft, null, contentLeft), /*#__PURE__*/React.createElement(StyledText, {
89
+ color: color
90
+ }, renderItem && renderItem(valueToItemMap.get(value)) || label), contentRight && /*#__PURE__*/React.createElement(StyledContentRight, null, contentRight), !isEmpty(item.items) && /*#__PURE__*/React.createElement(DisclosureIconWrapper, null, /*#__PURE__*/React.createElement(IconDisclosureRightCentered, {
83
91
  size: sizeToIconSize(size, variant),
84
92
  color: "inherit"
85
93
  })));