@equinor/eds-core-react 0.29.2-dev14022023 → 0.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/README.md +9 -6
  2. package/dist/eds-core-react.cjs.js +805 -427
  3. package/dist/esm/components/Accordion/AccordionItem.js +17 -7
  4. package/dist/esm/components/Autocomplete/Autocomplete.js +21 -6
  5. package/dist/esm/components/Autocomplete/Autocomplete.tokens.js +1 -1
  6. package/dist/esm/components/Autocomplete/Option.js +17 -13
  7. package/dist/esm/components/Breadcrumbs/Breadcrumb.js +4 -3
  8. package/dist/esm/components/Breadcrumbs/Breadcrumbs.js +18 -9
  9. package/dist/esm/components/Button/tokens/contained.js +1 -1
  10. package/dist/esm/components/Button/tokens/contained_icon.js +1 -1
  11. package/dist/esm/components/Button/tokens/ghost.js +1 -1
  12. package/dist/esm/components/Button/tokens/icon.js +1 -1
  13. package/dist/esm/components/Button/tokens/outlined.js +1 -1
  14. package/dist/esm/components/Checkbox/Checkbox.tokens.js +4 -0
  15. package/dist/esm/components/Checkbox/Input.js +12 -9
  16. package/dist/esm/components/Dialog/DialogHeader.js +1 -1
  17. package/dist/esm/components/Input/Input.js +1 -1
  18. package/dist/esm/components/Input/Input.tokens.js +1 -1
  19. package/dist/esm/components/InputWrapper/InputWrapper.tokens.js +1 -1
  20. package/dist/esm/components/Menu/Menu.js +20 -5
  21. package/dist/esm/components/Menu/MenuItem.js +8 -5
  22. package/dist/esm/components/Radio/Radio.js +12 -9
  23. package/dist/esm/components/Radio/Radio.tokens.js +4 -0
  24. package/dist/esm/components/Select/NativeSelect/NativeSelect.js +2 -1
  25. package/dist/esm/components/SideBar/SideBar.js +1 -1
  26. package/dist/esm/components/SideBar/SideBarAccordion/index.js +228 -0
  27. package/dist/esm/components/SideBar/SideBarAccordionItem/index.js +71 -0
  28. package/dist/esm/components/SideBar/SidebarLink/index.js +1 -1
  29. package/dist/esm/components/SideBar/index.js +6 -0
  30. package/dist/esm/components/Slider/Output.js +8 -9
  31. package/dist/esm/components/Slider/Slider.js +98 -61
  32. package/dist/esm/components/Switch/Switch.js +16 -12
  33. package/dist/esm/components/Switch/Switch.styles.js +3 -5
  34. package/dist/esm/components/Switch/Switch.tokens.js +2 -10
  35. package/dist/esm/components/Switch/SwitchDefault.js +1 -1
  36. package/dist/esm/components/Table/DataCell/DataCell.tokens.js +1 -1
  37. package/dist/esm/node_modules/.pnpm/{ramda@0.28.0 → ramda@0.29.0}/node_modules/ramda/es/mergeWithKey.js +2 -0
  38. package/dist/types/components/Accordion/AccordionItem.d.ts +12 -2
  39. package/dist/types/components/Autocomplete/Autocomplete.d.ts +71 -15
  40. package/dist/types/components/Autocomplete/Option.d.ts +11 -4
  41. package/dist/types/components/Breadcrumbs/Breadcrumb.d.ts +2 -0
  42. package/dist/types/components/Breadcrumbs/Breadcrumbs.d.ts +16 -0
  43. package/dist/types/components/Icon/Icon.d.ts +1 -1
  44. package/dist/types/components/Input/Input.tokens.d.ts +10 -5
  45. package/dist/types/components/InputWrapper/InputWrapper.tokens.d.ts +10 -5
  46. package/dist/types/components/Menu/Menu.d.ts +4 -0
  47. package/dist/types/components/Menu/MenuItem.d.ts +16 -14
  48. package/dist/types/components/Progress/Circular/CircularProgress.d.ts +1 -1
  49. package/dist/types/components/Progress/Dots/DotProgress.d.ts +1 -1
  50. package/dist/types/components/Progress/Star/StarProgress.d.ts +1 -1
  51. package/dist/types/components/SideBar/SideBarAccordion/index.d.ts +38 -0
  52. package/dist/types/components/SideBar/SideBarAccordionItem/index.d.ts +15 -0
  53. package/dist/types/components/SideBar/index.d.ts +4 -0
  54. package/package.json +17 -17
  55. /package/dist/esm/node_modules/.pnpm/{ramda@0.28.0 → ramda@0.29.0}/node_modules/ramda/es/internal/_curry1.js +0 -0
  56. /package/dist/esm/node_modules/.pnpm/{ramda@0.28.0 → ramda@0.29.0}/node_modules/ramda/es/internal/_curry2.js +0 -0
  57. /package/dist/esm/node_modules/.pnpm/{ramda@0.28.0 → ramda@0.29.0}/node_modules/ramda/es/internal/_curry3.js +0 -0
  58. /package/dist/esm/node_modules/.pnpm/{ramda@0.28.0 → ramda@0.29.0}/node_modules/ramda/es/internal/_has.js +0 -0
  59. /package/dist/esm/node_modules/.pnpm/{ramda@0.28.0 → ramda@0.29.0}/node_modules/ramda/es/internal/_isObject.js +0 -0
  60. /package/dist/esm/node_modules/.pnpm/{ramda@0.28.0 → ramda@0.29.0}/node_modules/ramda/es/internal/_isPlaceholder.js +0 -0
  61. /package/dist/esm/node_modules/.pnpm/{ramda@0.28.0 → ramda@0.29.0}/node_modules/ramda/es/mergeDeepRight.js +0 -0
  62. /package/dist/esm/node_modules/.pnpm/{ramda@0.28.0 → ramda@0.29.0}/node_modules/ramda/es/mergeDeepWithKey.js +0 -0
