@equinor/eds-core-react 0.25.0 → 0.27.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 (178) hide show
  1. package/dist/eds-core-react.cjs.js +2016 -2478
  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 +94 -148
  10. package/dist/esm/components/Autocomplete/Autocomplete.tokens.js +11 -11
  11. package/dist/esm/components/Autocomplete/Option.js +9 -10
  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 +17 -31
  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 +40 -52
  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 +17 -27
  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 +34 -50
  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 +49 -0
  96. package/dist/esm/components/SideBar/SideBar.js +74 -0
  97. package/dist/esm/components/SideBar/SideBar.tokens.js +110 -0
  98. package/dist/esm/components/SideBar/SideBarButton/index.js +81 -0
  99. package/dist/esm/components/SideBar/SideBarContent.js +25 -0
  100. package/dist/esm/components/SideBar/SideBarFooter.js +25 -0
  101. package/dist/esm/components/SideBar/SideBarToggle.js +54 -0
  102. package/dist/esm/components/SideBar/SidebarLink/index.js +102 -0
  103. package/dist/esm/components/SideBar/index.js +20 -0
  104. package/dist/esm/components/SideSheet/SideSheet.js +14 -15
  105. package/dist/esm/components/SideSheet/SideSheet.tokens.js +6 -6
  106. package/dist/esm/components/Slider/MinMax.js +2 -2
  107. package/dist/esm/components/Slider/Output.js +4 -4
  108. package/dist/esm/components/Slider/Slider.js +27 -48
  109. package/dist/esm/components/Slider/Slider.tokens.js +14 -14
  110. package/dist/esm/components/Slider/SliderInput.js +10 -11
  111. package/dist/esm/components/Snackbar/Snackbar.js +13 -19
  112. package/dist/esm/components/Snackbar/Snackbar.tokens.js +9 -9
  113. package/dist/esm/components/Snackbar/SnackbarAction.js +1 -3
  114. package/dist/esm/components/Switch/Switch.js +8 -10
  115. package/dist/esm/components/Switch/Switch.styles.js +5 -6
  116. package/dist/esm/components/Switch/Switch.tokens.js +18 -18
  117. package/dist/esm/components/Switch/SwitchDefault.js +10 -11
  118. package/dist/esm/components/Switch/SwitchSmall.js +11 -12
  119. package/dist/esm/components/Table/Body.js +1 -2
  120. package/dist/esm/components/Table/Caption.js +1 -1
  121. package/dist/esm/components/Table/Cell.js +1 -4
  122. package/dist/esm/components/Table/DataCell/DataCell.js +9 -12
  123. package/dist/esm/components/Table/DataCell/DataCell.tokens.js +17 -18
  124. package/dist/esm/components/Table/Head/Head.js +2 -3
  125. package/dist/esm/components/Table/Head/Head.tokens.js +2 -2
  126. package/dist/esm/components/Table/HeaderCell/HeaderCell.js +7 -12
  127. package/dist/esm/components/Table/HeaderCell/HeaderCell.tokens.js +14 -14
  128. package/dist/esm/components/Table/Row/Row.js +0 -2
  129. package/dist/esm/components/Table/Row/Row.tokens.js +2 -2
  130. package/dist/esm/components/Table/Table.js +4 -3
  131. package/dist/esm/components/TableOfContents/LinkItem.js +1 -2
  132. package/dist/esm/components/TableOfContents/TableOfContents.js +7 -9
  133. package/dist/esm/components/TableOfContents/TableOfContents.tokens.js +12 -12
  134. package/dist/esm/components/Tabs/Tab.js +6 -7
  135. package/dist/esm/components/Tabs/TabList.js +13 -22
  136. package/dist/esm/components/Tabs/TabPanel.js +0 -1
  137. package/dist/esm/components/Tabs/TabPanels.js +3 -5
  138. package/dist/esm/components/Tabs/Tabs.js +24 -37
  139. package/dist/esm/components/Tabs/Tabs.tokens.js +13 -13
  140. package/dist/esm/components/TextField/TextField.js +19 -25
  141. package/dist/esm/components/Textarea/Textarea.js +11 -19
  142. package/dist/esm/components/Tooltip/Tooltip.js +38 -51
  143. package/dist/esm/components/Tooltip/Tooltip.tokens.js +7 -7
  144. package/dist/esm/components/TopBar/Actions.js +4 -3
  145. package/dist/esm/components/TopBar/CustomContent.js +4 -3
  146. package/dist/esm/components/TopBar/Header.js +5 -4
  147. package/dist/esm/components/TopBar/TopBar.js +10 -12
  148. package/dist/esm/components/TopBar/TopBar.tokens.js +2 -2
  149. package/dist/esm/components/Typography/Typography.js +15 -23
  150. package/dist/esm/components/Typography/Typography.tokens.js +10 -12
  151. package/dist/esm/index.js +2 -2
  152. package/dist/esm/node_modules/.pnpm/ramda@0.28.0/node_modules/ramda/es/internal/_curry2.js +0 -2
  153. package/dist/esm/node_modules/.pnpm/ramda@0.28.0/node_modules/ramda/es/internal/_curry3.js +0 -3
  154. package/dist/esm/node_modules/.pnpm/ramda@0.28.0/node_modules/ramda/es/mergeDeepRight.js +2 -2
  155. package/dist/esm/node_modules/.pnpm/ramda@0.28.0/node_modules/ramda/es/mergeDeepWithKey.js +2 -1
  156. package/dist/esm/node_modules/.pnpm/ramda@0.28.0/node_modules/ramda/es/mergeWithKey.js +2 -4
  157. package/dist/types/components/Select/index.d.ts +0 -2
  158. package/dist/types/components/SideBar/SideBar.context.d.ts +15 -0
  159. package/dist/types/components/SideBar/SideBar.d.ts +5 -0
  160. package/dist/types/components/SideBar/SideBar.tokens.d.ts +2 -0
  161. package/dist/types/components/SideBar/SideBarButton/index.d.ts +11 -0
  162. package/dist/types/components/SideBar/SideBarContent.d.ts +4 -0
  163. package/dist/types/components/SideBar/SideBarFooter.d.ts +4 -0
  164. package/dist/types/components/SideBar/SideBarToggle.d.ts +4 -0
  165. package/dist/types/components/SideBar/SidebarLink/index.d.ts +18 -0
  166. package/dist/types/components/SideBar/index.d.ts +17 -0
  167. package/dist/types/index.d.ts +1 -0
  168. package/package.json +4 -4
  169. package/dist/esm/components/Select/MultiSelect/MultiSelect.js +0 -226
  170. package/dist/esm/components/Select/Select.tokens.js +0 -92
  171. package/dist/esm/components/Select/SingleSelect/SingleSelect.js +0 -160
  172. package/dist/esm/components/Select/commonStyles.js +0 -43
  173. package/dist/types/components/Select/MultiSelect/MultiSelect.d.ts +0 -49
  174. package/dist/types/components/Select/MultiSelect/index.d.ts +0 -1
  175. package/dist/types/components/Select/Select.tokens.d.ts +0 -3
  176. package/dist/types/components/Select/SingleSelect/SingleSelect.d.ts +0 -49
  177. package/dist/types/components/Select/SingleSelect/index.d.ts +0 -1
  178. package/dist/types/components/Select/commonStyles.d.ts +0 -27
