@equinor/eds-core-react 0.26.0 → 0.28.0-dev12052022

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 (170) hide show
  1. package/dist/eds-core-react.cjs.js +1603 -2493
  2. package/dist/esm/components/Accordion/Accordion.js +8 -11
  3. package/dist/esm/components/Accordion/Accordion.tokens.js +14 -14
  4. package/dist/esm/components/Accordion/AccordionHeader.js +20 -32
  5. package/dist/esm/components/Accordion/AccordionHeaderActions.js +5 -7
  6. package/dist/esm/components/Accordion/AccordionHeaderTitle.js +6 -8
  7. package/dist/esm/components/Accordion/AccordionItem.js +12 -15
  8. package/dist/esm/components/Accordion/AccordionPanel.js +8 -9
  9. package/dist/esm/components/Autocomplete/Autocomplete.js +141 -159
  10. package/dist/esm/components/Autocomplete/Autocomplete.tokens.js +31 -15
  11. package/dist/esm/components/Autocomplete/Option.js +21 -16
  12. package/dist/esm/components/Avatar/Avatar.js +7 -8
  13. package/dist/esm/components/Banner/Banner.js +6 -10
  14. package/dist/esm/components/Banner/Banner.tokens.js +12 -12
  15. package/dist/esm/components/Banner/BannerActions.js +4 -6
  16. package/dist/esm/components/Banner/BannerIcon.js +5 -8
  17. package/dist/esm/components/Banner/BannerMessage.js +1 -3
  18. package/dist/esm/components/Breadcrumbs/Breadcrumb.js +5 -9
  19. package/dist/esm/components/Breadcrumbs/Breadcrumbs.js +11 -16
  20. package/dist/esm/components/Breadcrumbs/Breadcrumbs.tokens.js +3 -3
  21. package/dist/esm/components/Button/Button.js +16 -30
  22. package/dist/esm/components/Button/ButtonGroup/ButtonGroup.js +2 -4
  23. package/dist/esm/components/Button/ToggleButton/ToggleButton.js +7 -14
  24. package/dist/esm/components/Button/tokens/button.js +14 -14
  25. package/dist/esm/components/Button/tokens/contained.js +9 -9
  26. package/dist/esm/components/Button/tokens/contained_icon.js +3 -3
  27. package/dist/esm/components/Button/tokens/ghost.js +9 -9
  28. package/dist/esm/components/Button/tokens/icon.js +13 -13
  29. package/dist/esm/components/Button/tokens/outlined.js +10 -10
  30. package/dist/esm/components/Card/Card.js +5 -8
  31. package/dist/esm/components/Card/Card.tokens.js +6 -6
  32. package/dist/esm/components/Card/CardActions.js +5 -8
  33. package/dist/esm/components/Card/CardContent.js +1 -2
  34. package/dist/esm/components/Card/CardHeader.js +1 -3
  35. package/dist/esm/components/Card/CardHeaderTitle.js +1 -3
  36. package/dist/esm/components/Card/CardMedia.js +4 -6
  37. package/dist/esm/components/Checkbox/Checkbox.js +6 -7
  38. package/dist/esm/components/Checkbox/Checkbox.tokens.js +12 -12
  39. package/dist/esm/components/Checkbox/Input.js +10 -14
  40. package/dist/esm/components/Chip/Chip.js +20 -31
  41. package/dist/esm/components/Chip/Chip.tokens.js +20 -20
  42. package/dist/esm/components/Chip/Icon.js +1 -3
  43. package/dist/esm/components/Dialog/Dialog.js +11 -16
  44. package/dist/esm/components/Dialog/Dialog.tokens.js +5 -5
  45. package/dist/esm/components/Dialog/DialogActions.js +5 -4
  46. package/dist/esm/components/Dialog/DialogContent.js +4 -6
  47. package/dist/esm/components/Dialog/DialogHeader.js +1 -3
  48. package/dist/esm/components/Dialog/DialogTitle.js +2 -3
  49. package/dist/esm/components/Divider/Divider.js +9 -12
  50. package/dist/esm/components/Divider/Divider.tokens.js +6 -6
  51. package/dist/esm/components/EdsProvider/eds.context.js +6 -9
  52. package/dist/esm/components/Icon/Icon.js +19 -29
  53. package/dist/esm/components/Icon/library.js +0 -1
  54. package/dist/esm/components/Input/Input.js +26 -40
  55. package/dist/esm/components/Input/Input.tokens.js +18 -18
  56. package/dist/esm/components/InputWrapper/HelperText/HelperText.js +4 -6
  57. package/dist/esm/components/InputWrapper/HelperText/HelperText.token.js +2 -2
  58. package/dist/esm/components/InputWrapper/InputWrapper.js +9 -13
  59. package/dist/esm/components/InputWrapper/InputWrapper.tokens.js +18 -18
  60. package/dist/esm/components/Label/Label.js +8 -8
  61. package/dist/esm/components/Label/Label.tokens.js +2 -2
  62. package/dist/esm/components/List/List.js +4 -5
  63. package/dist/esm/components/List/ListItem.js +2 -3
  64. package/dist/esm/components/Menu/Menu.context.js +5 -12
  65. package/dist/esm/components/Menu/Menu.js +38 -50
  66. package/dist/esm/components/Menu/Menu.tokens.js +14 -14
  67. package/dist/esm/components/Menu/MenuItem.js +15 -21
  68. package/dist/esm/components/Menu/MenuList.js +9 -18
  69. package/dist/esm/components/Menu/MenuSection.js +5 -3
  70. package/dist/esm/components/Pagination/Pagination.js +14 -24
  71. package/dist/esm/components/Pagination/Pagination.tokens.js +3 -3
  72. package/dist/esm/components/Pagination/PaginationItem.js +3 -5
  73. package/dist/esm/components/Pagination/paginationControl.js +2 -10
  74. package/dist/esm/components/Paper/Paper.js +1 -3
  75. package/dist/esm/components/Paper/Paper.tokens.js +1 -1
  76. package/dist/esm/components/Popover/Popover.js +32 -48
  77. package/dist/esm/components/Popover/Popover.tokens.js +8 -8
  78. package/dist/esm/components/Popover/PopoverActions.js +1 -3
  79. package/dist/esm/components/Popover/PopoverContent.js +4 -4
  80. package/dist/esm/components/Popover/PopoverHeader.js +1 -3
  81. package/dist/esm/components/Popover/PopoverTitle.js +1 -3
  82. package/dist/esm/components/Progress/Circular/CircularProgress.js +12 -26
  83. package/dist/esm/components/Progress/Circular/CircularProgress.tokens.js +5 -5
  84. package/dist/esm/components/Progress/Dots/DotProgress.js +4 -9
  85. package/dist/esm/components/Progress/Dots/DotProgress.tokens.js +4 -4
  86. package/dist/esm/components/Progress/Linear/LinearProgress.js +8 -16
  87. package/dist/esm/components/Progress/Linear/LinearProgress.tokens.js +2 -2
  88. package/dist/esm/components/Progress/Star/StarProgress.js +8 -12
  89. package/dist/esm/components/Radio/Radio.js +10 -12
  90. package/dist/esm/components/Radio/Radio.tokens.js +12 -12
  91. package/dist/esm/components/Scrim/Scrim.js +5 -9
  92. package/dist/esm/components/Search/Search.js +6 -13
  93. package/dist/esm/components/Select/NativeSelect/NativeSelect.js +12 -16
  94. package/dist/esm/components/Select/NativeSelect/NativeSelect.tokens.js +5 -5
  95. package/dist/esm/components/SideBar/SideBar.context.js +4 -8
  96. package/dist/esm/components/SideBar/SideBar.js +17 -22
  97. package/dist/esm/components/SideBar/SideBar.tokens.js +17 -17
  98. package/dist/esm/components/SideBar/SideBarButton/index.js +12 -17
  99. package/dist/esm/components/SideBar/SideBarContent.js +1 -3
  100. package/dist/esm/components/SideBar/SideBarFooter.js +1 -3
  101. package/dist/esm/components/SideBar/SideBarToggle.js +7 -10
  102. package/dist/esm/components/SideBar/SidebarLink/index.js +24 -28
  103. package/dist/esm/components/SideSheet/SideSheet.js +14 -15
  104. package/dist/esm/components/SideSheet/SideSheet.tokens.js +6 -6
  105. package/dist/esm/components/Slider/MinMax.js +2 -2
  106. package/dist/esm/components/Slider/Output.js +4 -4
  107. package/dist/esm/components/Slider/Slider.js +27 -48
  108. package/dist/esm/components/Slider/Slider.tokens.js +14 -14
  109. package/dist/esm/components/Slider/SliderInput.js +10 -11
  110. package/dist/esm/components/Snackbar/Snackbar.js +13 -19
  111. package/dist/esm/components/Snackbar/Snackbar.tokens.js +9 -9
  112. package/dist/esm/components/Snackbar/SnackbarAction.js +1 -3
  113. package/dist/esm/components/Switch/Switch.js +8 -10
  114. package/dist/esm/components/Switch/Switch.styles.js +5 -6
  115. package/dist/esm/components/Switch/Switch.tokens.js +18 -18
  116. package/dist/esm/components/Switch/SwitchDefault.js +10 -11
  117. package/dist/esm/components/Switch/SwitchSmall.js +11 -12
  118. package/dist/esm/components/Table/Body.js +1 -2
  119. package/dist/esm/components/Table/Caption.js +1 -1
  120. package/dist/esm/components/Table/Cell.js +1 -4
  121. package/dist/esm/components/Table/DataCell/DataCell.js +9 -12
  122. package/dist/esm/components/Table/DataCell/DataCell.tokens.js +17 -18
  123. package/dist/esm/components/Table/Head/Head.js +2 -3
  124. package/dist/esm/components/Table/Head/Head.tokens.js +2 -2
  125. package/dist/esm/components/Table/HeaderCell/HeaderCell.js +7 -12
  126. package/dist/esm/components/Table/HeaderCell/HeaderCell.tokens.js +14 -14
  127. package/dist/esm/components/Table/Row/Row.js +0 -2
  128. package/dist/esm/components/Table/Row/Row.tokens.js +2 -2
  129. package/dist/esm/components/Table/Table.js +4 -3
  130. package/dist/esm/components/TableOfContents/LinkItem.js +1 -2
  131. package/dist/esm/components/TableOfContents/TableOfContents.js +7 -9
  132. package/dist/esm/components/TableOfContents/TableOfContents.tokens.js +12 -12
  133. package/dist/esm/components/Tabs/Tab.js +6 -7
  134. package/dist/esm/components/Tabs/TabList.js +13 -22
  135. package/dist/esm/components/Tabs/TabPanel.js +0 -1
  136. package/dist/esm/components/Tabs/TabPanels.js +3 -5
  137. package/dist/esm/components/Tabs/Tabs.js +24 -37
  138. package/dist/esm/components/Tabs/Tabs.tokens.js +13 -13
  139. package/dist/esm/components/TextField/TextField.js +17 -23
  140. package/dist/esm/components/Textarea/Textarea.js +11 -19
  141. package/dist/esm/components/Tooltip/Tooltip.js +37 -50
  142. package/dist/esm/components/Tooltip/Tooltip.tokens.js +7 -7
  143. package/dist/esm/components/TopBar/Actions.js +4 -3
  144. package/dist/esm/components/TopBar/CustomContent.js +4 -3
  145. package/dist/esm/components/TopBar/Header.js +4 -3
  146. package/dist/esm/components/TopBar/TopBar.js +10 -12
  147. package/dist/esm/components/TopBar/TopBar.tokens.js +2 -2
  148. package/dist/esm/components/Typography/Typography.js +15 -23
  149. package/dist/esm/components/Typography/Typography.tokens.js +10 -12
  150. package/dist/esm/index.js +0 -2
  151. package/dist/esm/node_modules/.pnpm/ramda@0.28.0/node_modules/ramda/es/internal/_curry2.js +0 -2
  152. package/dist/esm/node_modules/.pnpm/ramda@0.28.0/node_modules/ramda/es/internal/_curry3.js +0 -3
  153. package/dist/esm/node_modules/.pnpm/ramda@0.28.0/node_modules/ramda/es/mergeDeepRight.js +2 -2
  154. package/dist/esm/node_modules/.pnpm/ramda@0.28.0/node_modules/ramda/es/mergeDeepWithKey.js +2 -1
  155. package/dist/esm/node_modules/.pnpm/ramda@0.28.0/node_modules/ramda/es/mergeWithKey.js +2 -4
  156. package/dist/types/components/Select/index.d.ts +0 -2
  157. package/dist/types/components/SideBar/SideBarButton/index.d.ts +6 -3
  158. package/dist/types/components/SideBar/SideBarToggle.d.ts +2 -2
  159. package/dist/types/components/Slider/Slider.d.ts +4 -4
  160. package/package.json +6 -5
  161. package/dist/esm/components/Select/MultiSelect/MultiSelect.js +0 -226
  162. package/dist/esm/components/Select/Select.tokens.js +0 -92
  163. package/dist/esm/components/Select/SingleSelect/SingleSelect.js +0 -160
  164. package/dist/esm/components/Select/commonStyles.js +0 -43
  165. package/dist/types/components/Select/MultiSelect/MultiSelect.d.ts +0 -49
  166. package/dist/types/components/Select/MultiSelect/index.d.ts +0 -1
  167. package/dist/types/components/Select/Select.tokens.d.ts +0 -3
  168. package/dist/types/components/Select/SingleSelect/SingleSelect.d.ts +0 -49
  169. package/dist/types/components/Select/SingleSelect/index.d.ts +0 -1
  170. package/dist/types/components/Select/commonStyles.d.ts +0 -27
