@equinor/eds-core-react 0.23.0-dev.20221003 → 0.24.0-dev.20221006

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 (177) hide show
  1. package/dist/eds-core-react.cjs.js +4147 -5179
  2. package/dist/esm/components/Accordion/Accordion.js +26 -21
  3. package/dist/esm/components/Accordion/Accordion.tokens.js +23 -62
  4. package/dist/esm/components/Accordion/AccordionHeader.js +58 -77
  5. package/dist/esm/components/Accordion/AccordionHeaderActions.js +19 -23
  6. package/dist/esm/components/Accordion/AccordionHeaderTitle.js +19 -23
  7. package/dist/esm/components/Accordion/AccordionItem.js +32 -25
  8. package/dist/esm/components/Accordion/AccordionPanel.js +22 -27
  9. package/dist/esm/components/Accordion/index.js +1 -1
  10. package/dist/esm/components/Autocomplete/Autocomplete.js +279 -272
  11. package/dist/esm/components/Autocomplete/Autocomplete.tokens.js +18 -27
  12. package/dist/esm/components/Autocomplete/Option.js +27 -25
  13. package/dist/esm/components/Avatar/Avatar.js +23 -22
  14. package/dist/esm/components/Avatar/Avatar.tokens.js +1 -1
  15. package/dist/esm/components/Banner/Banner.js +31 -27
  16. package/dist/esm/components/Banner/Banner.tokens.js +19 -47
  17. package/dist/esm/components/Banner/BannerActions.js +21 -20
  18. package/dist/esm/components/Banner/BannerIcon.js +28 -28
  19. package/dist/esm/components/Banner/BannerMessage.js +16 -14
  20. package/dist/esm/components/Banner/index.js +1 -1
  21. package/dist/esm/components/Breadcrumbs/Breadcrumb.js +30 -29
  22. package/dist/esm/components/Breadcrumbs/Breadcrumbs.js +47 -40
  23. package/dist/esm/components/Breadcrumbs/Breadcrumbs.tokens.js +5 -20
  24. package/dist/esm/components/Breadcrumbs/index.js +1 -1
  25. package/dist/esm/components/Button/Button.js +49 -46
  26. package/dist/esm/components/Button/ButtonGroup/ButtonGroup.js +22 -24
  27. package/dist/esm/components/Button/ButtonGroup/ButtonGroup.tokens.js +2 -8
  28. package/dist/esm/components/Button/InnerFullWidth.js +10 -9
  29. package/dist/esm/components/Button/ToggleButton/ToggleButton.js +31 -21
  30. package/dist/esm/components/Button/index.js +1 -1
  31. package/dist/esm/components/Button/tokens/button.js +31 -60
  32. package/dist/esm/components/Button/tokens/contained.js +14 -38
  33. package/dist/esm/components/Button/tokens/contained_icon.js +10 -13
  34. package/dist/esm/components/Button/tokens/ghost.js +13 -36
  35. package/dist/esm/components/Button/tokens/icon.js +20 -46
  36. package/dist/esm/components/Button/tokens/index.js +1 -1
  37. package/dist/esm/components/Button/tokens/outlined.js +15 -42
  38. package/dist/esm/components/Card/Card.js +28 -26
  39. package/dist/esm/components/Card/Card.tokens.js +11 -32
  40. package/dist/esm/components/Card/CardActions.js +24 -23
  41. package/dist/esm/components/Card/CardContent.js +13 -13
  42. package/dist/esm/components/Card/CardHeader.js +15 -14
  43. package/dist/esm/components/Card/CardHeaderTitle.js +14 -11
  44. package/dist/esm/components/Card/CardMedia.js +21 -21
  45. package/dist/esm/components/Card/index.js +1 -1
  46. package/dist/esm/components/Checkbox/Checkbox.js +20 -20
  47. package/dist/esm/components/Checkbox/Checkbox.tokens.js +14 -39
  48. package/dist/esm/components/Checkbox/Input.js +63 -78
  49. package/dist/esm/components/Chip/Chip.js +60 -70
  50. package/dist/esm/components/Chip/Chip.tokens.js +27 -68
  51. package/dist/esm/components/Chip/Icon.js +9 -15
  52. package/dist/esm/components/Dialog/Dialog.js +36 -31
  53. package/dist/esm/components/Dialog/Dialog.tokens.js +8 -29
  54. package/dist/esm/components/Dialog/DialogActions.js +15 -15
  55. package/dist/esm/components/Dialog/DialogContent.js +23 -22
  56. package/dist/esm/components/Dialog/DialogHeader.js +17 -16
  57. package/dist/esm/components/Dialog/DialogTitle.js +15 -15
  58. package/dist/esm/components/Dialog/index.js +1 -1
  59. package/dist/esm/components/Divider/Divider.js +28 -25
  60. package/dist/esm/components/Divider/Divider.tokens.js +10 -24
  61. package/dist/esm/components/EdsProvider/eds.context.js +26 -16
  62. package/dist/esm/components/Icon/Icon.js +63 -67
  63. package/dist/esm/components/Icon/index.js +1 -1
  64. package/dist/esm/components/Icon/library.js +8 -8
  65. package/dist/esm/components/Input/Input.js +37 -40
  66. package/dist/esm/components/Input/Input.tokens.js +32 -43
  67. package/dist/esm/components/Label/Label.js +19 -17
  68. package/dist/esm/components/Label/Label.tokens.js +7 -10
  69. package/dist/esm/components/List/List.js +18 -19
  70. package/dist/esm/components/List/List.tokens.js +2 -6
  71. package/dist/esm/components/List/ListItem.js +9 -7
  72. package/dist/esm/components/List/index.js +1 -1
  73. package/dist/esm/components/Menu/Menu.context.js +45 -34
  74. package/dist/esm/components/Menu/Menu.js +92 -90
  75. package/dist/esm/components/Menu/Menu.tokens.js +24 -54
  76. package/dist/esm/components/Menu/MenuItem.js +50 -58
  77. package/dist/esm/components/Menu/MenuList.js +54 -50
  78. package/dist/esm/components/Menu/MenuSection.js +9 -9
  79. package/dist/esm/components/Menu/index.js +1 -1
  80. package/dist/esm/components/Pagination/Pagination.js +75 -71
  81. package/dist/esm/components/Pagination/Pagination.tokens.js +5 -18
  82. package/dist/esm/components/Pagination/PaginationItem.js +21 -19
  83. package/dist/esm/components/Pagination/paginationControl.js +22 -18
  84. package/dist/esm/components/Paper/Paper.js +15 -14
  85. package/dist/esm/components/Paper/Paper.tokens.js +4 -12
  86. package/dist/esm/components/Popover/Popover.js +85 -88
  87. package/dist/esm/components/Popover/Popover.tokens.js +8 -27
  88. package/dist/esm/components/Popover/PopoverActions.js +16 -16
  89. package/dist/esm/components/Popover/PopoverContent.js +16 -15
  90. package/dist/esm/components/Popover/PopoverHeader.js +17 -16
  91. package/dist/esm/components/Popover/PopoverTitle.js +16 -15
  92. package/dist/esm/components/Popover/index.js +1 -1
  93. package/dist/esm/components/Progress/Circular/CircularProgress.js +46 -34
  94. package/dist/esm/components/Progress/Circular/CircularProgress.tokens.js +8 -24
  95. package/dist/esm/components/Progress/Dots/DotProgress.js +23 -20
  96. package/dist/esm/components/Progress/Dots/DotProgress.tokens.js +8 -20
  97. package/dist/esm/components/Progress/Linear/LinearProgress.js +34 -24
  98. package/dist/esm/components/Progress/Linear/LinearProgress.tokens.js +4 -13
  99. package/dist/esm/components/Progress/Star/StarProgress.js +29 -25
  100. package/dist/esm/components/Progress/Star/StarProgress.tokens.js +2 -10
  101. package/dist/esm/components/Progress/index.js +1 -1
  102. package/dist/esm/components/Radio/Radio.js +57 -76
  103. package/dist/esm/components/Radio/Radio.tokens.js +14 -39
  104. package/dist/esm/components/Scrim/Scrim.js +24 -21
  105. package/dist/esm/components/Scrim/Scrim.tokens.js +3 -11
  106. package/dist/esm/components/Search/Search.js +130 -117
  107. package/dist/esm/components/Search/Search.tokens.js +12 -36
  108. package/dist/esm/components/Select/MultiSelect/MultiSelect.js +115 -105
  109. package/dist/esm/components/Select/NativeSelect/NativeSelect.js +45 -43
  110. package/dist/esm/components/Select/NativeSelect/NativeSelect.tokens.js +10 -14
  111. package/dist/esm/components/Select/Select.tokens.js +18 -27
  112. package/dist/esm/components/Select/SingleSelect/SingleSelect.js +86 -79
  113. package/dist/esm/components/Select/commonStyles.js +14 -26
  114. package/dist/esm/components/SideSheet/SideSheet.js +29 -27
  115. package/dist/esm/components/SideSheet/SideSheet.tokens.js +12 -28
  116. package/dist/esm/components/Slider/MinMax.js +6 -11
  117. package/dist/esm/components/Slider/Output.js +10 -17
  118. package/dist/esm/components/Slider/Slider.js +126 -116
  119. package/dist/esm/components/Slider/Slider.tokens.js +19 -51
  120. package/dist/esm/components/Slider/SliderInput.js +35 -37
  121. package/dist/esm/components/Snackbar/Snackbar.js +45 -34
  122. package/dist/esm/components/Snackbar/Snackbar.tokens.js +17 -44
  123. package/dist/esm/components/Snackbar/SnackbarAction.js +16 -15
  124. package/dist/esm/components/Snackbar/index.js +1 -1
  125. package/dist/esm/components/Switch/Switch.js +37 -38
  126. package/dist/esm/components/Switch/Switch.styles.js +14 -20
  127. package/dist/esm/components/Switch/Switch.tokens.js +25 -70
  128. package/dist/esm/components/Switch/SwitchDefault.js +27 -37
  129. package/dist/esm/components/Switch/SwitchSmall.js +28 -41
  130. package/dist/esm/components/Table/Body.js +10 -8
  131. package/dist/esm/components/Table/Caption.js +9 -9
  132. package/dist/esm/components/Table/Cell.js +14 -16
  133. package/dist/esm/components/Table/DataCell/DataCell.js +27 -28
  134. package/dist/esm/components/Table/DataCell/DataCell.tokens.js +38 -73
  135. package/dist/esm/components/Table/Head/Head.js +12 -10
  136. package/dist/esm/components/Table/Head/Head.tokens.js +4 -15
  137. package/dist/esm/components/Table/HeaderCell/HeaderCell.js +30 -32
  138. package/dist/esm/components/Table/HeaderCell/HeaderCell.tokens.js +28 -62
  139. package/dist/esm/components/Table/Inner.context.js +2 -2
  140. package/dist/esm/components/Table/Row/Row.js +11 -13
  141. package/dist/esm/components/Table/Row/Row.tokens.js +4 -13
  142. package/dist/esm/components/Table/Table.js +10 -8
  143. package/dist/esm/components/Table/index.js +1 -1
  144. package/dist/esm/components/TableOfContents/LinkItem.js +12 -12
  145. package/dist/esm/components/TableOfContents/TableOfContents.js +28 -28
  146. package/dist/esm/components/TableOfContents/TableOfContents.tokens.js +21 -43
  147. package/dist/esm/components/TableOfContents/index.js +1 -1
  148. package/dist/esm/components/Tabs/Tab.js +15 -21
  149. package/dist/esm/components/Tabs/TabList.js +61 -52
  150. package/dist/esm/components/Tabs/TabPanel.js +18 -20
  151. package/dist/esm/components/Tabs/TabPanels.js +22 -18
  152. package/dist/esm/components/Tabs/Tabs.context.js +5 -3
  153. package/dist/esm/components/Tabs/Tabs.js +60 -39
  154. package/dist/esm/components/Tabs/Tabs.tokens.js +21 -55
  155. package/dist/esm/components/Tabs/index.js +1 -1
  156. package/dist/esm/components/TextField/Field.js +78 -85
  157. package/dist/esm/components/TextField/HelperText/HelperText.js +37 -40
  158. package/dist/esm/components/TextField/HelperText/HelperText.token.js +5 -9
  159. package/dist/esm/components/TextField/Icon/Icon.js +41 -40
  160. package/dist/esm/components/TextField/Icon/Icon.tokens.js +4 -8
  161. package/dist/esm/components/TextField/TextField.context.js +29 -19
  162. package/dist/esm/components/TextField/TextField.js +59 -57
  163. package/dist/esm/components/TextField/TextField.tokens.js +12 -16
  164. package/dist/esm/components/Textarea/Textarea.js +56 -58
  165. package/dist/esm/components/Tooltip/Tooltip.js +76 -64
  166. package/dist/esm/components/Tooltip/Tooltip.tokens.js +13 -32
  167. package/dist/esm/components/TopBar/Actions.js +12 -10
  168. package/dist/esm/components/TopBar/CustomContent.js +12 -10
  169. package/dist/esm/components/TopBar/Header.js +12 -10
  170. package/dist/esm/components/TopBar/TopBar.js +29 -25
  171. package/dist/esm/components/TopBar/TopBar.tokens.js +4 -10
  172. package/dist/esm/components/TopBar/index.js +1 -1
  173. package/dist/esm/components/Typography/Typography.js +47 -53
  174. package/dist/esm/components/Typography/Typography.tokens.js +25 -49
  175. package/dist/esm/node_modules/.pnpm/ramda@0.28.0/node_modules/ramda/es/internal/_isPlaceholder.js +3 -1
  176. package/dist/types/components/Autocomplete/Autocomplete.d.ts +4 -0
  177. package/package.json +5 -11