@@ -22,33 +22,27 @@ var InsideButton = styled(Button).withConfig({
22
22
  })(["height:24px;width:24px;"]);
23
23
  var Search = /*#__PURE__*/forwardRef(function Search(_ref, ref) {
24
24
  var _onChange = _ref.onChange,
25
- style = _ref.style,
26
- className = _ref.className,
27
- rest = _objectWithoutProperties(_ref, _excluded);
28
-
25
+ style = _ref.style,
26
+ className = _ref.className,
27
+ rest = _objectWithoutProperties(_ref, _excluded);
29
28
  var inputRef = useRef(null);
30
-
31
29
  var _useState = useState(Boolean(rest.defaultValue)),
32
- _useState2 = _slicedToArray(_useState, 2),
33
- showClear = _useState2[0],
34
- setShowClear = _useState2[1];
35
-
30
+ _useState2 = _slicedToArray(_useState, 2),
31
+ showClear = _useState2[0],
32
+ setShowClear = _useState2[1];
36
33
  useEffect(function () {
37
34
  if (rest.value) {
38
35
  setShowClear(Boolean(rest.value));
39
36
  }
40
37
  }, [rest.value]);
41
-
42
38
  var clearInputValue = function clearInputValue() {
43
39
  var input = inputRef.current;
44
40
  var clearedValue = '';
45
41
  setReactInputValue(input, clearedValue);
46
42
  };
47
-
48
43
  var handleOnChange = function handleOnChange(e) {
49
44
  setShowClear(Boolean(e.currentTarget.value));
50
45
  };
51
-
52
46
  var combinedRef = useMemo(function () {
53
47
  return mergeRefs(inputRef, ref);
54
48
  }, [inputRef, ref]);
@@ -59,7 +53,6 @@ var Search = /*#__PURE__*/forwardRef(function Search(_ref, ref) {
59
53
  children: /*#__PURE__*/jsx(SearchInput, _objectSpread({
60
54
  onChange: function onChange(e) {
61
55
  handleOnChange(e);
62
-
63
56
  if (_onChange) {
64
57
  _onChange(e);
65
58
  }
@@ -22,21 +22,19 @@ var StyledSelect = styled.select.withConfig({
22
22
  }, nativeselect.entities.input.spacings.right, nativeselect.entities.icon.width, nativeselect.background, nativeselect.background, nativeselect.entities.input.spacings.right, outlineTemplate(nativeselect.states.focus.outline), nativeselect.states.disabled.typography.color, nativeselect.background, nativeselect.background);
23
23
  var NativeSelect = /*#__PURE__*/forwardRef(function NativeSelect(_ref2, ref) {
24
24
  var label = _ref2.label,
25
- children = _ref2.children,
26
- className = _ref2.className,
27
- style = _ref2.style,
28
- selectRef = _ref2.selectRef,
29
- id = _ref2.id,
30
- meta = _ref2.meta,
31
- _ref2$disabled = _ref2.disabled,
32
- disabled = _ref2$disabled === void 0 ? false : _ref2$disabled,
33
- _ref2$multiple = _ref2.multiple,
34
- multiple = _ref2$multiple === void 0 ? false : _ref2$multiple,
35
- other = _objectWithoutProperties(_ref2, _excluded);
36
-
25
+ children = _ref2.children,
26
+ className = _ref2.className,
27
+ style = _ref2.style,
28
+ selectRef = _ref2.selectRef,
29
+ id = _ref2.id,
30
+ meta = _ref2.meta,
31
+ _ref2$disabled = _ref2.disabled,
32
+ disabled = _ref2$disabled === void 0 ? false : _ref2$disabled,
33
+ _ref2$multiple = _ref2.multiple,
34
+ multiple = _ref2$multiple === void 0 ? false : _ref2$multiple,
35
+ other = _objectWithoutProperties(_ref2, _excluded);
37
36
  var _useEds = useEds(),
38
- density = _useEds.density;
39
-
37
+ density = _useEds.density;
40
38
  var token = useToken({
41
39
  density: density
42
40
  }, nativeselect);
@@ -45,14 +43,12 @@ var NativeSelect = /*#__PURE__*/forwardRef(function NativeSelect(_ref2, ref) {
45
43
  className: className,
46
44
  style: style
47
45
  };
48
-
49
46
  var selectProps = _objectSpread({
50
47
  ref: selectRef,
51
48
  id: id,
52
49
  disabled: disabled,
53
50
  multiple: multiple
54
51
  }, other);
55
-
56
52
  var labelProps = {
57
53
  htmlFor: id,
58
54
  label: label,
@@ -2,11 +2,11 @@ import _objectSpread from '@babel/runtime/helpers/objectSpread2';
2
2
  import { tokens } from '@equinor/eds-tokens';
3
3
 
4
4
  var colors = tokens.colors,
5
- _tokens$spacings$comf = tokens.spacings.comfortable,
6
- small = _tokens$spacings$comf.small,
7
- x_small = _tokens$spacings$comf.x_small,
8
- typography = tokens.typography,
9
- shape = tokens.shape;
5
+ _tokens$spacings$comf = tokens.spacings.comfortable,
6
+ small = _tokens$spacings$comf.small,
7
+ x_small = _tokens$spacings$comf.x_small,
8
+ typography = tokens.typography,
9
+ shape = tokens.shape;
10
10
  var nativeselect = {
11
11
  background: colors.ui.background__light.rgba,
12
12
  typography: _objectSpread(_objectSpread({}, typography.input.text), {}, {
@@ -0,0 +1,49 @@
1
+ import _objectSpread from '@babel/runtime/helpers/objectSpread2';
2
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
3
+ import { useContext, createContext, useState, useCallback } from 'react';
4
+ import { jsx } from 'react/jsx-runtime';
5
+
6
+ var initalState = {
7
+ isOpen: false,
8
+ onToggle: null
9
+ };
10
+ var SideBarContext = /*#__PURE__*/createContext(initalState);
11
+ var SideBarProvider = function SideBarProvider(_ref) {
12
+ var children = _ref.children;
13
+ var _useState = useState(initalState),
14
+ _useState2 = _slicedToArray(_useState, 2),
15
+ state = _useState2[0],
16
+ setState = _useState2[1];
17
+ var isOpen = state.isOpen,
18
+ onToggle = state.onToggle;
19
+ var setIsOpen = useCallback(function (open) {
20
+ setState(function (prevState) {
21
+ return _objectSpread(_objectSpread({}, prevState), {}, {
22
+ isOpen: open
23
+ });
24
+ });
25
+ onToggle === null || onToggle === void 0 ? void 0 : onToggle(open);
26
+ }, [onToggle]);
27
+ var setOnToggle = function setOnToggle(onToggle) {
28
+ setState(function (prevState) {
29
+ return _objectSpread(_objectSpread({}, prevState), {}, {
30
+ onToggle: onToggle
31
+ });
32
+ });
33
+ };
34
+ var value = {
35
+ setIsOpen: setIsOpen,
36
+ setOnToggle: setOnToggle,
37
+ onToggle: onToggle,
38
+ isOpen: isOpen
39
+ };
40
+ return /*#__PURE__*/jsx(SideBarContext.Provider, {
41
+ value: value,
42
+ children: children
43
+ });
44
+ };
45
+ var useSideBar = function useSideBar() {
46
+ return useContext(SideBarContext);
47
+ };
48
+
49
+ export { SideBarProvider, useSideBar };
@@ -0,0 +1,74 @@
1
+ import _objectSpread from '@babel/runtime/helpers/objectSpread2';
2
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
3
+ import { forwardRef, useEffect } from 'react';
4
+ import styled, { css, ThemeProvider } from 'styled-components';
5
+ import { sidebar } from './SideBar.tokens.js';
6
+ import { bordersTemplate, useToken } from '@equinor/eds-utils';
7
+ import { SideBarProvider, useSideBar } from './SideBar.context.js';
8
+ import { jsx } from 'react/jsx-runtime';
9
+ import { useEds } from '../EdsProvider/eds.context.js';
10
+
11
+ var _excluded = ["onToggle", "open", "children"],
12
+ _excluded2 = ["onToggle", "open", "children"];
13
+ var SideBarContainer = /*#__PURE__*/forwardRef(function SideBarContainer(_ref, ref) {
14
+ var onToggleCallback = _ref.onToggle,
15
+ _ref$open = _ref.open,
16
+ open = _ref$open === void 0 ? false : _ref$open,
17
+ children = _ref.children,
18
+ rest = _objectWithoutProperties(_ref, _excluded);
19
+ var _useSideBar = useSideBar(),
20
+ isOpen = _useSideBar.isOpen,
21
+ setIsOpen = _useSideBar.setIsOpen,
22
+ onToggle = _useSideBar.onToggle,
23
+ setOnToggle = _useSideBar.setOnToggle;
24
+ useEffect(function () {
25
+ if (onToggle === null && onToggleCallback) {
26
+ setOnToggle(onToggleCallback);
27
+ }
28
+ }, [onToggle, onToggleCallback, setOnToggle]);
29
+ useEffect(function () {
30
+ setIsOpen(open);
31
+ // eslint-disable-next-line react-hooks/exhaustive-deps
32
+ }, [open]);
33
+ return /*#__PURE__*/jsx(GridContainer, _objectSpread(_objectSpread({}, rest), {}, {
34
+ open: isOpen,
35
+ ref: ref,
36
+ children: children
37
+ }));
38
+ });
39
+ var GridContainer = styled.div.withConfig({
40
+ displayName: "SideBar__GridContainer",
41
+ componentId: "sc-a84pkc-0"
42
+ })(function (_ref2) {
43
+ var theme = _ref2.theme,
44
+ open = _ref2.open;
45
+ return css(["box-sizing:content-box;", " display:grid;grid-template-rows:1fr auto;height:100%;grid-template-areas:'content' 'footer';background-color:", ";overflow:hidden;width:", ";min-width:", ";"], bordersTemplate(theme.border), theme.background, open ? theme.maxWidth : theme.minWidth, open ? theme.maxWidth : theme.minWidth);
46
+ });
47
+ var SideBar = /*#__PURE__*/forwardRef(function (_ref3, ref) {
48
+ var onToggle = _ref3.onToggle,
49
+ _ref3$open = _ref3.open,
50
+ open = _ref3$open === void 0 ? false : _ref3$open,
51
+ children = _ref3.children,
52
+ rest = _objectWithoutProperties(_ref3, _excluded2);
53
+ var _useEds = useEds(),
54
+ density = _useEds.density;
55
+ var token = useToken({
56
+ density: density
57
+ }, sidebar);
58
+ var props = _objectSpread({
59
+ onToggle: onToggle,
60
+ open: open,
61
+ children: children
62
+ }, rest);
63
+ return /*#__PURE__*/jsx(ThemeProvider, {
64
+ theme: token,
65
+ children: /*#__PURE__*/jsx(SideBarProvider, {
66
+ children: /*#__PURE__*/jsx(SideBarContainer, _objectSpread(_objectSpread({}, props), {}, {
67
+ ref: ref
68
+ }))
69
+ })
70
+ });
71
+ });
72
+ SideBar.displayName = 'SideBar';
73
+
74
+ export { SideBar };
@@ -0,0 +1,110 @@
1
+ import { tokens } from '@equinor/eds-tokens';
2
+
3
+ var _tokens$colors = tokens.colors,
4
+ _tokens$colors$ui = _tokens$colors.ui,
5
+ background__light = _tokens$colors$ui.background__light.rgba,
6
+ background__medium = _tokens$colors$ui.background__medium.rgba,
7
+ background = _tokens$colors$ui.background__default.rgba,
8
+ _tokens$colors$intera = _tokens$colors.interactive,
9
+ focusColor = _tokens$colors$intera.focus.rgba,
10
+ primary__resting = _tokens$colors$intera.primary__resting.rgba,
11
+ menuActive = _tokens$colors$intera.primary__selected_highlight.rgba,
12
+ menuDisabledBackground = _tokens$colors$intera.disabled__fill.rgba,
13
+ menuDisabledText = _tokens$colors$intera.disabled__text.rgba,
14
+ _tokens$colors$text = _tokens$colors.text,
15
+ expandTextColor = _tokens$colors$text.static_icons__default.rgba,
16
+ primaryWhite = _tokens$colors$text.static_icons__primary_white.rgba,
17
+ _tokens$spacings$comf = tokens.spacings.comfortable,
18
+ medium = _tokens$spacings$comf.medium,
19
+ large = _tokens$spacings$comf.large,
20
+ small = _tokens$spacings$comf.small;
21
+ var sidebar = {
22
+ background: background,
23
+ minWidth: '72px',
24
+ maxWidth: '256px',
25
+ spacings: {
26
+ top: large,
27
+ bottom: large
28
+ },
29
+ border: {
30
+ type: 'bordergroup',
31
+ right: {
32
+ color: background__light,
33
+ width: '2px',
34
+ style: 'solid'
35
+ }
36
+ },
37
+ entities: {
38
+ actionButton: {
39
+ typography: {
40
+ color: primaryWhite
41
+ },
42
+ spacings: {
43
+ top: medium,
44
+ bottom: medium,
45
+ right: large,
46
+ left: large
47
+ }
48
+ },
49
+ sidebarItem: {
50
+ minHeight: '48px',
51
+ spacings: {
52
+ top: '0',
53
+ bottom: '0'
54
+ },
55
+ typography: {
56
+ color: expandTextColor
57
+ },
58
+ border: {
59
+ type: 'bordergroup',
60
+ bottom: {
61
+ color: background__light,
62
+ width: '2px',
63
+ style: 'solid'
64
+ }
65
+ },
66
+ states: {
67
+ active: {
68
+ background: menuActive,
69
+ typography: {
70
+ color: primary__resting
71
+ }
72
+ },
73
+ hover: {
74
+ background: background__medium
75
+ },
76
+ focus: {
77
+ outline: {
78
+ color: focusColor,
79
+ style: 'dashed',
80
+ type: 'outline',
81
+ width: '2px',
82
+ offset: '-2px'
83
+ }
84
+ },
85
+ disabled: {
86
+ background: menuDisabledBackground,
87
+ typography: {
88
+ color: menuDisabledText
89
+ }
90
+ }
91
+ }
92
+ },
93
+ toggleOpen: {
94
+ spacings: {
95
+ top: small,
96
+ bottom: small
97
+ },
98
+ typography: {
99
+ color: expandTextColor
100
+ }
101
+ }
102
+ },
103
+ modes: {
104
+ compact: {
105
+ entities: {}
106
+ }
107
+ }
108
+ };
109
+
110
+ export { sidebar };
@@ -0,0 +1,81 @@
1
+ import _objectSpread from '@babel/runtime/helpers/objectSpread2';
2
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
3
+ import { forwardRef } from 'react';
4
+ import { Button } from '../../Button/index.js';
5
+ import { Icon } from '../../Icon/index.js';
6
+ import { sidebar } from '../SideBar.tokens.js';
7
+ import { useSideBar } from '../SideBar.context.js';
8
+ import styled, { css } from 'styled-components';
9
+ import { jsx, jsxs } from 'react/jsx-runtime';
10
+ import { Tooltip } from '../../Tooltip/Tooltip.js';
11
+
12
+ var _excluded = ["label", "icon", "style", "className"];
13
+ var primaryWhite = sidebar.entities.actionButton.typography.color;
14
+ var MenuButtonContainer = styled.div.withConfig({
15
+ displayName: "SideBarButton__MenuButtonContainer",
16
+ componentId: "sc-15xlkyo-0"
17
+ })(function (_ref) {
18
+ var open = _ref.open,
19
+ theme = _ref.theme;
20
+ var _theme$entities$actio = theme.entities.actionButton.spacings,
21
+ right = _theme$entities$actio.right,
22
+ left = _theme$entities$actio.left,
23
+ top = _theme$entities$actio.top,
24
+ bottom = _theme$entities$actio.bottom;
25
+ return css(["display:", ";grid-template-columns:", " 1fr ", ";justify-content:center;align-items:center;margin-block-start:", ";margin-block-end:", ";box-sizing:border-box;"], open ? 'grid' : 'flex', left, right, top, bottom);
26
+ });
27
+ var ExtendedButton = styled(Button).withConfig({
28
+ displayName: "SideBarButton__ExtendedButton",
29
+ componentId: "sc-15xlkyo-1"
30
+ })(function () {
31
+ return css(["height:40px;grid-column:2;width:fit-content;"]);
32
+ });
33
+ var SideBarButton = /*#__PURE__*/forwardRef(function SideBarToggle(_ref2, ref) {
34
+ var label = _ref2.label,
35
+ icon = _ref2.icon,
36
+ style = _ref2.style,
37
+ className = _ref2.className,
38
+ rest = _objectWithoutProperties(_ref2, _excluded);
39
+ var props = _objectSpread(_objectSpread({}, rest), {}, {
40
+ ref: ref
41
+ });
42
+ var styleProps = {
43
+ style: style,
44
+ className: className
45
+ };
46
+ var _useSideBar = useSideBar(),
47
+ isOpen = _useSideBar.isOpen;
48
+ if (isOpen) {
49
+ return /*#__PURE__*/jsx(MenuButtonContainer, _objectSpread(_objectSpread({
50
+ open: isOpen
51
+ }, styleProps), {}, {
52
+ children: /*#__PURE__*/jsxs(ExtendedButton, _objectSpread(_objectSpread({
53
+ open: true,
54
+ variant: "contained"
55
+ }, props), {}, {
56
+ children: [/*#__PURE__*/jsx(Icon, {
57
+ data: icon,
58
+ color: primaryWhite
59
+ }), " ", label]
60
+ }))
61
+ }));
62
+ }
63
+ return /*#__PURE__*/jsx(Tooltip, {
64
+ title: label,
65
+ placement: "right",
66
+ children: /*#__PURE__*/jsx(MenuButtonContainer, _objectSpread(_objectSpread({
67
+ open: isOpen
68
+ }, styleProps), {}, {
69
+ children: /*#__PURE__*/jsx(Button, _objectSpread(_objectSpread({
70
+ variant: "contained_icon"
71
+ }, props), {}, {
72
+ children: /*#__PURE__*/jsx(Icon, {
73
+ data: icon,
74
+ color: primaryWhite
75
+ })
76
+ }))
77
+ }))
78
+ });
79
+ });
80
+
81
+ export { SideBarButton };
@@ -0,0 +1,25 @@
1
+ import _objectSpread from '@babel/runtime/helpers/objectSpread2';
2
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
3
+ import { forwardRef } from 'react';
4
+ import styled, { css } from 'styled-components';
5
+ import { jsx } from 'react/jsx-runtime';
6
+
7
+ var _excluded = ["children"];
8
+ var StyledSideBarContent = styled.div.withConfig({
9
+ displayName: "SideBarContent__StyledSideBarContent",
10
+ componentId: "sc-kq9ra8-0"
11
+ })(function () {
12
+ return css(["grid-area:content;"]);
13
+ });
14
+ var SideBarContent = /*#__PURE__*/forwardRef(function SideBarContent(_ref, ref) {
15
+ var children = _ref.children,
16
+ rest = _objectWithoutProperties(_ref, _excluded);
17
+ var props = _objectSpread({
18
+ ref: ref
19
+ }, rest);
20
+ return /*#__PURE__*/jsx(StyledSideBarContent, _objectSpread(_objectSpread({}, props), {}, {
21
+ children: children
22
+ }));
23
+ });
24
+
25
+ export { SideBarContent };
@@ -0,0 +1,25 @@
1
+ import _objectSpread from '@babel/runtime/helpers/objectSpread2';
2
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
3
+ import { forwardRef } from 'react';
4
+ import styled, { css } from 'styled-components';
5
+ import { jsx } from 'react/jsx-runtime';
6
+
7
+ var _excluded = ["children"];
8
+ var StyledSideBarFooter = styled.div.withConfig({
9
+ displayName: "SideBarFooter__StyledSideBarFooter",
10
+ componentId: "sc-1hsu72u-0"
11
+ })(function () {
12
+ return css(["grid-area:footer;"]);
13
+ });
14
+ var SideBarFooter = /*#__PURE__*/forwardRef(function SideBarFooter(_ref, ref) {
15
+ var children = _ref.children,
16
+ rest = _objectWithoutProperties(_ref, _excluded);
17
+ var props = _objectSpread({
18
+ ref: ref
19
+ }, rest);
20
+ return /*#__PURE__*/jsx(StyledSideBarFooter, _objectSpread(_objectSpread({}, props), {}, {
21
+ children: children
22
+ }));
23
+ });
24
+
25
+ export { SideBarFooter };
@@ -0,0 +1,54 @@
1
+ import _objectSpread from '@babel/runtime/helpers/objectSpread2';
2
+ import _extends from '@babel/runtime/helpers/extends';
3
+ import { forwardRef } from 'react';
4
+ import { Button } from '../Button/index.js';
5
+ import { Icon } from '../Icon/index.js';
6
+ import { useSideBar } from './SideBar.context.js';
7
+ import { sidebar } from './SideBar.tokens.js';
8
+ import { collapse, expand } from '@equinor/eds-icons';
9
+ import styled, { css } from 'styled-components';
10
+ import { jsx } from 'react/jsx-runtime';
11
+ import { Tooltip } from '../Tooltip/Tooltip.js';
12
+
13
+ var iconColor = sidebar.entities.toggleOpen.typography.color;
14
+ var ToggleContainer = styled.div.withConfig({
15
+ displayName: "SideBarToggle__ToggleContainer",
16
+ componentId: "sc-1w5e44y-0"
17
+ })(function (_ref) {
18
+ var theme = _ref.theme;
19
+ var minWidth = theme.minWidth,
20
+ _theme$entities$toggl = theme.entities.toggleOpen.spacings,
21
+ top = _theme$entities$toggl.top,
22
+ bottom = _theme$entities$toggl.bottom;
23
+ return css(["width:", ";display:grid;place-items:center;margin-block-start:", ";margin-block-end:", ";"], minWidth, top, bottom);
24
+ });
25
+ var SideBarToggle = /*#__PURE__*/forwardRef(function SideBarToggle(_ref2, ref) {
26
+ var rest = _extends({}, _ref2);
27
+ var props = _objectSpread(_objectSpread({}, rest), {}, {
28
+ ref: ref
29
+ });
30
+ var _useSideBar = useSideBar(),
31
+ isOpen = _useSideBar.isOpen,
32
+ setIsOpen = _useSideBar.setIsOpen;
33
+ return /*#__PURE__*/jsx(ToggleContainer, _objectSpread(_objectSpread({
34
+ open: isOpen
35
+ }, props), {}, {
36
+ children: /*#__PURE__*/jsx(Tooltip, {
37
+ title: isOpen ? 'Collapse' : 'Expand',
38
+ placement: "right",
39
+ children: /*#__PURE__*/jsx(Button, {
40
+ variant: "ghost_icon",
41
+ onClick: function onClick() {
42
+ return setIsOpen(!isOpen);
43
+ },
44
+ children: /*#__PURE__*/jsx(Icon, {
45
+ size: 24,
46
+ data: isOpen ? collapse : expand,
47
+ color: iconColor
48
+ })
49
+ })
50
+ })
51
+ }));
52
+ });
53
+
54
+ export { SideBarToggle };
@@ -0,0 +1,102 @@
1
+ import _objectSpread from '@babel/runtime/helpers/objectSpread2';
2
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
3
+ import { forwardRef } from 'react';
4
+ import { sidebar } from '../SideBar.tokens.js';
5
+ import { bordersTemplate, outlineTemplate } from '@equinor/eds-utils';
6
+ import { Icon } from '../../Icon/index.js';
7
+ import styled, { css } from 'styled-components';
8
+ import { useSideBar } from '../SideBar.context.js';
9
+ import { jsxs, jsx } from 'react/jsx-runtime';
10
+ import { Typography } from '../../Typography/Typography.js';
11
+ import { Tooltip as Tooltip$1 } from '../../Tooltip/Tooltip.js';
12
+
13
+ var _excluded = ["icon", "label", "active", "onClick", "as"];
14
+ var _tokens$entities$side = sidebar.entities.sidebarItem,
15
+ itemTextColor = _tokens$entities$side.typography.color,
16
+ iconActive = _tokens$entities$side.states.active.typography.color;
17
+ var Container = styled.a.withConfig({
18
+ displayName: "SidebarLink__Container",
19
+ componentId: "sc-gbehcj-0"
20
+ })(function (_ref) {
21
+ var theme = _ref.theme,
22
+ $active = _ref.$active;
23
+ var minWidth = theme.minWidth,
24
+ _theme$entities$sideb = theme.entities.sidebarItem,
25
+ minHeight = _theme$entities$sideb.minHeight,
26
+ border = _theme$entities$sideb.border,
27
+ _theme$entities$sideb2 = _theme$entities$sideb.states,
28
+ menuActiveBackground = _theme$entities$sideb2.active.background,
29
+ menuHoverBackground = _theme$entities$sideb2.hover.background,
30
+ focus = _theme$entities$sideb2.focus,
31
+ _theme$entities$sideb3 = _theme$entities$sideb2.disabled,
32
+ menuDisabledBackground = _theme$entities$sideb3.background,
33
+ menuDisabledText = _theme$entities$sideb3.typography.color;
34
+ return css(["background-color:", ";display:grid;grid-template-columns:", " 1fr;place-items:center;", " text-decoration:none;min-height:", ";&:hover{cursor:pointer;background-color:", ";}&:disabled{background-color:", ";color:", ";}&:focus-visible{", ";}"], $active ? menuActiveBackground : 'none', minWidth, bordersTemplate(border), minHeight, $active ? menuActiveBackground : menuHoverBackground, menuDisabledBackground, menuDisabledText, outlineTemplate(focus.outline));
35
+ });
36
+ var ItemText = styled(Typography).withConfig({
37
+ displayName: "SidebarLink__ItemText",
38
+ componentId: "sc-gbehcj-1"
39
+ })(function (_ref2) {
40
+ var theme = _ref2.theme,
41
+ $active = _ref2.$active;
42
+ var _theme$entities$sideb4 = theme.entities.sidebarItem,
43
+ itemTextColor = _theme$entities$sideb4.typography.color,
44
+ itemActiveTextColor = _theme$entities$sideb4.states.active.typography.color;
45
+ return css(["justify-self:start;color:", ";&::first-letter{text-transform:capitalize;}"], $active ? itemActiveTextColor : itemTextColor);
46
+ });
47
+ var Tooltip = styled(Tooltip$1).withConfig({
48
+ displayName: "SidebarLink__Tooltip",
49
+ componentId: "sc-gbehcj-2"
50
+ })(["text-transform:capitalize;"]);
51
+ var SidebarLink = /*#__PURE__*/forwardRef(function SidebarLink(_ref3, ref) {
52
+ var icon = _ref3.icon,
53
+ label = _ref3.label,
54
+ active = _ref3.active,
55
+ onClick = _ref3.onClick,
56
+ _ref3$as = _ref3.as,
57
+ as = _ref3$as === void 0 ? 'a' : _ref3$as,
58
+ rest = _objectWithoutProperties(_ref3, _excluded);
59
+ var _useSideBar = useSideBar(),
60
+ isOpen = _useSideBar.isOpen;
61
+ var getIconColor = function getIconColor() {
62
+ return active ? iconActive : itemTextColor;
63
+ };
64
+ if (isOpen) {
65
+ return /*#__PURE__*/jsxs(Container, _objectSpread(_objectSpread({
66
+ as: as,
67
+ tabIndex: 0,
68
+ $active: active,
69
+ onClick: onClick,
70
+ ref: ref
71
+ }, rest), {}, {
72
+ children: [icon && /*#__PURE__*/jsx(Icon, {
73
+ data: icon,
74
+ color: getIconColor()
75
+ }), /*#__PURE__*/jsx(ItemText, {
76
+ variant: "cell_text",
77
+ group: "table",
78
+ $active: active,
79
+ children: label
80
+ })]
81
+ }));
82
+ }
83
+ return /*#__PURE__*/jsx(Tooltip, {
84
+ title: label,
85
+ placement: "right",
86
+ children: /*#__PURE__*/jsx(Container, _objectSpread(_objectSpread({
87
+ tabIndex: 0,
88
+ as: as,
89
+ $active: active,
90
+ onClick: onClick,
91
+ ref: ref
92
+ }, rest), {}, {
93
+ children: icon && /*#__PURE__*/jsx(Icon, {
94
+ data: icon,
95
+ color: getIconColor()
96
+ })
97
+ }))
98
+ });
99
+ });
100
+ SidebarLink.displayName = 'SidebarLink';
101
+
102
+ export { SidebarLink };
@@ -0,0 +1,20 @@
1
+ import { SideBar as SideBar$1 } from './SideBar.js';
2
+ import { SidebarLink } from './SidebarLink/index.js';
3
+ import { SideBarContent } from './SideBarContent.js';
4
+ import { SideBarFooter } from './SideBarFooter.js';
5
+ import { SideBarToggle } from './SideBarToggle.js';
6
+ import { SideBarButton } from './SideBarButton/index.js';
7
+
8
+ var SideBar = SideBar$1;
9
+ SideBar.Link = SidebarLink;
10
+ SideBar.Content = SideBarContent;
11
+ SideBar.Footer = SideBarFooter;
12
+ SideBar.Toggle = SideBarToggle;
13
+ SideBar.Button = SideBarButton;
14
+ SideBar.Link.displayName = 'SideBar.Link';
15
+ SideBar.Content.displayName = 'SideBar.Content';
16
+ SideBar.Footer.displayName = 'SideBar.Footer';
17
+ SideBar.Toggle.displayName = 'SideBar.Toggle';
18
+ SideBar.Button.displayName = 'SideBar.Button';
19
+
20
+ export { SideBar };