@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
@@ -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
  })));
@@ -40,11 +40,14 @@ export var IconWrapper = /*#__PURE__*/styled.div.withConfig({
40
40
  });
41
41
  export var StyledText = /*#__PURE__*/styled.div.withConfig({
42
42
  componentId: "plasma-new-hope__sc-fr2h0y-6"
43
- })(["", ";flex:1;"], /*#__PURE__*/applyEllipsis());
43
+ })(["", ";flex:1;color:", ";"], /*#__PURE__*/applyEllipsis(), function (_ref5) {
44
+ var color = _ref5.color;
45
+ return color || 'inherit';
46
+ });
44
47
  export var Wrapper = /*#__PURE__*/styled.li.withConfig({
45
48
  componentId: "plasma-new-hope__sc-fr2h0y-7"
46
- })(["display:flex;align-items:center;min-height:var(", ");margin:0;box-sizing:content-box;padding:", ";font-family:var(", ");font-size:var(", ");font-style:var(", ");font-weight:var(", ");letter-spacing:var(", ");line-height:var(", ");background:var(", ");color:var(--text-primary);border-radius:var(", ");user-select:none;&:hover:not(.", "){cursor:pointer;background:var(", ");}&.", "{background:var(", ");}&.", "{opacity:", ";cursor:not-allowed;}:focus{outline:none;}", ";"], tokens.itemHeight, function (_ref5) {
47
- var variant = _ref5.variant;
49
+ })(["display:flex;align-items:center;min-height:var(", ");margin:0;box-sizing:content-box;padding:", ";font-family:var(", ");font-size:var(", ");font-style:var(", ");font-weight:var(", ");letter-spacing:var(", ");line-height:var(", ");background:var(", ");color:var(--text-primary);border-radius:var(", ");user-select:none;&:hover:not(.", "){cursor:pointer;background:var(", ");}&.", "{background:var(", ");}&.", "{opacity:", ";cursor:not-allowed;}:focus{outline:none;}", ";"], tokens.itemHeight, function (_ref6) {
50
+ var variant = _ref6.variant;
48
51
  return "var(".concat(variant === 'tight' ? tokens.itemPaddingTight : tokens.itemPadding, ")");
49
52
  }, tokens.fontFamily, tokens.fontSize, tokens.fontStyle, tokens.fontWeight, tokens.fontLetterSpacing, tokens.fontLineHeight, constants.itemBackground, tokens.itemBorderRadius, classes.dropdownItemIsDisabled, constants.itemBackgroundHover, classes.dropdownItemIsActive, constants.itemBackgroundHover, classes.dropdownItemIsDisabled, constants.opacity, /*#__PURE__*/addFocus({
50
53
  outlineSize: '0.0625rem',
@@ -16,7 +16,8 @@ export var Target = function Target(_ref) {
16
16
  renderValue = _ref.renderValue,
17
17
  focusedPath = _ref.focusedPath,
18
18
  focusedToValueMap = _ref.focusedToValueMap,
19
- selectProps = _ref.selectProps;
19
+ selectProps = _ref.selectProps,
20
+ separator = _ref.separator;
20
21
  return selectProps.target === 'button-like' ? /*#__PURE__*/React.createElement(Button, {
21
22
  opened: opened,
22
23
  value: value,
@@ -28,7 +29,8 @@ export var Target = function Target(_ref) {
28
29
  renderValue: renderValue,
29
30
  focusedPath: focusedPath,
30
31
  focusedToValueMap: focusedToValueMap,
31
- selectProps: selectProps
32
+ selectProps: selectProps,
33
+ separator: separator
32
34
  }) : /*#__PURE__*/React.createElement(Textfield, {
33
35
  opened: opened,
34
36
  value: value,
@@ -39,7 +39,9 @@ export var Button = function Button(_ref) {
39
39
  "aria-activedescendant": getActiveDescendant(),
40
40
  "aria-label": label,
41
41
  renderTarget: Boolean(selectProps.renderTarget)
42
- }, selectProps.renderTarget ? selectProps.renderTarget(value) : /*#__PURE__*/React.createElement(Label, null, getButtonLabel({
42
+ }, selectProps.renderTarget ? selectProps.renderTarget(Array.isArray(value) ? value.map(function (value) {
43
+ return valueToItemMap.get(value);
44
+ }) : valueToItemMap.get(value)) : /*#__PURE__*/React.createElement(Label, null, getButtonLabel({
43
45
  value: value,
44
46
  valueToItemMap: valueToItemMap,
45
47
  label: label,
@@ -15,7 +15,7 @@ var getLabel = function getLabel(_ref) {
15
15
  labelPlacement = _ref.labelPlacement,
16
16
  size = _ref.size,
17
17
  renderValue = _ref.renderValue;
18
- if (isEmpty(value)) {
18
+ if (isEmpty(value) && typeof value !== 'number') {
19
19
  if (!label || labelPlacement === 'outer') {
20
20
  return /*#__PURE__*/React.createElement(Placeholder, null, placeholder);
21
21
  }
@@ -31,7 +31,7 @@ var getLabel = function getLabel(_ref) {
31
31
  return value.map(function (currentValue, index) {
32
32
  var itemLabel = valueToItemMap.get(currentValue).label;
33
33
  return /*#__PURE__*/React.createElement(Chip, {
34
- text: renderValue ? renderValue(currentValue, itemLabel) : itemLabel,
34
+ text: renderValue ? renderValue(valueToItemMap.get(currentValue)) : itemLabel,
35
35
  onClick: function onClick(e) {
36
36
  e.stopPropagation();
37
37
  onChipClick(currentValue);
@@ -42,9 +42,9 @@ var getLabel = function getLabel(_ref) {
42
42
  }
43
43
  var itemLabel = valueToItemMap.get(value).label;
44
44
  if (!label || labelPlacement === 'outer') {
45
- return /*#__PURE__*/React.createElement(Value, null, renderValue ? renderValue(value, itemLabel) : itemLabel);
45
+ return /*#__PURE__*/React.createElement(Value, null, renderValue ? renderValue(valueToItemMap.get(value)) : itemLabel);
46
46
  }
47
- return /*#__PURE__*/React.createElement(InnerLabelWrapper, null, size !== 'xs' && /*#__PURE__*/React.createElement(InnerLabel, null, label), /*#__PURE__*/React.createElement(Value, null, renderValue ? renderValue(value, itemLabel) : itemLabel));
47
+ return /*#__PURE__*/React.createElement(InnerLabelWrapper, null, size !== 'xs' && /*#__PURE__*/React.createElement(InnerLabel, null, label), /*#__PURE__*/React.createElement(Value, null, renderValue ? renderValue(valueToItemMap.get(value)) : itemLabel));
48
48
  };
49
49
  export var Textfield = function Textfield(_ref2) {
50
50
  var opened = _ref2.opened,
@@ -85,7 +85,9 @@ export var Textfield = function Textfield(_ref2) {
85
85
  "aria-activedescendant": getActiveDescendant(),
86
86
  "aria-label": label,
87
87
  renderTarget: Boolean(selectProps.renderTarget)
88
- }, /*#__PURE__*/React.createElement(Wrapper, null, selectProps !== null && selectProps !== void 0 && selectProps.renderTarget ? selectProps.renderTarget(value) : /*#__PURE__*/React.createElement(React.Fragment, null, contentLeft && (!selectProps.multiselect || isEmpty(value)) && /*#__PURE__*/React.createElement(ContentLeftWrapper, null, contentLeft), /*#__PURE__*/React.createElement(ChipWrapper, null, getLabel({
88
+ }, /*#__PURE__*/React.createElement(Wrapper, null, selectProps !== null && selectProps !== void 0 && selectProps.renderTarget ? selectProps.renderTarget(Array.isArray(value) ? value.map(function (value) {
89
+ return valueToItemMap.get(value);
90
+ }) : valueToItemMap.get(value)) : /*#__PURE__*/React.createElement(React.Fragment, null, contentLeft && (!selectProps.multiselect || isEmpty(value)) && /*#__PURE__*/React.createElement(ContentLeftWrapper, null, contentLeft), /*#__PURE__*/React.createElement(ChipWrapper, null, getLabel({
89
91
  value: value,
90
92
  valueToItemMap: valueToItemMap,
91
93
  onChipClick: onChipClick,
@@ -3,9 +3,9 @@ var getLabel = function getLabel(_ref) {
3
3
  var value = _ref.value,
4
4
  valueToItemMap = _ref.valueToItemMap,
5
5
  renderValue = _ref.renderValue;
6
- var _ref2 = valueToItemMap.get(value === null || value === void 0 ? void 0 : value.toString()),
6
+ var _ref2 = valueToItemMap.get(value),
7
7
  label = _ref2.label;
8
- return renderValue ? renderValue(value, label) : label;
8
+ return renderValue ? renderValue(valueToItemMap.get(value)) : label;
9
9
  };
10
10
  export var getButtonLabel = function getButtonLabel(_ref3) {
11
11
  var value = _ref3.value,
@@ -13,7 +13,7 @@ export var getButtonLabel = function getButtonLabel(_ref3) {
13
13
  label = _ref3.label,
14
14
  renderValue = _ref3.renderValue,
15
15
  selectProps = _ref3.selectProps;
16
- if (isEmpty(value)) {
16
+ if (isEmpty(value) && typeof value !== 'number') {
17
17
  return label || '';
18
18
  }
19
19
  if (selectProps.multiselect && selectProps.isTargetAmount) {
@@ -29,8 +29,8 @@ export var getButtonLabel = function getButtonLabel(_ref3) {
29
29
  }).join(', ');
30
30
  }
31
31
  return getLabel({
32
- renderValue: renderValue,
33
32
  value: value,
34
- valueToItemMap: valueToItemMap
33
+ valueToItemMap: valueToItemMap,
34
+ renderValue: renderValue
35
35
  });
36
36
  };
@@ -0,0 +1,20 @@
1
+ export var getView = function getView(status) {
2
+ switch (status) {
3
+ case 'success':
4
+ {
5
+ return 'positive';
6
+ }
7
+ case 'error':
8
+ {
9
+ return 'negative';
10
+ }
11
+ case 'warning':
12
+ {
13
+ return 'warning';
14
+ }
15
+ default:
16
+ {
17
+ return 'default';
18
+ }
19
+ }
20
+ };
@@ -4,4 +4,5 @@ export { updateAncestors } from './updateAncestors';
4
4
  export { updateSingleAncestors } from './updateSingleAncestors';
5
5
  export { sizeToIconSize } from './sizeToIconSize';
6
6
  export { getCorrectHeight } from './getCorrectHeight';
7
- export { getButtonLabel } from './getButtonLabel';
7
+ export { getButtonLabel } from './getButtonLabel';
8
+ export { getView } from './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: {