@@ -1,226 +0,0 @@
1
- import _objectSpread from '@babel/runtime/helpers/objectSpread2';
2
- import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
3
- import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
4
- import { forwardRef, useState } from 'react';
5
- import { useMultipleSelection, useCombobox } from 'downshift';
6
- import { Icon } from '../../Icon/index.js';
7
- import { CheckboxInput } from '../../Checkbox/Input.js';
8
- import { close, arrow_drop_up, arrow_drop_down } from '@equinor/eds-icons';
9
- import styled, { ThemeProvider } from 'styled-components';
10
- import { multiSelect } from '../Select.tokens.js';
11
- import { StyledListItem, Container, StyledInputWrapper, PaddedInput, StyledButton, StyledList } from '../commonStyles.js';
12
- import { spacingsTemplate, useToken } from '@equinor/eds-utils';
13
- import { jsx, jsxs } from 'react/jsx-runtime';
14
- import { useEds } from '../../EdsProvider/eds.context.js';
15
- import { Label } from '../../Label/Label.js';
16
-
17
- var _excluded = ["items", "initialSelectedItems", "label", "meta", "className", "disabled", "readOnly", "selectedOptions", "handleSelectedItemsChange"];
18
- var PaddedStyledListItem = styled(StyledListItem).withConfig({
19
- displayName: "MultiSelect__PaddedStyledListItem",
20
- componentId: "sc-69ntfg-0"
21
- })(["display:flex;align-items:center;", ""], function (_ref) {
22
- var theme = _ref.theme;
23
- return spacingsTemplate(theme.spacings);
24
- });
25
-
26
- /** @deprecated Use `<Autocomplete multiple />` instead. */
27
- var MultiSelect = /*#__PURE__*/forwardRef(function MultiSelect(_ref2, ref) {
28
- var _ref2$items = _ref2.items,
29
- items = _ref2$items === void 0 ? [] : _ref2$items,
30
- _ref2$initialSelected = _ref2.initialSelectedItems,
31
- initialSelectedItems = _ref2$initialSelected === void 0 ? [] : _ref2$initialSelected,
32
- label = _ref2.label,
33
- meta = _ref2.meta,
34
- className = _ref2.className,
35
- _ref2$disabled = _ref2.disabled,
36
- disabled = _ref2$disabled === void 0 ? false : _ref2$disabled,
37
- _ref2$readOnly = _ref2.readOnly,
38
- readOnly = _ref2$readOnly === void 0 ? false : _ref2$readOnly,
39
- selectedOptions = _ref2.selectedOptions,
40
- handleSelectedItemsChange = _ref2.handleSelectedItemsChange,
41
- other = _objectWithoutProperties(_ref2, _excluded);
42
-
43
- var isControlled = selectedOptions ? true : false;
44
-
45
- var _useState = useState(''),
46
- _useState2 = _slicedToArray(_useState, 2),
47
- inputValue = _useState2[0],
48
- setInputValue = _useState2[1];
49
-
50
- var _useEds = useEds(),
51
- density = _useEds.density;
52
-
53
- var token = useToken({
54
- density: density
55
- }, multiSelect);
56
- var multipleSelectionProps = {
57
- initialSelectedItems: initialSelectedItems,
58
- onSelectedItemsChange: function onSelectedItemsChange(changes) {
59
- if (handleSelectedItemsChange) {
60
- handleSelectedItemsChange(changes);
61
- }
62
- }
63
- };
64
-
65
- if (isControlled) {
66
- multipleSelectionProps = _objectSpread(_objectSpread({}, multipleSelectionProps), {}, {
67
- selectedItems: selectedOptions
68
- });
69
- }
70
-
71
- var _useMultipleSelection = useMultipleSelection(multipleSelectionProps),
72
- getDropdownProps = _useMultipleSelection.getDropdownProps,
73
- addSelectedItem = _useMultipleSelection.addSelectedItem,
74
- removeSelectedItem = _useMultipleSelection.removeSelectedItem,
75
- selectedItems = _useMultipleSelection.selectedItems,
76
- reset = _useMultipleSelection.reset;
77
-
78
- var getFilteredItems = function getFilteredItems(items) {
79
- return items.filter(function (item) {
80
- return item.toLowerCase().includes(inputValue.toLowerCase());
81
- });
82
- };
83
-
84
- var _useCombobox = useCombobox({
85
- inputValue: inputValue,
86
- selectedItem: null,
87
- items: getFilteredItems(items),
88
- stateReducer: function stateReducer(state, actionAndChanges) {
89
- var changes = actionAndChanges.changes,
90
- type = actionAndChanges.type;
91
-
92
- switch (type) {
93
- case useCombobox.stateChangeTypes.InputKeyDownEnter:
94
- case useCombobox.stateChangeTypes.ItemClick:
95
- return _objectSpread(_objectSpread({}, changes), {}, {
96
- isOpen: true,
97
- // keep menu open after selection.
98
- highlightedIndex: state.highlightedIndex,
99
- inputValue: '' // don't add the item string as input value at selection. */
100
-
101
- });
102
-
103
- case useCombobox.stateChangeTypes.InputBlur:
104
- return _objectSpread(_objectSpread({}, changes), {}, {
105
- inputValue: '' // don't add the item string as input value at selection.
106
-
107
- });
108
-
109
- default:
110
- return changes;
111
- }
112
- },
113
- onStateChange: function onStateChange(_ref3) {
114
- var inputValue = _ref3.inputValue,
115
- type = _ref3.type,
116
- selectedItem = _ref3.selectedItem;
117
-
118
- switch (type) {
119
- case useCombobox.stateChangeTypes.InputChange:
120
- setInputValue(inputValue);
121
- break;
122
-
123
- case useCombobox.stateChangeTypes.InputKeyDownEnter:
124
- case useCombobox.stateChangeTypes.ItemClick:
125
- case useCombobox.stateChangeTypes.InputBlur:
126
- setInputValue('');
127
-
128
- if (selectedItem) {
129
- selectedItems.includes(selectedItem) ? removeSelectedItem(selectedItem) : addSelectedItem(selectedItem);
130
- }
131
-
132
- break;
133
- }
134
- }
135
- }),
136
- isOpen = _useCombobox.isOpen,
137
- getToggleButtonProps = _useCombobox.getToggleButtonProps,
138
- getLabelProps = _useCombobox.getLabelProps,
139
- getMenuProps = _useCombobox.getMenuProps,
140
- getInputProps = _useCombobox.getInputProps,
141
- getComboboxProps = _useCombobox.getComboboxProps,
142
- highlightedIndex = _useCombobox.highlightedIndex,
143
- getItemProps = _useCombobox.getItemProps,
144
- openMenu = _useCombobox.openMenu;
145
-
146
- var placeholderText = items.length > 0 ? "".concat(selectedItems.length, "/").concat(items.length, " selected") : '';
147
-
148
- var openSelect = function openSelect() {
149
- if (!isOpen && !(disabled || readOnly)) {
150
- openMenu();
151
- }
152
- };
153
-
154
- var handleClear = function handleClear() {
155
- reset();
156
- setInputValue('');
157
- };
158
-
159
- return /*#__PURE__*/jsx(ThemeProvider, {
160
- theme: token,
161
- children: /*#__PURE__*/jsxs(Container, {
162
- className: className,
163
- ref: ref,
164
- children: [/*#__PURE__*/jsx(Label, _objectSpread(_objectSpread({}, getLabelProps()), {}, {
165
- label: label,
166
- meta: meta,
167
- disabled: disabled
168
- })), /*#__PURE__*/jsxs(StyledInputWrapper, _objectSpread(_objectSpread({}, getComboboxProps()), {}, {
169
- children: [/*#__PURE__*/jsx(PaddedInput, _objectSpread(_objectSpread({}, getInputProps( // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
170
- getDropdownProps({
171
- preventKeyAction: isOpen,
172
- disabled: disabled
173
- }))), {}, {
174
- placeholder: placeholderText,
175
- readOnly: readOnly,
176
- onFocus: openSelect
177
- }, other)), Boolean(selectedItems.length || inputValue) && /*#__PURE__*/jsx(StyledButton, {
178
- variant: "ghost_icon",
179
- disabled: disabled || readOnly,
180
- "aria-label": 'clear options',
181
- title: "clear",
182
- onClick: handleClear,
183
- style: {
184
- right: 32
185
- },
186
- children: /*#__PURE__*/jsx(Icon, {
187
- data: close,
188
- size: 16
189
- })
190
- }), /*#__PURE__*/jsx(StyledButton, _objectSpread(_objectSpread({
191
- variant: "ghost_icon"
192
- }, getToggleButtonProps({
193
- disabled: disabled || readOnly
194
- })), {}, {
195
- "aria-label": 'toggle options',
196
- title: "open",
197
- children: /*#__PURE__*/jsx(Icon, {
198
- data: isOpen ? arrow_drop_up : arrow_drop_down
199
- })
200
- }))]
201
- })), /*#__PURE__*/jsx(StyledList, _objectSpread(_objectSpread({}, getMenuProps()), {}, {
202
- children: isOpen && getFilteredItems(items).map(function (item, index) {
203
- return /*#__PURE__*/jsxs(PaddedStyledListItem, _objectSpread(_objectSpread({
204
- highlighted: highlightedIndex === index ? 'true' : 'false'
205
- }, getItemProps({
206
- item: item,
207
- index: index,
208
- disabled: disabled
209
- })), {}, {
210
- children: [/*#__PURE__*/jsx(CheckboxInput, {
211
- checked: selectedItems.includes(item),
212
- value: item,
213
- onChange: function onChange() {
214
- return null;
215
- }
216
- }), /*#__PURE__*/jsx("span", {
217
- children: item
218
- })]
219
- }), "".concat(item));
220
- })
221
- }))]
222
- })
223
- });
224
- });
225
-
226
- export { MultiSelect };
@@ -1,92 +0,0 @@
1
- import _objectSpread from '@babel/runtime/helpers/objectSpread2';
2
- import { tokens } from '@equinor/eds-tokens';
3
- import mergeDeepRight from '../../node_modules/.pnpm/ramda@0.28.0/node_modules/ramda/es/mergeDeepRight.js';
4
-
5
- var typography = tokens.typography,
6
- colors = tokens.colors,
7
- _tokens$shape = tokens.shape,
8
- straight = _tokens$shape.straight,
9
- borderRadius = _tokens$shape.corners.borderRadius,
10
- _tokens$spacings$comf = tokens.spacings.comfortable,
11
- spacingSmall = _tokens$spacings$comf.small,
12
- spacingMediumSmall = _tokens$spacings$comf.medium_small,
13
- spacingMedium = _tokens$spacings$comf.medium,
14
- spacingLarge = _tokens$spacings$comf.large,
15
- xx_small = _tokens$spacings$comf.xx_small,
16
- boxShadow = tokens.elevation.temporary_nav;
17
- var select = {
18
- background: colors.ui.background__default.rgba,
19
- boxShadow: boxShadow,
20
- minHeight: straight.minHeight,
21
- spacings: {
22
- top: spacingMedium,
23
- right: spacingLarge,
24
- bottom: spacingMedium,
25
- left: spacingLarge
26
- },
27
- typography: _objectSpread(_objectSpread({}, typography.navigation.menu_title), {}, {
28
- color: colors.text.static_icons__default.rgba
29
- }),
30
- border: {
31
- type: 'border',
32
- radius: borderRadius
33
- },
34
- states: {
35
- hover: {
36
- background: colors.ui.background__medium.rgba
37
- },
38
- active: {
39
- background: colors.interactive.primary__selected_highlight.rgba
40
- }
41
- },
42
- entities: {
43
- button: {
44
- height: '24px',
45
- spacings: {
46
- left: spacingSmall,
47
- right: spacingSmall,
48
- top: '6px'
49
- },
50
- typography: {
51
- color: colors.text.static_icons__tertiary.rgba
52
- }
53
- }
54
- },
55
- modes: {
56
- compact: {
57
- spacings: {
58
- left: spacingSmall,
59
- right: spacingSmall,
60
- top: spacingSmall,
61
- bottom: spacingSmall
62
- },
63
- entities: {
64
- button: {
65
- spacings: {
66
- left: spacingSmall,
67
- right: spacingSmall,
68
- top: '0'
69
- }
70
- }
71
- }
72
- }
73
- }
74
- };
75
- var multiSelect = mergeDeepRight(select, {
76
- spacings: {
77
- top: '0',
78
- bottom: '0',
79
- left: spacingMediumSmall,
80
- right: spacingLarge
81
- },
82
- modes: {
83
- compact: {
84
- spacings: {
85
- top: xx_small,
86
- bottom: '0'
87
- }
88
- }
89
- }
90
- });
91
-
92
- export { multiSelect, select };
@@ -1,160 +0,0 @@
1
- import _objectSpread from '@babel/runtime/helpers/objectSpread2';
2
- import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
3
- import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
4
- import { forwardRef, useState, useEffect } from 'react';
5
- import { useCombobox } from 'downshift';
6
- import styled, { ThemeProvider } from 'styled-components';
7
- import { Icon } from '../../Icon/index.js';
8
- import { close, arrow_drop_up, arrow_drop_down } from '@equinor/eds-icons';
9
- import { spacingsTemplate, useToken } from '@equinor/eds-utils';
10
- import { select } from '../Select.tokens.js';
11
- import { StyledListItem, Container, StyledInputWrapper, PaddedInput, StyledButton, StyledList } from '../commonStyles.js';
12
- import { jsx, jsxs } from 'react/jsx-runtime';
13
- import { useEds } from '../../EdsProvider/eds.context.js';
14
- import { Label } from '../../Label/Label.js';
15
-
16
- var _excluded = ["items", "label", "meta", "className", "disabled", "readOnly", "initialSelectedItem", "selectedOption", "handleSelectedItemChange"];
17
- var PaddedStyledListItem = styled(StyledListItem).withConfig({
18
- displayName: "SingleSelect__PaddedStyledListItem",
19
- componentId: "sc-rh1yw2-0"
20
- })(["", ""], function (_ref) {
21
- var theme = _ref.theme;
22
- return spacingsTemplate(theme.spacings);
23
- });
24
- /** @deprecated Use `<Autocomplete />` instead */
25
-
26
- var SingleSelect = /*#__PURE__*/forwardRef(function SingleSelect(_ref2, ref) {
27
- var _ref2$items = _ref2.items,
28
- items = _ref2$items === void 0 ? [] : _ref2$items,
29
- label = _ref2.label,
30
- meta = _ref2.meta,
31
- className = _ref2.className,
32
- _ref2$disabled = _ref2.disabled,
33
- disabled = _ref2$disabled === void 0 ? false : _ref2$disabled,
34
- _ref2$readOnly = _ref2.readOnly,
35
- readOnly = _ref2$readOnly === void 0 ? false : _ref2$readOnly,
36
- initialSelectedItem = _ref2.initialSelectedItem,
37
- selectedOption = _ref2.selectedOption,
38
- handleSelectedItemChange = _ref2.handleSelectedItemChange,
39
- other = _objectWithoutProperties(_ref2, _excluded);
40
-
41
- var _useState = useState(items),
42
- _useState2 = _slicedToArray(_useState, 2),
43
- inputItems = _useState2[0],
44
- setInputItems = _useState2[1];
45
-
46
- var isControlled = selectedOption !== undefined ? true : false;
47
-
48
- var _useEds = useEds(),
49
- density = _useEds.density;
50
-
51
- var token = useToken({
52
- density: density
53
- }, select);
54
- useEffect(function () {
55
- setInputItems(items);
56
- }, [items]);
57
- var comboboxProps = {
58
- items: inputItems,
59
- onSelectedItemChange: handleSelectedItemChange,
60
- onInputValueChange: function onInputValueChange(_ref3) {
61
- var inputValue = _ref3.inputValue;
62
- setInputItems(items.filter(function (item) {
63
- return item.toLowerCase().includes(inputValue.toLowerCase());
64
- }));
65
- },
66
- onIsOpenChange: function onIsOpenChange(_ref4) {
67
- var selectedItem = _ref4.selectedItem;
68
-
69
- if (inputItems.length === 1 && selectedItem === inputItems[0]) {
70
- setInputItems(items);
71
- }
72
- },
73
- initialSelectedItem: initialSelectedItem
74
- };
75
-
76
- if (isControlled) {
77
- comboboxProps = _objectSpread(_objectSpread({}, comboboxProps), {}, {
78
- selectedItem: selectedOption
79
- });
80
- }
81
-
82
- var _useCombobox = useCombobox(comboboxProps),
83
- isOpen = _useCombobox.isOpen,
84
- getToggleButtonProps = _useCombobox.getToggleButtonProps,
85
- getLabelProps = _useCombobox.getLabelProps,
86
- getMenuProps = _useCombobox.getMenuProps,
87
- getInputProps = _useCombobox.getInputProps,
88
- getComboboxProps = _useCombobox.getComboboxProps,
89
- highlightedIndex = _useCombobox.highlightedIndex,
90
- getItemProps = _useCombobox.getItemProps,
91
- openMenu = _useCombobox.openMenu,
92
- selectedItem = _useCombobox.selectedItem,
93
- reset = _useCombobox.reset,
94
- inputValue = _useCombobox.inputValue;
95
-
96
- var openSelect = function openSelect() {
97
- if (!isOpen && !(disabled || readOnly)) {
98
- openMenu();
99
- }
100
- };
101
-
102
- return /*#__PURE__*/jsx(ThemeProvider, {
103
- theme: token,
104
- children: /*#__PURE__*/jsxs(Container, {
105
- className: className,
106
- ref: ref,
107
- children: [/*#__PURE__*/jsx(Label, _objectSpread(_objectSpread({}, getLabelProps()), {}, {
108
- label: label,
109
- meta: meta,
110
- disabled: disabled
111
- })), /*#__PURE__*/jsxs(StyledInputWrapper, _objectSpread(_objectSpread({}, getComboboxProps()), {}, {
112
- children: [/*#__PURE__*/jsx(PaddedInput, _objectSpread(_objectSpread({}, getInputProps({
113
- disabled: disabled
114
- })), {}, {
115
- readOnly: readOnly,
116
- onFocus: openSelect,
117
- onClick: openSelect
118
- }, other)), Boolean(inputValue) && /*#__PURE__*/jsx(StyledButton, {
119
- variant: "ghost_icon",
120
- disabled: disabled || readOnly,
121
- "aria-label": 'clear options',
122
- title: "clear",
123
- onClick: reset,
124
- style: {
125
- right: 32
126
- },
127
- children: /*#__PURE__*/jsx(Icon, {
128
- data: close,
129
- size: 16
130
- })
131
- }), /*#__PURE__*/jsx(StyledButton, _objectSpread(_objectSpread({
132
- variant: "ghost_icon"
133
- }, getToggleButtonProps({
134
- disabled: disabled || readOnly
135
- })), {}, {
136
- "aria-label": 'toggle options',
137
- title: "open",
138
- children: /*#__PURE__*/jsx(Icon, {
139
- data: isOpen ? arrow_drop_up : arrow_drop_down
140
- })
141
- }))]
142
- })), /*#__PURE__*/jsx(StyledList, _objectSpread(_objectSpread({}, getMenuProps()), {}, {
143
- children: isOpen && inputItems.map(function (item, index) {
144
- return /*#__PURE__*/jsx(PaddedStyledListItem, _objectSpread(_objectSpread({
145
- highlighted: highlightedIndex === index ? 'true' : 'false',
146
- active: selectedItem === item ? 'true' : 'false'
147
- }, getItemProps({
148
- item: item,
149
- index: index,
150
- disabled: disabled
151
- })), {}, {
152
- children: item
153
- }), "".concat(item));
154
- })
155
- }))]
156
- })
157
- });
158
- });
159
-
160
- export { SingleSelect };
@@ -1,43 +0,0 @@
1
- import { List } from '../List/index.js';
2
- import { Button } from '../Button/index.js';
3
- import styled, { css } from 'styled-components';
4
- import { select } from './Select.tokens.js';
5
- import { bordersTemplate, typographyTemplate } from '@equinor/eds-utils';
6
- import { Input } from '../Input/Input.js';
7
-
8
- var buttonToken = select.entities.button;
9
- var Container = styled.div.withConfig({
10
- displayName: "commonStyles__Container",
11
- componentId: "sc-v98ajk-0"
12
- })(["position:relative;"]);
13
- var PaddedInput = styled(Input).withConfig({
14
- displayName: "commonStyles__PaddedInput",
15
- componentId: "sc-v98ajk-1"
16
- })(["padding-right:calc( ", " + ", " + ", " + 0px );"], buttonToken.height, buttonToken.spacings.left, buttonToken.spacings.right);
17
- var StyledList = styled(List).withConfig({
18
- displayName: "commonStyles__StyledList",
19
- componentId: "sc-v98ajk-2"
20
- })(["background-color:", ";box-shadow:", ";overflow-y:scroll;max-height:300px;padding:0;", " margin-top:4px;position:absolute;right:0;left:0;z-index:50;"], select.background, select.boxShadow, bordersTemplate(select.border));
21
- var StyledListItem = styled(List.Item).withConfig({
22
- displayName: "commonStyles__StyledListItem",
23
- componentId: "sc-v98ajk-3"
24
- })(function (_ref) {
25
- var theme = _ref.theme,
26
- highlighted = _ref.highlighted,
27
- active = _ref.active;
28
- var backgroundColor = highlighted === 'true' ? theme.states.hover.background : active === 'true' ? theme.states.active.background : theme.background;
29
- return css(["margin:0;list-style:none;background-color:", ";", ";cursor:", ";"], backgroundColor, typographyTemplate(theme.typography), highlighted === 'true' ? 'pointer' : 'default');
30
- });
31
- var StyledButton = styled(Button).withConfig({
32
- displayName: "commonStyles__StyledButton",
33
- componentId: "sc-v98ajk-4"
34
- })(function (_ref2) {
35
- var button = _ref2.theme.entities.button;
36
- return css(["position:absolute;right:", ";height:", ";width:", ";top:", ";color:", ";"], button.spacings.right, button.height, button.height, button.spacings.top, button.typography.color);
37
- });
38
- var StyledInputWrapper = styled.div.withConfig({
39
- displayName: "commonStyles__StyledInputWrapper",
40
- componentId: "sc-v98ajk-5"
41
- })(["position:relative;"]);
42
-
43
- export { Container, PaddedInput, StyledButton, StyledInputWrapper, StyledList, StyledListItem };
@@ -1,49 +0,0 @@
1
- import { SelectHTMLAttributes } from 'react';
2
- import { UseMultipleSelectionStateChange } from 'downshift';
3
- export declare type MultiSelectProps = {
4
- /** List of options to choose from */
5
- items: string[];
6
- /** Label for the select element */
7
- label: string;
8
- /** Array of initial selected items */
9
- initialSelectedItems?: string[];
10
- /** Meta text, for instance unit */
11
- meta?: string;
12
- /** Disabled state */
13
- disabled?: boolean;
14
- /** Read Only */
15
- readOnly?: boolean;
16
- /** If this prop is used, the select will become a controlled component. Use an empty
17
- * array [] if there will be no initial selected items
18
- * Note that this prop replaces the need for ```initialSelectedItems```
19
- * The items that should be selected. */
20
- selectedOptions?: string[];
21
- /** Callback for the selected item change
22
- * changes.selectedItem gives the selected item
23
- */
24
- handleSelectedItemsChange?: (changes: UseMultipleSelectionStateChange<string>) => void;
25
- } & SelectHTMLAttributes<HTMLSelectElement>;
26
- /** @deprecated Use `<Autocomplete multiple />` instead. */
27
- export declare const MultiSelect: import("react").ForwardRefExoticComponent<{
28
- /** List of options to choose from */
29
- items: string[];
30
- /** Label for the select element */
31
- label: string;
32
- /** Array of initial selected items */
33
- initialSelectedItems?: string[];
34
- /** Meta text, for instance unit */
35
- meta?: string;
36
- /** Disabled state */
37
- disabled?: boolean;
38
- /** Read Only */
39
- readOnly?: boolean;
40
- /** If this prop is used, the select will become a controlled component. Use an empty
41
- * array [] if there will be no initial selected items
42
- * Note that this prop replaces the need for ```initialSelectedItems```
43
- * The items that should be selected. */
44
- selectedOptions?: string[];
45
- /** Callback for the selected item change
46
- * changes.selectedItem gives the selected item
47
- */
48
- handleSelectedItemsChange?: (changes: UseMultipleSelectionStateChange<string>) => void;
49
- } & SelectHTMLAttributes<HTMLSelectElement> & import("react").RefAttributes<HTMLDivElement>>;
@@ -1 +0,0 @@
1
- export * from './MultiSelect';
@@ -1,3 +0,0 @@
1
- import type { ComponentToken } from '@equinor/eds-tokens';
2
- export declare const select: ComponentToken;
3
- export declare const multiSelect: ComponentToken;
@@ -1,49 +0,0 @@
1
- import { SelectHTMLAttributes } from 'react';
2
- import { UseComboboxStateChange } from 'downshift';
3
- export declare type SingleSelectProps = {
4
- /** List of options to choose from */
5
- items: string[];
6
- /** Label for the select element */
7
- label: string;
8
- /** Meta text, for instance unit */
9
- meta?: string;
10
- /** Disabled state */
11
- disabled?: boolean;
12
- /** Read Only */
13
- readOnly?: boolean;
14
- /** Pass an item that should be selected when the Select is initialized. */
15
- initialSelectedItem?: string;
16
- /** If this prop is used, the select will become a controlled component.
17
- * Note that this prop replaces the need for ```initialSelectedItem```
18
- *
19
- * The item that should be selected. */
20
- selectedOption?: string;
21
- /** Callback for the selected item change
22
- * changes.selectedItem gives the selected item
23
- */
24
- handleSelectedItemChange?: (changes: UseComboboxStateChange<string>) => void;
25
- } & SelectHTMLAttributes<HTMLSelectElement>;
26
- /** @deprecated Use `<Autocomplete />` instead */
27
- export declare const SingleSelect: import("react").ForwardRefExoticComponent<{
28
- /** List of options to choose from */
29
- items: string[];
30
- /** Label for the select element */
31
- label: string;
32
- /** Meta text, for instance unit */
33
- meta?: string;
34
- /** Disabled state */
35
- disabled?: boolean;
36
- /** Read Only */
37
- readOnly?: boolean;
38
- /** Pass an item that should be selected when the Select is initialized. */
39
- initialSelectedItem?: string;
40
- /** If this prop is used, the select will become a controlled component.
41
- * Note that this prop replaces the need for ```initialSelectedItem```
42
- *
43
- * The item that should be selected. */
44
- selectedOption?: string;
45
- /** Callback for the selected item change
46
- * changes.selectedItem gives the selected item
47
- */
48
- handleSelectedItemChange?: (changes: UseComboboxStateChange<string>) => void;
49
- } & SelectHTMLAttributes<HTMLSelectElement> & import("react").RefAttributes<HTMLDivElement>>;
@@ -1 +0,0 @@
1
- export * from './SingleSelect';
@@ -1,27 +0,0 @@
1
- import { HTMLAttributes } from 'react';
2
- declare type ContainerProps = HTMLAttributes<HTMLDivElement>;
3
- declare type StyledListItemType = {
4
- highlighted: string;
5
- active?: string;
6
- };
7
- export declare const Container: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, ContainerProps, never>;
8
- export declare const PaddedInput: import("styled-components").StyledComponent<import("@equinor/eds-utils").OverridableComponent<import("../Input").InputProps, HTMLInputElement>, import("styled-components").DefaultTheme, {}, never>;
9
- export declare const StyledList: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<{
10
- variant?: "bullet" | "numbered";
11
- start?: string;
12
- } & HTMLAttributes<HTMLOListElement | HTMLUListElement> & import("react").RefAttributes<HTMLOListElement | HTMLUListElement>> & {
13
- Item: import("react").ForwardRefExoticComponent<import("../List").ListItemProps & import("react").RefAttributes<HTMLLIElement>>;
14
- }, import("styled-components").DefaultTheme, {}, never>;
15
- export declare const StyledListItem: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("../List").ListItemProps & import("react").RefAttributes<HTMLLIElement>>, import("styled-components").DefaultTheme, StyledListItemType, never>;
16
- export declare const StyledButton: import("styled-components").StyledComponent<import("@equinor/eds-utils").OverridableComponent<import("../Button").ButtonProps, HTMLButtonElement> & {
17
- Group: import("react").ForwardRefExoticComponent<{
18
- vertical?: boolean;
19
- } & HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
20
- Toggle: import("react").ForwardRefExoticComponent<{
21
- multiple?: boolean;
22
- selectedIndexes?: number[];
23
- onChange?: (indexes: number[]) => void;
24
- } & Omit<HTMLAttributes<HTMLElement>, "onChange"> & Pick<import("../Button").ButtonGroupProps, "vertical"> & import("react").RefAttributes<HTMLDivElement>>;
25
- }, import("styled-components").DefaultTheme, {}, never>;
26
- export declare const StyledInputWrapper: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
27
- export {};