@@ -1,85 +1,94 @@
1
+ import _objectSpread from '@babel/runtime/helpers/objectSpread2';
2
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
3
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
1
4
  import { forwardRef, useContext, useRef, useState, useCallback, useEffect, Children, cloneElement } from 'react';
2
5
  import styled from 'styled-components';
3
6
  import { mergeRefs } from '@equinor/eds-utils';
4
7
  import { TabsContext } from './Tabs.context.js';
5
8
  import { jsx } from 'react/jsx-runtime';
6
9
 
7
- const variants = {
10
+ var _excluded = ["children"];
11
+ var variants = {
8
12
  fullWidth: 'minmax(1%, 360px)',
9
13
  minWidth: 'max-content'
10
14
  };
11
- const StyledTabList = styled.div.attrs(() => ({
12
- role: 'tablist'
13
- })).withConfig({
15
+ var StyledTabList = styled.div.attrs(function () {
16
+ return {
17
+ role: 'tablist'
18
+ };
19
+ }).withConfig({
14
20
  displayName: "TabList__StyledTabList",
15
21
  componentId: "sc-1g1p5i1-0"
16
- })(["display:grid;grid-auto-flow:column;grid-auto-columns:", ";overflow-x:", ";scroll-snap-type:x mandatory;overscroll-behavior-x:contain;@media (prefers-reduced-motion:no-preference){scroll-behavior:smooth;}@media (hover:none){overflow-x:scroll;-webkit-overflow-scrolling:touch;scrollbar-width:0;& ::-webkit-scrollbar{width:0;height:0;}}"], _ref => {
17
- let {
18
- variant
19
- } = _ref;
22
+ })(["display:grid;grid-auto-flow:column;grid-auto-columns:", ";overflow-x:", ";scroll-snap-type:x mandatory;overscroll-behavior-x:contain;@media (prefers-reduced-motion:no-preference){scroll-behavior:smooth;}@media (hover:none){overflow-x:scroll;-webkit-overflow-scrolling:touch;scrollbar-width:0;& ::-webkit-scrollbar{width:0;height:0;}}"], function (_ref) {
23
+ var variant = _ref.variant;
20
24
  return variants[variant];
21
- }, _ref2 => {
22
- let {
23
- scrollable
24
- } = _ref2;
25
+ }, function (_ref2) {
26
+ var scrollable = _ref2.scrollable;
25
27
  return scrollable ? 'auto' : 'hidden';
26
28
  });
27
- const TabList = /*#__PURE__*/forwardRef(function TabsList(_ref3, ref) {
28
- let {
29
- children = [],
30
- ...props
31
- } = _ref3;
32
- const {
33
- activeTab,
34
- handleChange,
35
- tabsId,
36
- variant = 'minWidth',
37
- scrollable = false,
38
- tabsFocused
39
- } = useContext(TabsContext);
40
- const currentTab = useRef(activeTab);
41
- const [arrowNavigating, setArrowNavigating] = useState(false);
42
- const selectedTabRef = useCallback(node => {
29
+ var TabList = /*#__PURE__*/forwardRef(function TabsList(_ref3, ref) {
30
+ var _ref3$children = _ref3.children,
31
+ children = _ref3$children === void 0 ? [] : _ref3$children,
32
+ props = _objectWithoutProperties(_ref3, _excluded);
33
+
34
+ var _useContext = useContext(TabsContext),
35
+ activeTab = _useContext.activeTab,
36
+ handleChange = _useContext.handleChange,
37
+ tabsId = _useContext.tabsId,
38
+ _useContext$variant = _useContext.variant,
39
+ variant = _useContext$variant === void 0 ? 'minWidth' : _useContext$variant,
40
+ _useContext$scrollabl = _useContext.scrollable,
41
+ scrollable = _useContext$scrollabl === void 0 ? false : _useContext$scrollabl,
42
+ tabsFocused = _useContext.tabsFocused;
43
+
44
+ var currentTab = useRef(activeTab);
45
+
46
+ var _useState = useState(false),
47
+ _useState2 = _slicedToArray(_useState, 2),
48
+ arrowNavigating = _useState2[0],
49
+ setArrowNavigating = _useState2[1];
50
+
51
+ var selectedTabRef = useCallback(function (node) {
43
52
  if (node !== null && tabsFocused || node !== null && arrowNavigating) {
44
53
  setArrowNavigating(false);
45
54
  node.focus();
46
55
  }
47
56
  }, [arrowNavigating, tabsFocused]);
48
- useEffect(() => {
57
+ useEffect(function () {
49
58
  currentTab.current = activeTab;
50
59
  }, [activeTab]);
51
- const Tabs = Children.map(children, (child, index) => {
52
- const tabRef = index === activeTab ? mergeRefs(child.ref, selectedTabRef) : child.ref;
60
+ var Tabs = Children.map(children, function (child, index) {
61
+ var tabRef = index === activeTab ? mergeRefs(child.ref, selectedTabRef) : child.ref;
53
62
  return /*#__PURE__*/cloneElement(child, {
54
- id: `${tabsId}-tab-${index + 1}`,
55
- 'aria-controls': `${tabsId}-panel-${index + 1}`,
63
+ id: "".concat(tabsId, "-tab-").concat(index + 1),
64
+ 'aria-controls': "".concat(tabsId, "-panel-").concat(index + 1),
56
65
  active: index === activeTab,
57
- index,
58
- onClick: () => handleChange(index),
66
+ index: index,
67
+ onClick: function onClick() {
68
+ return handleChange(index);
69
+ },
59
70
  ref: tabRef
60
71
  });
61
72
  });
62
- const focusableChildren = Tabs.filter(child => {
63
- const childProps = child.props;
73
+ var focusableChildren = Tabs.filter(function (child) {
74
+ var childProps = child.props;
64
75
  return !childProps.disabled;
65
- }).map(child => {
66
- const childProps = child.props;
76
+ }).map(function (child) {
77
+ var childProps = child.props;
67
78
  return childProps.index;
68
79
  });
69
- const firstFocusableChild = focusableChildren[0];
70
- const lastFocusableChild = focusableChildren[focusableChildren.length - 1];
80
+ var firstFocusableChild = focusableChildren[0];
81
+ var lastFocusableChild = focusableChildren[focusableChildren.length - 1];
71
82
 
72
- const handleTabsChange = (direction, fallbackTab) => {
73
- const i = direction === 'left' ? 1 : -1;
74
- const nextTab = focusableChildren[focusableChildren.indexOf(currentTab.current) - i];
83
+ var handleTabsChange = function handleTabsChange(direction, fallbackTab) {
84
+ var i = direction === 'left' ? 1 : -1;
85
+ var nextTab = focusableChildren[focusableChildren.indexOf(currentTab.current) - i];
75
86
  setArrowNavigating(true);
76
87
  handleChange(nextTab === undefined ? fallbackTab : nextTab);
77
88
  };
78
89
 
79
- const handleKeyPress = event => {
80
- const {
81
- key
82
- } = event;
90
+ var handleKeyPress = function handleKeyPress(event) {
91
+ var key = event.key;
83
92
 
84
93
  if (key === 'ArrowLeft') {
85
94
  event.preventDefault();
@@ -92,14 +101,14 @@ const TabList = /*#__PURE__*/forwardRef(function TabsList(_ref3, ref) {
92
101
  }
93
102
  };
94
103
 
95
- return /*#__PURE__*/jsx(StyledTabList, {
104
+ return /*#__PURE__*/jsx(StyledTabList, _objectSpread(_objectSpread({
96
105
  onKeyDown: handleKeyPress,
97
- ref: ref,
98
- ...props,
106
+ ref: ref
107
+ }, props), {}, {
99
108
  variant: variant,
100
109
  scrollable: scrollable,
101
110
  children: Tabs
102
- });
111
+ }));
103
112
  });
104
113
 
105
114
  export { TabList };
@@ -1,33 +1,31 @@
1
+ import _objectSpread from '@babel/runtime/helpers/objectSpread2';
2
+ import _extends from '@babel/runtime/helpers/extends';
1
3
  import { forwardRef } from 'react';
2
4
  import styled, { css } from 'styled-components';
3
5
  import { spacingsTemplate, typographyTemplate, outlineTemplate } from '@equinor/eds-utils';
4
6
  import { jsx } from 'react/jsx-runtime';
5
7
 
6
- const StyledTabPanel = styled.div.attrs(() => ({
7
- tabIndex: 0,
8
- role: 'tabpanel'
9
- })).withConfig({
8
+ var StyledTabPanel = styled.div.attrs(function () {
9
+ return {
10
+ tabIndex: 0,
11
+ role: 'tabpanel'
12
+ };
13
+ }).withConfig({
10
14
  displayName: "TabPanel__StyledTabPanel",
11
15
  componentId: "sc-e8v1d4-0"
12
- })(_ref => {
13
- let {
14
- theme
15
- } = _ref;
16
- const {
17
- entities: {
18
- panel
19
- }
20
- } = theme;
16
+ })(function (_ref) {
17
+ var theme = _ref.theme;
18
+ var panel = theme.entities.panel;
21
19
  return css(["", " ", " &:focus{outline:none;}&[data-focus-visible-added]:focus{", "}&:focus-visible{", "}"], spacingsTemplate(panel.spacings), typographyTemplate(panel.typography), outlineTemplate(panel.states.focus.outline), outlineTemplate(panel.states.focus.outline));
22
20
  });
23
- const TabPanel = /*#__PURE__*/forwardRef(function TabPanel(_ref2, ref) {
24
- let { ...props
25
- } = _ref2;
26
- return /*#__PURE__*/jsx(StyledTabPanel, {
27
- ref: ref,
28
- ...props,
21
+ var TabPanel = /*#__PURE__*/forwardRef(function TabPanel(_ref2, ref) {
22
+ var props = _extends({}, _ref2);
23
+
24
+ return /*#__PURE__*/jsx(StyledTabPanel, _objectSpread(_objectSpread({
25
+ ref: ref
26
+ }, props), {}, {
29
27
  children: props.children
30
- });
28
+ }));
31
29
  });
32
30
 
33
31
  export { TabPanel };
@@ -1,26 +1,30 @@
1
+ import _objectSpread from '@babel/runtime/helpers/objectSpread2';
2
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
1
3
  import { forwardRef, useContext, Children, cloneElement } from 'react';
2
4
  import { TabsContext } from './Tabs.context.js';
3
5
  import { jsx } from 'react/jsx-runtime';
4
6
 
5
- const TabPanels = /*#__PURE__*/forwardRef(function TabPanels(_ref, ref) {
6
- let {
7
- children,
8
- ...props
9
- } = _ref;
10
- const {
11
- activeTab,
12
- tabsId
13
- } = useContext(TabsContext);
14
- const Panels = Children.map(children, (child, index) => /*#__PURE__*/cloneElement(child, {
15
- id: `${tabsId}-panel-${index + 1}`,
16
- 'aria-labelledby': `${tabsId}-tab-${index + 1}`,
17
- hidden: activeTab !== index
18
- }));
19
- return /*#__PURE__*/jsx("div", {
20
- ref: ref,
21
- ...props,
22
- children: Panels
7
+ var _excluded = ["children"];
8
+ var TabPanels = /*#__PURE__*/forwardRef(function TabPanels(_ref, ref) {
9
+ var children = _ref.children,
10
+ props = _objectWithoutProperties(_ref, _excluded);
11
+
12
+ var _useContext = useContext(TabsContext),
13
+ activeTab = _useContext.activeTab,
14
+ tabsId = _useContext.tabsId;
15
+
16
+ var Panels = Children.map(children, function (child, index) {
17
+ return /*#__PURE__*/cloneElement(child, {
18
+ id: "".concat(tabsId, "-panel-").concat(index + 1),
19
+ 'aria-labelledby': "".concat(tabsId, "-tab-").concat(index + 1),
20
+ hidden: activeTab !== index
21
+ });
23
22
  });
23
+ return /*#__PURE__*/jsx("div", _objectSpread(_objectSpread({
24
+ ref: ref
25
+ }, props), {}, {
26
+ children: Panels
27
+ }));
24
28
  });
25
29
 
26
30
  export { TabPanels };
@@ -1,14 +1,16 @@
1
1
  import { createContext } from 'react';
2
2
 
3
- const TabsContext = /*#__PURE__*/createContext({
3
+ var TabsContext = /*#__PURE__*/createContext({
4
4
  variant: 'minWidth',
5
5
  scrollable: false,
6
- handleChange: () => null,
6
+ handleChange: function handleChange() {
7
+ return null;
8
+ },
7
9
  activeTab: 0,
8
10
  tabsId: '',
9
11
  tabsFocused: false
10
12
  });
11
- const TabsProvider = TabsContext.Provider;
13
+ var TabsProvider = TabsContext.Provider;
12
14
  TabsContext.Consumer;
13
15
 
14
16
  export { TabsContext, TabsProvider };
@@ -1,3 +1,6 @@
1
+ import _objectSpread from '@babel/runtime/helpers/objectSpread2';
2
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
3
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
1
4
  import { forwardRef, useRef, useMemo, useState, useEffect } from 'react';
2
5
  import { TabsProvider } from './Tabs.context.js';
3
6
  import { token } from './Tabs.tokens.js';
@@ -6,32 +9,49 @@ import { ThemeProvider } from 'styled-components';
6
9
  import { jsx } from 'react/jsx-runtime';
7
10
  import { useEds } from '../EdsProvider/eds.context.js';
8
11
 
9
- const Tabs = /*#__PURE__*/forwardRef(function Tabs(_ref, ref) {
10
- let {
11
- activeTab = 0,
12
- onChange = () => null,
13
- onBlur,
14
- onFocus,
15
- variant = 'minWidth',
16
- scrollable = false,
17
- id,
18
- ...props
19
- } = _ref;
20
- const tabsId = useId(id, 'tabs');
21
- const tabsRef = useRef(null);
22
- const combinedTabsRef = useMemo(() => mergeRefs(tabsRef, ref), [tabsRef, ref]);
23
- const [tabsFocused, setTabsFocused] = useState(false);
24
- const [listenerAttached, setListenerAttached] = useState(false);
25
- let blurTimer;
26
-
27
- const handleBlur = e => {
12
+ var _excluded = ["activeTab", "onChange", "onBlur", "onFocus", "variant", "scrollable", "id"];
13
+ var Tabs = /*#__PURE__*/forwardRef(function Tabs(_ref, ref) {
14
+ var _ref$activeTab = _ref.activeTab,
15
+ activeTab = _ref$activeTab === void 0 ? 0 : _ref$activeTab,
16
+ _ref$onChange = _ref.onChange,
17
+ onChange = _ref$onChange === void 0 ? function () {
18
+ return null;
19
+ } : _ref$onChange,
20
+ onBlur = _ref.onBlur,
21
+ onFocus = _ref.onFocus,
22
+ _ref$variant = _ref.variant,
23
+ variant = _ref$variant === void 0 ? 'minWidth' : _ref$variant,
24
+ _ref$scrollable = _ref.scrollable,
25
+ scrollable = _ref$scrollable === void 0 ? false : _ref$scrollable,
26
+ id = _ref.id,
27
+ props = _objectWithoutProperties(_ref, _excluded);
28
+
29
+ var tabsId = useId(id, 'tabs');
30
+ var tabsRef = useRef(null);
31
+ var combinedTabsRef = useMemo(function () {
32
+ return mergeRefs(tabsRef, ref);
33
+ }, [tabsRef, ref]);
34
+
35
+ var _useState = useState(false),
36
+ _useState2 = _slicedToArray(_useState, 2),
37
+ tabsFocused = _useState2[0],
38
+ setTabsFocused = _useState2[1];
39
+
40
+ var _useState3 = useState(false),
41
+ _useState4 = _slicedToArray(_useState3, 2),
42
+ listenerAttached = _useState4[0],
43
+ setListenerAttached = _useState4[1];
44
+
45
+ var blurTimer;
46
+
47
+ var handleBlur = function handleBlur(e) {
28
48
  setListenerAttached(false);
29
49
 
30
50
  if (tabsRef.current) {
31
51
  tabsRef.current.removeEventListener('keyup', checkIfTabWasPressed);
32
52
  }
33
53
 
34
- blurTimer = setTimeout(() => {
54
+ blurTimer = setTimeout(function () {
35
55
  if (tabsFocused) {
36
56
  setTabsFocused(false);
37
57
  }
@@ -39,7 +59,7 @@ const Tabs = /*#__PURE__*/forwardRef(function Tabs(_ref, ref) {
39
59
  onBlur && onBlur(e);
40
60
  };
41
61
 
42
- const handleFocus = e => {
62
+ var handleFocus = function handleFocus(e) {
43
63
  if (e.target.getAttribute('role') !== 'tab') {
44
64
  return;
45
65
  }
@@ -61,40 +81,41 @@ const Tabs = /*#__PURE__*/forwardRef(function Tabs(_ref, ref) {
61
81
  }; //Only force focus on active Tab if Tabs was navigated to with keyboard
62
82
 
63
83
 
64
- const checkIfTabWasPressed = event => {
84
+ var checkIfTabWasPressed = function checkIfTabWasPressed(event) {
65
85
  setListenerAttached(false);
66
86
  if (event.key === 'Tab') setTabsFocused(true);
67
87
  };
68
88
 
69
- useEffect(() => {
70
- const tabs = tabsRef.current;
71
- return () => {
89
+ useEffect(function () {
90
+ var tabs = tabsRef.current;
91
+ return function () {
72
92
  if (tabs) tabs.removeEventListener('keyup', checkIfTabWasPressed);
73
93
  }; // eslint-disable-next-line react-hooks/exhaustive-deps
74
94
  }, []);
75
- const {
76
- density
77
- } = useEds();
78
- const token$1 = useToken({
79
- density
95
+
96
+ var _useEds = useEds(),
97
+ density = _useEds.density;
98
+
99
+ var token$1 = useToken({
100
+ density: density
80
101
  }, token);
81
102
  return /*#__PURE__*/jsx(ThemeProvider, {
82
103
  theme: token$1,
83
104
  children: /*#__PURE__*/jsx(TabsProvider, {
84
105
  value: {
85
- activeTab,
106
+ activeTab: activeTab,
86
107
  handleChange: onChange,
87
- tabsId,
88
- variant,
89
- scrollable,
90
- tabsFocused
108
+ tabsId: tabsId,
109
+ variant: variant,
110
+ scrollable: scrollable,
111
+ tabsFocused: tabsFocused
91
112
  },
92
- children: /*#__PURE__*/jsx("div", {
93
- ref: combinedTabsRef,
94
- ...props,
113
+ children: /*#__PURE__*/jsx("div", _objectSpread(_objectSpread({
114
+ ref: combinedTabsRef
115
+ }, props), {}, {
95
116
  onBlur: handleBlur,
96
117
  onFocus: handleFocus
97
- })
118
+ }))
98
119
  })
99
120
  });
100
121
  });
@@ -1,53 +1,21 @@
1
+ import _objectSpread from '@babel/runtime/helpers/objectSpread2';
1
2
  import { tokens } from '@equinor/eds-tokens';
2
3
 
3
- const {
4
- colors: {
5
- text: {
6
- static_icons__tertiary: {
7
- rgba: defaultColor
8
- }
9
- },
10
- ui: {
11
- background__medium: {
12
- rgba: defaultBorderColor
13
- }
14
- },
15
- interactive: {
16
- focus: {
17
- rgba: focusOutlineColor
18
- },
19
- primary__hover_alt: {
20
- rgba: hoverBackgroundColor
21
- },
22
- primary__resting: {
23
- rgba: activeColor
24
- },
25
- primary__hover: {
26
- rgba: activeHoverColor
27
- }
28
- }
29
- },
30
- clickbounds: {
31
- default__base: clickboundsHeight
32
- },
33
- spacings: {
34
- comfortable: {
35
- medium: spacingMedium
36
- }
37
- },
38
- interactions: {
39
- focused: {
40
- width: focusOutlineWidth
41
- }
42
- },
43
- typography: {
44
- navigation: {
45
- menu_tabs,
46
- menu_title
47
- }
48
- }
49
- } = tokens;
50
- const token = {
4
+ var _tokens$colors = tokens.colors,
5
+ defaultColor = _tokens$colors.text.static_icons__tertiary.rgba,
6
+ defaultBorderColor = _tokens$colors.ui.background__medium.rgba,
7
+ _tokens$colors$intera = _tokens$colors.interactive,
8
+ focusOutlineColor = _tokens$colors$intera.focus.rgba,
9
+ hoverBackgroundColor = _tokens$colors$intera.primary__hover_alt.rgba,
10
+ activeColor = _tokens$colors$intera.primary__resting.rgba,
11
+ activeHoverColor = _tokens$colors$intera.primary__hover.rgba,
12
+ clickboundsHeight = tokens.clickbounds.default__base,
13
+ spacingMedium = tokens.spacings.comfortable.medium,
14
+ focusOutlineWidth = tokens.interactions.focused.width,
15
+ _tokens$typography$na = tokens.typography.navigation,
16
+ menu_tabs = _tokens$typography$na.menu_tabs,
17
+ menu_title = _tokens$typography$na.menu_title;
18
+ var token = {
51
19
  entities: {
52
20
  panel: {
53
21
  spacings: {
@@ -64,8 +32,7 @@ const token = {
64
32
  }
65
33
  }
66
34
  },
67
- typography: { ...menu_title
68
- }
35
+ typography: _objectSpread({}, menu_title)
69
36
  },
70
37
  tab: {
71
38
  background: 'transparent',
@@ -80,11 +47,10 @@ const token = {
80
47
  left: spacingMedium,
81
48
  right: spacingMedium
82
49
  },
83
- typography: {
50
+ typography: _objectSpread({
84
51
  color: defaultColor,
85
- textAlign: 'center',
86
- ...menu_tabs
87
- },
52
+ textAlign: 'center'
53
+ }, menu_tabs),
88
54
  border: {
89
55
  type: 'bordergroup',
90
56
  bottom: {
@@ -109,7 +75,7 @@ const token = {
109
75
  outline: {
110
76
  type: 'outline',
111
77
  width: focusOutlineWidth,
112
- offset: `-${parseInt(focusOutlineWidth)}px`,
78
+ offset: "-".concat(parseInt(focusOutlineWidth), "px"),
113
79
  style: 'dashed',
114
80
  color: focusOutlineColor
115
81
  }
@@ -4,7 +4,7 @@ import { Tab } from './Tab.js';
4
4
  import { TabPanels } from './TabPanels.js';
5
5
  import { TabPanel } from './TabPanel.js';
6
6
 
7
- const Tabs = Tabs$1;
7
+ var Tabs = Tabs$1;
8
8
  Tabs.Tab = Tab;
9
9
  Tabs.Panels = TabPanels;
10
10
  Tabs.Panel = TabPanel;