@@ -4,14 +4,16 @@ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProper
4
4
  import { forwardRef, useState, Children, cloneElement, useEffect } from 'react';
5
5
  import { jsx } from 'react/jsx-runtime';
6
6
 
7
- var _excluded = ["headerLevel", "chevronPosition", "index", "accordionId", "isExpanded", "children", "disabled"];
7
+ var _excluded = ["headerLevel", "chevronPosition", "index", "accordionId", "isExpanded", "onExpandedChange", "children", "disabled"];
8
8
  var AccordionItem = /*#__PURE__*/forwardRef(function AccordionItem(_ref, ref) {
9
9
  var headerLevel = _ref.headerLevel,
10
10
  chevronPosition = _ref.chevronPosition,
11
11
  _ref$index = _ref.index,
12
12
  index = _ref$index === void 0 ? 0 : _ref$index,
13
13
  accordionId = _ref.accordionId,
14
- isExpanded = _ref.isExpanded,
14
+ _ref$isExpanded = _ref.isExpanded,
15
+ isExpanded = _ref$isExpanded === void 0 ? false : _ref$isExpanded,
16
+ onExpandedChange = _ref.onExpandedChange,
15
17
  children = _ref.children,
16
18
  disabled = _ref.disabled,
17
19
  props = _objectWithoutProperties(_ref, _excluded);
@@ -19,14 +21,20 @@ var AccordionItem = /*#__PURE__*/forwardRef(function AccordionItem(_ref, ref) {
19
21
  _useState2 = _slicedToArray(_useState, 2),
20
22
  expanded = _useState2[0],
21
23
  setExpanded = _useState2[1];
24
+ var controlled = onExpandedChange != undefined;
25
+ var activeExpandedState = controlled ? isExpanded : expanded;
22
26
  var toggleExpanded = function toggleExpanded() {
23
- setExpanded(!expanded);
27
+ if (controlled) {
28
+ onExpandedChange(!isExpanded);
29
+ } else {
30
+ setExpanded(!expanded);
31
+ }
24
32
  };
25
33
  var Children$1 = Children.map(children, function (child, childIndex) {
26
34
  var headerId = "".concat(accordionId, "-header-").concat(index + 1);
27
35
  var panelId = "".concat(accordionId, "-panel-").concat(index + 1);
28
36
  return childIndex === 0 ? /*#__PURE__*/cloneElement(child, {
29
- isExpanded: expanded,
37
+ isExpanded: activeExpandedState,
30
38
  toggleExpanded: toggleExpanded,
31
39
  id: headerId,
32
40
  panelId: panelId,
@@ -35,14 +43,16 @@ var AccordionItem = /*#__PURE__*/forwardRef(function AccordionItem(_ref, ref) {
35
43
  parentIndex: index,
36
44
  disabled: disabled
37
45
  }) : /*#__PURE__*/cloneElement(child, {
38
- hidden: !expanded,
46
+ hidden: !activeExpandedState,
39
47
  id: panelId,
40
48
  headerId: headerId
41
49
  });
42
50
  });
43
51
  useEffect(function () {
44
- setExpanded(isExpanded);
45
- }, [isExpanded]);
52
+ if (!controlled) {
53
+ setExpanded(isExpanded);
54
+ }
55
+ }, [isExpanded, controlled]);
46
56
  return /*#__PURE__*/jsx("div", _objectSpread(_objectSpread({}, props), {}, {
47
57
  ref: ref,
48
58
  children: Children$1
@@ -9,6 +9,7 @@ import styled, { css, ThemeProvider } from 'styled-components';
9
9
  import { Button } from '../Button/index.js';
10
10
  import { List } from '../List/index.js';
11
11
  import { Icon } from '../Icon/index.js';
12
+ import { Progress } from '../Progress/index.js';
12
13
  import { close, arrow_drop_up, arrow_drop_down } from '@equinor/eds-icons';
13
14
  import { multiSelect, selectTokens } from './Autocomplete.tokens.js';
14
15
  import { bordersTemplate, useToken, useIsomorphicLayoutEffect } from '@equinor/eds-utils';
@@ -19,7 +20,7 @@ import { useEds } from '../EdsProvider/eds.context.js';
19
20
  import { Label } from '../Label/Label.js';
20
21
  import { Input } from '../Input/Input.js';
21
22
 
22
- var _excluded = ["options", "label", "meta", "className", "style", "disabled", "readOnly", "hideClearButton", "onOptionsChange", "selectedOptions", "multiple", "initialSelectedOptions", "disablePortal", "optionDisabled", "optionsFilter", "autoWidth", "placeholder", "optionLabel", "clearSearchOnChange", "multiline"];
23
+ var _excluded = ["options", "label", "meta", "className", "style", "disabled", "readOnly", "loading", "hideClearButton", "onOptionsChange", "onInputChange", "selectedOptions", "multiple", "initialSelectedOptions", "disablePortal", "optionDisabled", "optionsFilter", "autoWidth", "placeholder", "optionLabel", "clearSearchOnChange", "multiline", "dropdownHeight", "optionComponent"];
23
24
  var Container = styled.div.withConfig({
24
25
  displayName: "Autocomplete__Container",
25
26
  componentId: "sc-yvif0e-0"
@@ -29,7 +30,7 @@ var StyledList = styled(List).withConfig({
29
30
  componentId: "sc-yvif0e-1"
30
31
  })(function (_ref) {
31
32
  var theme = _ref.theme;
32
- return css(["background-color:", ";box-shadow:", ";", " overflow-y:auto;overflow-x:hidden;max-height:300px;padding:0;display:grid;"], theme.background, theme.boxShadow, bordersTemplate(theme.border));
33
+ return css(["background-color:", ";box-shadow:", ";", " overflow-y:auto;overflow-x:hidden;padding:0;display:grid;"], theme.background, theme.boxShadow, bordersTemplate(theme.border));
33
34
  });
34
35
  var StyledButton = styled(Button).withConfig({
35
36
  displayName: "Autocomplete__StyledButton",
@@ -108,9 +109,12 @@ function AutocompleteInner(props, ref) {
108
109
  disabled = _props$disabled === void 0 ? false : _props$disabled,
109
110
  _props$readOnly = props.readOnly,
110
111
  readOnly = _props$readOnly === void 0 ? false : _props$readOnly,
112
+ _props$loading = props.loading,
113
+ loading = _props$loading === void 0 ? false : _props$loading,
111
114
  _props$hideClearButto = props.hideClearButton,
112
115
  hideClearButton = _props$hideClearButto === void 0 ? false : _props$hideClearButto,
113
116
  onOptionsChange = props.onOptionsChange,
117
+ onInputChange = props.onInputChange,
114
118
  selectedOptions = props.selectedOptions,
115
119
  multiple = props.multiple,
116
120
  _props$initialSelecte = props.initialSelectedOptions,
@@ -128,6 +132,9 @@ function AutocompleteInner(props, ref) {
128
132
  clearSearchOnChange = _props$clearSearchOnC === void 0 ? true : _props$clearSearchOnC,
129
133
  _props$multiline = props.multiline,
130
134
  multiline = _props$multiline === void 0 ? false : _props$multiline,
135
+ _props$dropdownHeight = props.dropdownHeight,
136
+ dropdownHeight = _props$dropdownHeight === void 0 ? 300 : _props$dropdownHeight,
137
+ optionComponent = props.optionComponent,
131
138
  other = _objectWithoutProperties(props, _excluded);
132
139
  var isControlled = Boolean(selectedOptions);
133
140
  var _useState = useState(options),
@@ -231,6 +238,7 @@ function AutocompleteInner(props, ref) {
231
238
  itemToString: getLabel,
232
239
  onInputValueChange: function onInputValueChange(_ref6) {
233
240
  var inputValue = _ref6.inputValue;
241
+ onInputChange && onInputChange(inputValue);
234
242
  setAvailableItems(options.filter(function (item) {
235
243
  if (optionsFilter) {
236
244
  return optionsFilter(item, inputValue);
@@ -434,7 +442,10 @@ function AutocompleteInner(props, ref) {
434
442
  })), {}, {
435
443
  children: /*#__PURE__*/jsxs(StyledList, _objectSpread(_objectSpread({}, getMenuProps({
436
444
  'aria-multiselectable': multiple ? 'true' : null,
437
- ref: scrollContainer
445
+ ref: scrollContainer,
446
+ style: {
447
+ maxHeight: "".concat(dropdownHeight, "px")
448
+ }
438
449
  }, {
439
450
  suppressRefError: true
440
451
  })), {}, {
@@ -460,7 +471,8 @@ function AutocompleteInner(props, ref) {
460
471
  highlighted: highlightedIndex === index && !isDisabled ? 'true' : 'false',
461
472
  isSelected: isSelected,
462
473
  isDisabled: isDisabled,
463
- multiline: multiline
474
+ multiline: multiline,
475
+ optionComponent: optionComponent === null || optionComponent === void 0 ? void 0 : optionComponent(item, isSelected)
464
476
  }, getItemProps(_objectSpread(_objectSpread({}, multiline && {
465
477
  ref: rowVirtualizer.measureElement
466
478
  }), {}, {
@@ -502,9 +514,11 @@ function AutocompleteInner(props, ref) {
502
514
  readOnly: readOnly,
503
515
  onFocus: openSelect,
504
516
  onClick: openSelect,
505
- rightAdornmentsWidth: 24 * 2 + 8 + 8,
517
+ rightAdornmentsWidth: hideClearButton ? 24 + 8 : 24 * 2 + 8,
506
518
  rightAdornments: /*#__PURE__*/jsxs(Fragment, {
507
- children: [showClearButton && /*#__PURE__*/jsx(StyledButton, {
519
+ children: [loading && /*#__PURE__*/jsx(Progress.Circular, {
520
+ size: 16
521
+ }), showClearButton && /*#__PURE__*/jsx(StyledButton, {
508
522
  variant: "ghost_icon",
509
523
  disabled: disabled || readOnly,
510
524
  "aria-label": 'clear options',
@@ -528,6 +542,7 @@ function AutocompleteInner(props, ref) {
528
542
  })
529
543
  }, other))
530
544
  }), disablePortal ? optionsList : /*#__PURE__*/jsx(FloatingPortal, {
545
+ id: "eds-autocomplete-container",
531
546
  children: optionsList
532
547
  })]
533
548
  })
@@ -1,6 +1,6 @@
1
1
  import _objectSpread from '@babel/runtime/helpers/objectSpread2';
2
2
  import { tokens } from '@equinor/eds-tokens';
3
- import mergeDeepRight from '../../node_modules/.pnpm/ramda@0.28.0/node_modules/ramda/es/mergeDeepRight.js';
3
+ import mergeDeepRight from '../../node_modules/.pnpm/ramda@0.29.0/node_modules/ramda/es/mergeDeepRight.js';
4
4
 
5
5
  var typography = tokens.typography,
6
6
  colors = tokens.colors,
@@ -3,10 +3,10 @@ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProper
3
3
  import { forwardRef } from 'react';
4
4
  import styled, { css } from 'styled-components';
5
5
  import { typographyTemplate, spacingsTemplate } from '@equinor/eds-utils';
6
- import { jsxs, jsx } from 'react/jsx-runtime';
6
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
7
7
  import { Checkbox } from '../Checkbox/Checkbox.js';
8
8
 
9
- var _excluded = ["value", "multiple", "isSelected", "isDisabled", "multiline", "onClick", "aria-selected"];
9
+ var _excluded = ["value", "optionComponent", "multiple", "isSelected", "isDisabled", "multiline", "onClick", "aria-selected"];
10
10
  var StyledListItem = styled.li.withConfig({
11
11
  displayName: "Option__StyledListItem",
12
12
  componentId: "sc-1ly11zu-0"
@@ -26,15 +26,16 @@ var Label = styled.span.withConfig({
26
26
  multiline = _ref2.multiline;
27
27
  return css(["", " text-overflow:ellipsis;white-space:", ";overflow:", ";overflow-wrap:anywhere;"], spacingsTemplate(theme.entities.label.spacings), multiline ? 'normal' : 'nowrap', multiline ? 'initial' : 'hidden');
28
28
  });
29
- var AutocompleteOption = /*#__PURE__*/forwardRef(function AutocompleteOption(_ref3, ref) {
30
- var value = _ref3.value,
31
- multiple = _ref3.multiple,
32
- isSelected = _ref3.isSelected,
33
- isDisabled = _ref3.isDisabled,
34
- multiline = _ref3.multiline,
35
- _onClick = _ref3.onClick,
36
- ariaSelected = _ref3['aria-selected'],
37
- other = _objectWithoutProperties(_ref3, _excluded);
29
+ function AutocompleteOptionInner(props, ref) {
30
+ var value = props.value,
31
+ optionComponent = props.optionComponent,
32
+ multiple = props.multiple,
33
+ isSelected = props.isSelected,
34
+ isDisabled = props.isDisabled,
35
+ multiline = props.multiline,
36
+ _onClick = props.onClick,
37
+ ariaSelected = props['aria-selected'],
38
+ other = _objectWithoutProperties(props, _excluded);
38
39
  return /*#__PURE__*/jsxs(StyledListItem, _objectSpread(_objectSpread({
39
40
  ref: ref,
40
41
  isdisabled: isDisabled ? 'true' : 'false',
@@ -52,11 +53,14 @@ var AutocompleteOption = /*#__PURE__*/forwardRef(function AutocompleteOption(_re
52
53
  onChange: function onChange() {
53
54
  return null;
54
55
  }
55
- }), /*#__PURE__*/jsx(Label, {
56
+ }), optionComponent ? /*#__PURE__*/jsx(Fragment, {
57
+ children: optionComponent
58
+ }) : /*#__PURE__*/jsx(Label, {
56
59
  multiline: multiline,
57
60
  children: value
58
61
  })]
59
62
  }));
60
- });
63
+ }
64
+ var AutocompleteOption = /*#__PURE__*/forwardRef(AutocompleteOptionInner);
61
65
 
62
66
  export { AutocompleteOption };
@@ -7,13 +7,13 @@ import { jsx } from 'react/jsx-runtime';
7
7
  import { Typography } from '../Typography/Typography.js';
8
8
  import { Tooltip } from '../Tooltip/Tooltip.js';
9
9
 
10
- var _excluded = ["children", "maxWidth", "href", "as"];
10
+ var _excluded = ["children", "maxWidth", "forceTooltip", "href", "as"];
11
11
  var states = breadcrumbs.states,
12
12
  typography = breadcrumbs.typography;
13
13
  var StyledTypography = styled(Typography).withConfig({
14
14
  displayName: "Breadcrumb__StyledTypography",
15
15
  componentId: "sc-10nvwte-0"
16
- })(["@media (hover:hover) and (pointer:fine){&:hover{text-decoration:underline;color:", ";cursor:pointer;}}white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block;text-decoration:none;color:", ";", ""], states.hover.typography.color, typography.color, function (_ref) {
16
+ })(["@media (hover:hover) and (pointer:fine){&:hover{text-decoration:underline;color:", ";cursor:pointer;}}white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block;text-decoration:none;color:", ";width:100%;", ""], states.hover.typography.color, typography.color, function (_ref) {
17
17
  var $maxWidth = _ref.$maxWidth;
18
18
  return css({
19
19
  maxWidth: $maxWidth
@@ -22,6 +22,7 @@ var StyledTypography = styled(Typography).withConfig({
22
22
  var Breadcrumb = /*#__PURE__*/forwardRef(function Breadcrumb(_ref2, ref) {
23
23
  var children = _ref2.children,
24
24
  maxWidth = _ref2.maxWidth,
25
+ forceTooltip = _ref2.forceTooltip,
25
26
  href = _ref2.href,
26
27
  as = _ref2.as,
27
28
  other = _objectWithoutProperties(_ref2, _excluded);
@@ -29,7 +30,7 @@ var Breadcrumb = /*#__PURE__*/forwardRef(function Breadcrumb(_ref2, ref) {
29
30
  href: href,
30
31
  ref: ref
31
32
  });
32
- var showTooltip = maxWidth > 0;
33
+ var showTooltip = maxWidth > 0 || forceTooltip;
33
34
  var isHrefDefined = href !== undefined;
34
35
  var forwardedAs = useMemo(function () {
35
36
  return as ? as : isHrefDefined ? 'a' : 'span';
@@ -8,18 +8,21 @@ import { spacingsTemplate } from '@equinor/eds-utils';
8
8
  import { jsxs, jsx } from 'react/jsx-runtime';
9
9
  import { Typography } from '../Typography/Typography.js';
10
10
 
11
- var _excluded = ["children", "collapse"];
11
+ var _excluded = ["children", "collapse", "wrap"];
12
12
  var spacings = breadcrumbs.spacings,
13
13
  typography = breadcrumbs.typography,
14
14
  states = breadcrumbs.states;
15
15
  var OrderedList = styled.ol.withConfig({
16
16
  displayName: "Breadcrumbs__OrderedList",
17
17
  componentId: "sc-12awlbz-0"
18
- })(["list-style:none;display:flex;padding:0;margin:0;flex-wrap:wrap;"]);
18
+ })(["list-style:none;display:flex;padding:0;margin:0;flex-wrap:wrap;flex-wrap:", ";"], function (_ref) {
19
+ var $wrap = _ref.$wrap;
20
+ return $wrap ? 'wrap' : 'nowrap';
21
+ });
19
22
  var ListItem = styled.li.withConfig({
20
23
  displayName: "Breadcrumbs__ListItem",
21
24
  componentId: "sc-12awlbz-1"
22
- })(["display:inline-block;"]);
25
+ })(["display:inline-block;min-width:30px;"]);
23
26
  var Separator = styled(Typography).withConfig({
24
27
  displayName: "Breadcrumbs__Separator",
25
28
  componentId: "sc-12awlbz-2"
@@ -28,10 +31,12 @@ var Collapsed = styled(Typography).withConfig({
28
31
  displayName: "Breadcrumbs__Collapsed",
29
32
  componentId: "sc-12awlbz-3"
30
33
  })(["@media (hover:hover) and (pointer:fine){&:hover{text-decoration:underline;color:", ";}}color:", ";text-decoration:none;"], states.hover.typography.color, typography.color);
31
- var Breadcrumbs = /*#__PURE__*/forwardRef(function Breadcrumbs(_ref, ref) {
32
- var children = _ref.children,
33
- collapse = _ref.collapse,
34
- rest = _objectWithoutProperties(_ref, _excluded);
34
+ var Breadcrumbs = /*#__PURE__*/forwardRef(function Breadcrumbs(_ref2, ref) {
35
+ var children = _ref2.children,
36
+ collapse = _ref2.collapse,
37
+ _ref2$wrap = _ref2.wrap,
38
+ wrap = _ref2$wrap === void 0 ? true : _ref2$wrap,
39
+ rest = _objectWithoutProperties(_ref2, _excluded);
35
40
  var props = _objectSpread(_objectSpread({}, rest), {}, {
36
41
  ref: ref
37
42
  });
@@ -42,8 +47,8 @@ var Breadcrumbs = /*#__PURE__*/forwardRef(function Breadcrumbs(_ref, ref) {
42
47
  var collapsedCrumbs = function collapsedCrumbs(allCrumbs) {
43
48
  var handleExpandClick = function handleExpandClick(e) {
44
49
  setExpanded(true);
45
- var _ref2 = e,
46
- key = _ref2.key;
50
+ var _ref3 = e,
51
+ key = _ref3.key;
47
52
  if (key === 'Enter') {
48
53
  setExpanded(true);
49
54
  }
@@ -53,6 +58,9 @@ var Breadcrumbs = /*#__PURE__*/forwardRef(function Breadcrumbs(_ref, ref) {
53
58
  }
54
59
  return [allCrumbs[0], /*#__PURE__*/jsxs(Fragment, {
55
60
  children: [/*#__PURE__*/jsx(ListItem, {
61
+ style: {
62
+ minWidth: 'unset'
63
+ },
56
64
  children: /*#__PURE__*/jsx(Collapsed, {
57
65
  link: true,
58
66
  role: "button",
@@ -91,6 +99,7 @@ var Breadcrumbs = /*#__PURE__*/forwardRef(function Breadcrumbs(_ref, ref) {
91
99
  return /*#__PURE__*/jsx("nav", _objectSpread(_objectSpread({}, props), {}, {
92
100
  "aria-label": "breadcrumbs",
93
101
  children: /*#__PURE__*/jsx(OrderedList, {
102
+ $wrap: wrap,
94
103
  children: collapse && !expanded ? collapsedCrumbs(allCrumbs) : allCrumbs
95
104
  })
96
105
  }));
@@ -1,6 +1,6 @@
1
1
  import { tokens } from '@equinor/eds-tokens';
2
2
  import { button } from './button.js';
3
- import mergeDeepRight from '../../../node_modules/.pnpm/ramda@0.28.0/node_modules/ramda/es/mergeDeepRight.js';
3
+ import mergeDeepRight from '../../../node_modules/.pnpm/ramda@0.29.0/node_modules/ramda/es/mergeDeepRight.js';
4
4
 
5
5
  var _tokens$colors = tokens.colors,
6
6
  primaryWhite = _tokens$colors.text.static_icons__primary_white.rgba,
@@ -1,6 +1,6 @@
1
1
  import { tokens } from '@equinor/eds-tokens';
2
2
  import { primary as primary$1, secondary as secondary$1, danger as danger$1 } from './contained.js';
3
- import mergeDeepRight from '../../../node_modules/.pnpm/ramda@0.28.0/node_modules/ramda/es/mergeDeepRight.js';
3
+ import mergeDeepRight from '../../../node_modules/.pnpm/ramda@0.29.0/node_modules/ramda/es/mergeDeepRight.js';
4
4
 
5
5
  var _tokens$clickbounds = tokens.clickbounds,
6
6
  clicboundHeight = _tokens$clickbounds.default__base,
@@ -1,6 +1,6 @@
1
1
  import { tokens } from '@equinor/eds-tokens';
2
2
  import { button } from './button.js';
3
- import mergeDeepRight from '../../../node_modules/.pnpm/ramda@0.28.0/node_modules/ramda/es/mergeDeepRight.js';
3
+ import mergeDeepRight from '../../../node_modules/.pnpm/ramda@0.29.0/node_modules/ramda/es/mergeDeepRight.js';
4
4
 
5
5
  var _tokens$colors$intera = tokens.colors.interactive,
6
6
  primaryColor = _tokens$colors$intera.primary__resting.rgba,
@@ -1,6 +1,6 @@
1
1
  import { tokens } from '@equinor/eds-tokens';
2
2
  import { button } from './button.js';
3
- import mergeDeepRight from '../../../node_modules/.pnpm/ramda@0.28.0/node_modules/ramda/es/mergeDeepRight.js';
3
+ import mergeDeepRight from '../../../node_modules/.pnpm/ramda@0.29.0/node_modules/ramda/es/mergeDeepRight.js';
4
4
 
5
5
  var _tokens$colors$intera = tokens.colors.interactive,
6
6
  primaryColor = _tokens$colors$intera.primary__resting.rgba,
@@ -1,6 +1,6 @@
1
1
  import { tokens } from '@equinor/eds-tokens';
2
2
  import { button } from './button.js';
3
- import mergeDeepRight from '../../../node_modules/.pnpm/ramda@0.28.0/node_modules/ramda/es/mergeDeepRight.js';
3
+ import mergeDeepRight from '../../../node_modules/.pnpm/ramda@0.29.0/node_modules/ramda/es/mergeDeepRight.js';
4
4
 
5
5
  var _tokens$colors$intera = tokens.colors.interactive,
6
6
  primaryColor = _tokens$colors$intera.primary__resting.rgba,
@@ -9,6 +9,8 @@ var _tokens$colors$intera = tokens.colors.interactive,
9
9
  _tokens$spacings$comf = tokens.spacings.comfortable,
10
10
  medium_small = _tokens$spacings$comf.medium_small,
11
11
  x_small = _tokens$spacings$comf.x_small,
12
+ x_large = _tokens$spacings$comf.x_large,
13
+ xx_large = _tokens$spacings$comf.xx_large,
12
14
  _tokens$clickbounds = tokens.clickbounds,
13
15
  clicboundSize = _tokens$clickbounds.default__base,
14
16
  compactClickboundSize = _tokens$clickbounds.compact__standard,
@@ -16,6 +18,7 @@ var _tokens$colors$intera = tokens.colors.interactive,
16
18
  var checkbox = {
17
19
  background: primaryColor,
18
20
  typography: labelTypography,
21
+ width: xx_large,
19
22
  spacings: {
20
23
  bottom: medium_small,
21
24
  top: medium_small,
@@ -44,6 +47,7 @@ var checkbox = {
44
47
  },
45
48
  modes: {
46
49
  compact: {
50
+ width: x_large,
47
51
  spacings: {
48
52
  bottom: x_small,
49
53
  top: x_small,
@@ -62,20 +62,23 @@ var Svg = styled.svg.attrs(function (_ref7) {
62
62
  var InputWrapper = styled.span.withConfig({
63
63
  displayName: "Input__InputWrapper",
64
64
  componentId: "sc-rqj7qf-3"
65
- })(["display:inline-grid;grid:[input] 1fr / [input] 1fr;border-radius:50%;", " @media (hover:hover) and (pointer:fine){&:hover{background-color:", ";}}"], function (_ref8) {
65
+ })(["display:inline-grid;grid:[input] 1fr / [input] 1fr;position:relative;", " &::before{content:'';position:absolute;width:", ";aspect-ratio:1/1;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:100%;}@media (hover:hover) and (pointer:fine){> svg{z-index:1;}&:hover{&::before{background-color:", ";}}}"], function (_ref8) {
66
66
  var theme = _ref8.theme;
67
67
  return spacingsTemplate(theme.spacings);
68
68
  }, function (_ref9) {
69
- var disabled = _ref9.disabled;
69
+ var theme = _ref9.theme;
70
+ return theme.width;
71
+ }, function (_ref10) {
72
+ var disabled = _ref10.disabled;
70
73
  return disabled ? 'transparent' : checkbox.states.hover.background;
71
74
  });
72
- var CheckboxInput = /*#__PURE__*/forwardRef(function CheckboxInput(_ref10, ref) {
73
- var _ref10$disabled = _ref10.disabled,
74
- disabled = _ref10$disabled === void 0 ? false : _ref10$disabled,
75
- indeterminate = _ref10.indeterminate,
76
- style = _ref10.style,
77
- className = _ref10.className,
78
- rest = _objectWithoutProperties(_ref10, _excluded);
75
+ var CheckboxInput = /*#__PURE__*/forwardRef(function CheckboxInput(_ref11, ref) {
76
+ var _ref11$disabled = _ref11.disabled,
77
+ disabled = _ref11$disabled === void 0 ? false : _ref11$disabled,
78
+ indeterminate = _ref11.indeterminate,
79
+ style = _ref11.style,
80
+ className = _ref11.className,
81
+ rest = _objectWithoutProperties(_ref11, _excluded);
79
82
  var _useEds = useEds(),
80
83
  density = _useEds.density;
81
84
  var token = useToken({
@@ -11,7 +11,7 @@ var StyledDialogHeader = styled.div.withConfig({
11
11
  componentId: "sc-mbwcos-0"
12
12
  })(function (_ref) {
13
13
  var theme = _ref.theme;
14
- return css(["display:flex;justify-content:space-betweene;algin-items:center;padding:", " ", " 0 ", ";"], theme.entities.children.spacings.top, theme.entities.children.spacings.right, theme.entities.children.spacings.left);
14
+ return css(["display:flex;justify-content:space-between;align-items:center;padding:", " ", " 0 ", ";"], theme.entities.children.spacings.top, theme.entities.children.spacings.right, theme.entities.children.spacings.left);
15
15
  });
16
16
  var StyledDivider = styled(Divider).withConfig({
17
17
  displayName: "DialogHeader__StyledDivider",
@@ -19,7 +19,7 @@ var Container = styled.div.withConfig({
19
19
  readOnly = _ref.readOnly;
20
20
  var states = token.states,
21
21
  entities = token.entities;
22
- return css(["--eds-input-adornment-color:", ";--eds-input-color:", ";position:relative;height:", ";width:", ";display:flex;flex-direction:row;border:none;box-sizing:border-box;box-shadow:", ";background:var(--eds-input-background,", ");", " &:focus-within{--eds-input-adornment-color:", ";box-shadow:none;", "}", " ", ""], entities.adornment.typography.color, token.typography.color, token.height, token.width, token.boxShadow, token.background, outlineTemplate(token.outline), (_entities$adornment = entities.adornment) === null || _entities$adornment === void 0 ? void 0 : (_entities$adornment$s = _entities$adornment.states.focus) === null || _entities$adornment$s === void 0 ? void 0 : _entities$adornment$s.outline.color, outlineTemplate(states.focus.outline), disabled && css(["--eds-input-adornment-color:", ";--eds-input-color:", ";cursor:not-allowed;box-shadow:none;"], states.disabled.typography.color, states.disabled.typography.color), readOnly && css({
22
+ return css(["--eds-input-adornment-color:", ";--eds-input-color:", ";position:relative;height:", ";width:", ";display:flex;flex-direction:row;border:none;box-sizing:border-box;box-shadow:", ";background:var(--eds-input-background,", ");", " &:focus-within{--eds-input-adornment-color:", ";box-shadow:none;", "}", " ", " & > input{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}"], entities.adornment.typography.color, token.typography.color, token.height, token.width, token.boxShadow, token.background, outlineTemplate(token.outline), (_entities$adornment = entities.adornment) === null || _entities$adornment === void 0 ? void 0 : (_entities$adornment$s = _entities$adornment.states.focus) === null || _entities$adornment$s === void 0 ? void 0 : _entities$adornment$s.outline.color, outlineTemplate(states.focus.outline), disabled && css(["--eds-input-adornment-color:", ";--eds-input-color:", ";cursor:not-allowed;box-shadow:none;"], states.disabled.typography.color, states.disabled.typography.color), readOnly && css({
23
23
  background: states.readOnly.background,
24
24
  boxShadow: states.readOnly.boxShadow
25
25
  }));
@@ -1,6 +1,6 @@
1
1
  import _objectSpread from '@babel/runtime/helpers/objectSpread2';
2
2
  import { tokens as tokens$1 } from '@equinor/eds-tokens';
3
- import mergeDeepRight from '../../node_modules/.pnpm/ramda@0.28.0/node_modules/ramda/es/mergeDeepRight.js';
3
+ import mergeDeepRight from '../../node_modules/.pnpm/ramda@0.29.0/node_modules/ramda/es/mergeDeepRight.js';
4
4
 
5
5
  var _tokens$colors = tokens$1.colors,
6
6
  background = _tokens$colors.ui.background__light.rgba,
@@ -1,6 +1,6 @@
1
1
  import _objectSpread from '@babel/runtime/helpers/objectSpread2';
2
2
  import { tokens } from '@equinor/eds-tokens';
3
- import mergeDeepRight from '../../node_modules/.pnpm/ramda@0.28.0/node_modules/ramda/es/mergeDeepRight.js';
3
+ import mergeDeepRight from '../../node_modules/.pnpm/ramda@0.29.0/node_modules/ramda/es/mergeDeepRight.js';
4
4
 
5
5
  var _tokens$colors = tokens.colors,
6
6
  background = _tokens$colors.ui.background__light.rgba,
@@ -1,3 +1,4 @@
1
+ import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
1
2
  import _objectSpread from '@babel/runtime/helpers/objectSpread2';
2
3
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
3
4
  import { forwardRef, useEffect, useMemo } from 'react';
@@ -6,13 +7,13 @@ import { MenuProvider, useMenu } from './Menu.context.js';
6
7
  import { MenuList } from './MenuList.js';
7
8
  import { bordersTemplate, useToken, mergeRefs, useIsomorphicLayoutEffect, useGlobalKeyPress } from '@equinor/eds-utils';
8
9
  import { menu } from './Menu.tokens.js';
9
- import { useFloating, offset, flip, shift, autoUpdate, useInteractions, useDismiss, FloatingPortal } from '@floating-ui/react';
10
+ import { offset, flip, shift, size, useFloating, autoUpdate, useInteractions, useDismiss, FloatingPortal } from '@floating-ui/react';
10
11
  import { jsx, Fragment } from 'react/jsx-runtime';
11
12
  import { Paper } from '../Paper/Paper.js';
12
13
  import { useEds } from '../EdsProvider/eds.context.js';
13
14
 
14
15
  var _excluded = ["children", "anchorEl", "onClose", "open"],
15
- _excluded2 = ["anchorEl", "open", "placement", "onClose", "style", "className"];
16
+ _excluded2 = ["anchorEl", "open", "placement", "matchAnchorWidth", "onClose", "style", "className"];
16
17
  var border = menu.border;
17
18
  var MenuPaper = styled(Paper).withConfig({
18
19
  displayName: "Menu__MenuPaper",
@@ -101,6 +102,8 @@ var Menu = /*#__PURE__*/forwardRef(function Menu(_ref3, ref) {
101
102
  open = _ref3.open,
102
103
  _ref3$placement = _ref3.placement,
103
104
  placement = _ref3$placement === void 0 ? 'bottom' : _ref3$placement,
105
+ _ref3$matchAnchorWidt = _ref3.matchAnchorWidth,
106
+ matchAnchorWidth = _ref3$matchAnchorWidt === void 0 ? false : _ref3$matchAnchorWidt,
104
107
  onClose = _ref3.onClose,
105
108
  style = _ref3.style,
106
109
  className = _ref3.className,
@@ -110,13 +113,25 @@ var Menu = /*#__PURE__*/forwardRef(function Menu(_ref3, ref) {
110
113
  var token = useToken({
111
114
  density: density
112
115
  }, menu);
116
+ var floatingMiddleware = [offset(4), flip(), shift({
117
+ padding: 8
118
+ })];
119
+ if (matchAnchorWidth) {
120
+ floatingMiddleware = [].concat(_toConsumableArray(floatingMiddleware), [size({
121
+ apply: function apply(_ref4) {
122
+ var rects = _ref4.rects,
123
+ elements = _ref4.elements;
124
+ Object.assign(elements.floating.style, {
125
+ width: "".concat(rects.reference.width, "px")
126
+ });
127
+ }
128
+ })]);
129
+ }
113
130
  var _useFloating = useFloating({
114
131
  placement: placement,
115
132
  open: open,
116
133
  onOpenChange: onClose,
117
- middleware: [offset(4), flip(), shift({
118
- padding: 8
119
- })]
134
+ middleware: floatingMiddleware
120
135
  }),
121
136
  x = _useFloating.x,
122
137
  y = _useFloating.y,
@@ -7,7 +7,7 @@ import { typographyTemplate, spacingsTemplate, outlineTemplate, mergeRefs } from
7
7
  import { useMenu } from './Menu.context.js';
8
8
  import { jsx } from 'react/jsx-runtime';
9
9
 
10
- var _excluded = ["children", "disabled", "index", "onClick", "closeMenuOnClick"];
10
+ var _excluded = ["children", "disabled", "index", "as", "onClick", "closeMenuOnClick"];
11
11
  var typography = menu.typography,
12
12
  _tokens$entities = menu.entities,
13
13
  _tokens$entities$item = _tokens$entities.item.states,
@@ -17,15 +17,15 @@ var typography = menu.typography,
17
17
  disabledToken = _tokens$entities$item.disabled,
18
18
  icon = _tokens$entities.icon;
19
19
  var Item = styled.button.attrs(function (_ref) {
20
- var isFocused = _ref.isFocused;
20
+ var $isFocused = _ref.$isFocused;
21
21
  return {
22
22
  role: 'menuitem',
23
- tabIndex: isFocused ? -1 : 0
23
+ tabIndex: $isFocused ? -1 : 0
24
24
  };
25
25
  }).withConfig({
26
26
  displayName: "MenuItem__Item",
27
27
  componentId: "sc-1g9fpbe-0"
28
- })(["border:0;background-color:transparent;width:auto;position:relative;z-index:2;", " ", " ", " ", ""], typographyTemplate(typography), function (_ref2) {
28
+ })(["border:0;background-color:transparent;width:auto;position:relative;z-index:2;text-decoration:none;", " ", " ", " ", ""], typographyTemplate(typography), function (_ref2) {
29
29
  var theme = _ref2.theme;
30
30
  return spacingsTemplate(theme.entities.item.spacings);
31
31
  }, function (_ref3) {
@@ -44,6 +44,8 @@ var MenuItem = /*#__PURE__*/forwardRef(function MenuItem(_ref5, ref) {
44
44
  disabled = _ref5.disabled,
45
45
  _ref5$index = _ref5.index,
46
46
  index = _ref5$index === void 0 ? 0 : _ref5$index,
47
+ _ref5$as = _ref5.as,
48
+ as = _ref5$as === void 0 ? 'button' : _ref5$as,
47
49
  _onClick = _ref5.onClick,
48
50
  _ref5$closeMenuOnClic = _ref5.closeMenuOnClick,
49
51
  closeMenuOnClick = _ref5$closeMenuOnClic === void 0 ? true : _ref5$closeMenuOnClic,
@@ -59,8 +61,9 @@ var MenuItem = /*#__PURE__*/forwardRef(function MenuItem(_ref5, ref) {
59
61
  };
60
62
  var isFocused = index === focusedIndex;
61
63
  var props = _objectSpread(_objectSpread({}, rest), {}, {
64
+ as: as,
62
65
  disabled: disabled,
63
- isFocused: isFocused
66
+ $isFocused: isFocused
64
67
  });
65
68
  return /*#__PURE__*/jsx(Item, _objectSpread(_objectSpread({}, props), {}, {
66
69
  ref: mergeRefs(ref, function (el) {
@@ -72,23 +72,26 @@ var LabelText = styled.span.withConfig({
72
72
  var InputWrapper = styled.span.withConfig({
73
73
  displayName: "Radio__InputWrapper",
74
74
  componentId: "sc-we59oz-5"
75
- })(["", " display:inline-grid;grid:[input] 1fr / [input] 1fr;border-radius:50%;cursor:", ";@media (hover:hover) and (pointer:fine){&:hover{background-color:", ";}}"], function (_ref9) {
75
+ })(["", " display:inline-grid;grid:[input] 1fr / [input] 1fr;position:relative;cursor:", ";&::before{content:'';position:absolute;width:", ";aspect-ratio:1/1;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:100%;}@media (hover:hover) and (pointer:fine){> svg{z-index:1;}&:hover{&::before{background-color:", ";}}}"], function (_ref9) {
76
76
  var theme = _ref9.theme;
77
77
  return spacingsTemplate(theme.spacings);
78
78
  }, function (_ref10) {
79
79
  var disabled = _ref10.disabled;
80
80
  return disabled ? 'not-allowed' : 'pointer';
81
81
  }, function (_ref11) {
82
- var disabled = _ref11.disabled;
82
+ var theme = _ref11.theme;
83
+ return theme.width;
84
+ }, function (_ref12) {
85
+ var disabled = _ref12.disabled;
83
86
  return disabled ? 'transparent' : comfortable.states.hover.background;
84
87
  });
85
- var Radio = /*#__PURE__*/forwardRef(function Radio(_ref12, ref) {
86
- var label = _ref12.label,
87
- _ref12$disabled = _ref12.disabled,
88
- disabled = _ref12$disabled === void 0 ? false : _ref12$disabled,
89
- className = _ref12.className,
90
- style = _ref12.style,
91
- rest = _objectWithoutProperties(_ref12, _excluded);
88
+ var Radio = /*#__PURE__*/forwardRef(function Radio(_ref13, ref) {
89
+ var label = _ref13.label,
90
+ _ref13$disabled = _ref13.disabled,
91
+ disabled = _ref13$disabled === void 0 ? false : _ref13$disabled,
92
+ className = _ref13.className,
93
+ style = _ref13.style,
94
+ rest = _objectWithoutProperties(_ref13, _excluded);
92
95
  var _useEds = useEds(),
93
96
  density = _useEds.density;
94
97
  var token = useToken({