@via-profit/ui-kit 0.9.1 → 0.10.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 (57) hide show
  1. package/Badge/BadgeContainer.js +1 -1
  2. package/Badge/BadgeTextWrapper.js +3 -1
  3. package/Button/buttonVariants.d.ts +1 -1
  4. package/Button/buttonVariants.js +57 -8
  5. package/Button/index.d.ts +4 -4
  6. package/CHANGELOG.md +21 -0
  7. package/Calendar/CalendarControlButton.d.ts +1 -1
  8. package/Calendar/CalendarWeekDayLabel.js +1 -1
  9. package/Menu/MenuContainer.d.ts +26 -0
  10. package/Menu/MenuContainer.js +40 -17
  11. package/Menu/MenuList.d.ts +4 -0
  12. package/Menu/MenuList.js +3 -3
  13. package/Menu/MenuSeparator.d.ts +8 -0
  14. package/Menu/MenuSeparator.js +29 -0
  15. package/Menu/index.d.ts +1 -0
  16. package/Menu/index.js +1 -0
  17. package/Modal/BaseModal/ModalInner.js +2 -1
  18. package/Pagination/PaginationItem.d.ts +1 -1
  19. package/Stepper/Step.d.ts +51 -0
  20. package/Stepper/Step.js +169 -0
  21. package/Stepper/Stepper.d.ts +49 -0
  22. package/Stepper/Stepper.js +74 -0
  23. package/Stepper/context.d.ts +21 -0
  24. package/Stepper/context.js +12 -0
  25. package/Stepper/index.d.ts +6 -0
  26. package/Stepper/index.js +10 -0
  27. package/Surface/SurfaceSubheader.js +4 -3
  28. package/Tabs/Tab.d.ts +8 -0
  29. package/Tabs/Tab.js +75 -32
  30. package/Tabs/TabList.js +24 -5
  31. package/Tabs/Tabs.d.ts +25 -1
  32. package/Tabs/Tabs.js +5 -1
  33. package/Tabs/context.d.ts +18 -0
  34. package/Tabs/context.js +9 -1
  35. package/Tabs/index.d.ts +1 -1
  36. package/ThemeProvider/index.d.ts +6 -1
  37. package/ThemeProvider/tokens.js +1 -0
  38. package/esm/Badge/BadgeContainer.js +1 -1
  39. package/esm/Badge/BadgeTextWrapper.js +3 -1
  40. package/esm/Button/buttonVariants.js +57 -8
  41. package/esm/Calendar/CalendarWeekDayLabel.js +1 -1
  42. package/esm/Menu/MenuContainer.js +40 -17
  43. package/esm/Menu/MenuList.js +3 -3
  44. package/esm/Menu/MenuSeparator.js +23 -0
  45. package/esm/Menu/index.js +1 -0
  46. package/esm/Modal/BaseModal/ModalInner.js +2 -1
  47. package/esm/Stepper/Step.js +164 -0
  48. package/esm/Stepper/Stepper.js +69 -0
  49. package/esm/Stepper/context.js +6 -0
  50. package/esm/Stepper/index.js +3 -0
  51. package/esm/Surface/SurfaceSubheader.js +4 -3
  52. package/esm/Tabs/Tab.js +77 -34
  53. package/esm/Tabs/TabList.js +24 -5
  54. package/esm/Tabs/Tabs.js +5 -1
  55. package/esm/Tabs/context.js +8 -0
  56. package/esm/ThemeProvider/tokens.js +1 -0
  57. package/package.json +31 -1
@@ -0,0 +1,69 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import React from 'react';
13
+ import styled from '@emotion/styled';
14
+ import { css, useTheme } from '@emotion/react';
15
+ import Color from '../Color';
16
+ import { StepIndexContext, StepperContext } from './context';
17
+ const StyledStepper = styled.div `
18
+ display: flex;
19
+ ${({ $orientation, $alternativeLabel }) => $orientation === 'vertical'
20
+ ? css `
21
+ flex-direction: column;
22
+ `
23
+ : css `
24
+ flex-direction: row;
25
+ align-items: ${$alternativeLabel ? 'flex-start' : 'center'};
26
+ `}
27
+ `;
28
+ /**
29
+ * The steps of a process: done, the current one, ahead. Children — the `<Step>` elements
30
+ */
31
+ const Stepper = (props, ref) => {
32
+ const { activeStep = 0, orientation = 'horizontal', alternativeLabel = false, color = 'primary', children } = props, nativeProps = __rest(props, ["activeStep", "orientation", "alternativeLabel", "color", "children"]);
33
+ const theme = useTheme();
34
+ const [resolvedColor, contrastColor] = React.useMemo(() => {
35
+ if (color === 'primary') {
36
+ return [theme.color.accentPrimary, theme.color.accentPrimaryContrast];
37
+ }
38
+ if (color === 'secondary') {
39
+ return [theme.color.accentSecondary, theme.color.accentSecondaryContrast];
40
+ }
41
+ try {
42
+ const own = Color.fromString(color);
43
+ return [own, own.getContrastColor()];
44
+ }
45
+ catch (_a) {
46
+ return [theme.color.accentPrimary, theme.color.accentPrimaryContrast];
47
+ }
48
+ }, [
49
+ color,
50
+ theme.color.accentPrimary,
51
+ theme.color.accentPrimaryContrast,
52
+ theme.color.accentSecondary,
53
+ theme.color.accentSecondaryContrast,
54
+ ]);
55
+ const context = React.useMemo(() => ({
56
+ activeStep,
57
+ orientation,
58
+ alternativeLabel: orientation === 'horizontal' && alternativeLabel,
59
+ color: resolvedColor,
60
+ contrastColor,
61
+ }), [activeStep, orientation, alternativeLabel, resolvedColor, contrastColor]);
62
+ const steps = React.Children.toArray(children).filter(React.isValidElement);
63
+ return (React.createElement(StepperContext.Provider, { value: context },
64
+ React.createElement(StyledStepper, Object.assign({ role: "list", "aria-orientation": orientation }, nativeProps, { "$orientation": orientation, "$alternativeLabel": context.alternativeLabel, ref: ref }), steps.map((step, index) => {
65
+ var _a;
66
+ return (React.createElement(StepIndexContext.Provider, { key: (_a = step.key) !== null && _a !== void 0 ? _a : index, value: { index, last: index === steps.length - 1 } }, step));
67
+ }))));
68
+ };
69
+ export default React.forwardRef(Stepper);
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ export const StepperContext = React.createContext(null);
3
+ /**
4
+ * The place of the step in the stepper: set by the stepper for every child
5
+ */
6
+ export const StepIndexContext = React.createContext({ index: 0, last: true });
@@ -0,0 +1,3 @@
1
+ import Stepper from './Stepper';
2
+ export { default as Step } from './Step';
3
+ export default Stepper;
@@ -14,11 +14,12 @@ import styled from '@emotion/styled';
14
14
  import { themePadding } from '../ThemeProvider/tokens';
15
15
  const StyledHeader = styled.div `
16
16
  padding: ${({ $noPadding, theme }) => {
17
- const { y, x } = themePadding(theme, 'container', 0.9);
17
+ const { y, x } = themePadding(theme, 'container');
18
18
  return $noPadding ? '0' : `calc(${y} / 2) ${x} 0 ${x}`;
19
19
  }};
20
- font-size: 0.9em;
21
- font-weight: 200;
20
+ /* the size of the text, the secondary color and Light: quieter than the text, but not small */
21
+ font-size: 1em;
22
+ font-weight: 300;
22
23
  color: ${({ theme }) => theme.color.textSecondary.toString()};
23
24
  `;
24
25
  const SurfaceSubheader = (props, ref) => {
package/esm/Tabs/Tab.js CHANGED
@@ -12,10 +12,70 @@ var __rest = (this && this.__rest) || function (s, e) {
12
12
  import React from 'react';
13
13
  import styled from '@emotion/styled';
14
14
  import { css } from '@emotion/react';
15
- import { useTabsContext } from './context';
16
- import { themeFocusRing, themePadding } from '../ThemeProvider/tokens';
15
+ import Badge from '../Badge';
16
+ import { TAB_SIZES, useTabsContext } from './context';
17
+ import { themeFocusRing } from '../ThemeProvider/tokens';
18
+ const underlineStyles = ({ theme, $color, $selected, $orientation, }) => $orientation === 'vertical'
19
+ ? css `
20
+ /* The indicator of the selected tab on the right edge of the list */
21
+ &::after {
22
+ content: '';
23
+ position: absolute;
24
+ top: 0.3em;
25
+ bottom: 0.3em;
26
+ right: -1px;
27
+ width: 2px;
28
+ border-radius: 2px;
29
+ background-color: ${$color.toString()};
30
+ transform: scaleY(${$selected ? 1 : 0});
31
+ transition: transform 200ms cubic-bezier(0.4, 0, 0.2, 1);
32
+ }
33
+ &:hover:not(:disabled) {
34
+ background-color: ${theme.color.textPrimary.alpha(0.05).toString()};
35
+ }
36
+ `
37
+ : css `
38
+ /* The hover is the rounded background over the line, the line is under the text only */
39
+ &::before {
40
+ content: '';
41
+ position: absolute;
42
+ inset: 0.2em 0 0.3em 0;
43
+ z-index: -1;
44
+ border-radius: inherit;
45
+ transition: background-color 150ms ease-out;
46
+ }
47
+ &:hover:not(:disabled)::before {
48
+ background-color: ${theme.color.textPrimary.alpha(0.05).toString()};
49
+ }
50
+ &::after {
51
+ content: '';
52
+ position: absolute;
53
+ left: var(--tab-x);
54
+ right: var(--tab-x);
55
+ bottom: 0;
56
+ height: 2px;
57
+ border-radius: 2px;
58
+ background-color: ${$color.toString()};
59
+ transform: scaleX(${$selected ? 1 : 0});
60
+ transition: transform 200ms cubic-bezier(0.4, 0, 0.2, 1);
61
+ }
62
+ `;
63
+ const segmentedStyles = ({ theme, $color, $selected }) => css `
64
+ &:hover:not(:disabled) {
65
+ background-color: ${$selected
66
+ ? $color.alpha(0.2).toString()
67
+ : theme.color.textPrimary.alpha(0.05).toString()};
68
+ }
69
+ ${$selected &&
70
+ css `
71
+ background-color: ${$color.alpha(0.14).toString()};
72
+ `}
73
+ `;
17
74
  const StyledTab = styled.button `
75
+ --tab-x: ${({ $size }) => TAB_SIZES[$size].x};
18
76
  position: relative;
77
+ /* The own stacking context: the hover background lies under the text, over the panel */
78
+ isolation: isolate;
19
79
  display: inline-flex;
20
80
  align-items: center;
21
81
  justify-content: center;
@@ -23,18 +83,17 @@ const StyledTab = styled.button `
23
83
  flex-shrink: 0;
24
84
  box-sizing: border-box;
25
85
  margin: 0;
26
- padding: ${({ theme }) => {
27
- const { y, x } = themePadding(theme, 'item');
28
- return `${y} ${x}`;
29
- }};
86
+ padding: ${({ $size }) => `${TAB_SIZES[$size].y} var(--tab-x)`};
30
87
  border: 0;
88
+ border-radius: ${({ theme }) => theme.shape.radiusFactor * 2}em;
31
89
  background: none;
32
90
  font: inherit;
33
- font-size: 0.9em;
34
- font-weight: 500;
91
+ font-size: ${({ $size }) => TAB_SIZES[$size].fontSize};
92
+ /* light: the tabs are the navigation, not the headings */
93
+ font-weight: ${({ $selected }) => ($selected ? 500 : 400)};
35
94
  white-space: nowrap;
36
95
  cursor: pointer;
37
- color: ${({ theme, $color, $selected }) => $selected ? $color.toString() : theme.color.textSecondary.toString()};
96
+ color: ${({ theme, $color, $selected }) => $selected ? $color.darken(20).toString() : theme.color.textSecondary.toString()};
38
97
  transition:
39
98
  color 150ms ease-out,
40
99
  background-color 150ms ease-out;
@@ -49,7 +108,7 @@ const StyledTab = styled.button `
49
108
  `}
50
109
 
51
110
  &:hover:not(:disabled) {
52
- background-color: ${({ theme }) => theme.color.textPrimary.alpha(0.05).toString()};
111
+ color: ${({ theme, $color, $selected }) => $selected ? $color.darken(20).toString() : theme.color.textPrimary.toString()};
53
112
  }
54
113
 
55
114
  &:focus-visible {
@@ -62,31 +121,11 @@ const StyledTab = styled.button `
62
121
  opacity: 0.45;
63
122
  }
64
123
 
65
- /* The indicator of the selected tab: under the tab or on its right edge */
66
- &::after {
67
- content: '';
68
- position: absolute;
69
- background-color: ${({ $color }) => $color.toString()};
70
- transition: transform 200ms cubic-bezier(0.4, 0, 0.2, 1);
71
- ${({ $orientation, $selected }) => $orientation === 'vertical'
72
- ? css `
73
- top: 0;
74
- bottom: 0;
75
- right: -1px;
76
- width: 2px;
77
- transform: scaleY(${$selected ? 1 : 0});
78
- `
79
- : css `
80
- left: 0;
81
- right: 0;
82
- bottom: 0;
83
- height: 2px;
84
- transform: scaleX(${$selected ? 1 : 0});
85
- `}
86
- }
124
+ ${props => (props.$variant === 'segmented' ? segmentedStyles(props) : underlineStyles(props))}
87
125
 
88
126
  @media (prefers-reduced-motion: reduce) {
89
127
  &,
128
+ &::before,
90
129
  &::after {
91
130
  transition: none;
92
131
  }
@@ -94,7 +133,7 @@ const StyledTab = styled.button `
94
133
  ${({ theme }) => themeFocusRing(theme)}
95
134
  `;
96
135
  const Tab = (props, ref) => {
97
- const { value, children, onClick, disabled } = props, nativeProps = __rest(props, ["value", "children", "onClick", "disabled"]);
136
+ const { value, counter, children, onClick, disabled } = props, nativeProps = __rest(props, ["value", "counter", "children", "onClick", "disabled"]);
98
137
  const context = useTabsContext('Tab');
99
138
  const isSelected = context.value === value;
100
139
  const tabRef = React.useRef(null);
@@ -121,6 +160,10 @@ const Tab = (props, ref) => {
121
160
  context.select(value, event);
122
161
  }
123
162
  };
124
- return (React.createElement(StyledTab, Object.assign({ type: "button", role: "tab", id: context.getTabId(value), "aria-controls": context.getPanelId(value), "aria-selected": isSelected, tabIndex: isSelected ? 0 : -1, "data-tab-value": value }, nativeProps, { disabled: disabled, onClick: handleClick, "$color": context.color, "$selected": isSelected, "$orientation": context.orientation, "$fullWidth": context.fullWidth, ref: tabRef }), children));
163
+ return (React.createElement(StyledTab, Object.assign({ type: "button", role: "tab", id: context.getTabId(value), "aria-controls": context.getPanelId(value), "aria-selected": isSelected, tabIndex: isSelected ? 0 : -1, "data-tab-value": value }, nativeProps, { disabled: disabled, onClick: handleClick, "$color": context.color, "$selected": isSelected, "$orientation": context.orientation, "$variant": context.variant, "$size": context.size, "$fullWidth": context.fullWidth, ref: tabRef }),
164
+ children,
165
+ typeof counter === 'number' && (
166
+ // soft: the pale background of the color — the counter does not argue with the label
167
+ React.createElement(Badge, { variant: "soft", color: counter > 0 ? context.color.toString() : 'default' }, String(counter)))));
125
168
  };
126
169
  export default React.forwardRef(Tab);
@@ -16,27 +16,46 @@ import { useTabsContext } from './context';
16
16
  const StyledList = styled.div `
17
17
  display: flex;
18
18
  box-sizing: border-box;
19
- ${({ theme, $orientation }) => $orientation === 'vertical'
19
+ gap: 0.25em;
20
+ ${({ $orientation }) => $orientation === 'vertical'
20
21
  ? css `
21
22
  flex-direction: column;
22
23
  flex-shrink: 0;
23
- border-right: 1px solid ${theme.color.textPrimary.alpha(0.12).toString()};
24
24
  `
25
25
  : css `
26
26
  flex-direction: row;
27
27
  /* Many tabs on the narrow screen scroll instead of breaking the layout */
28
28
  overflow-x: auto;
29
29
  scrollbar-width: none;
30
- border-bottom: 1px solid ${theme.color.textPrimary.alpha(0.12).toString()};
31
30
  &::-webkit-scrollbar {
32
31
  display: none;
33
32
  }
34
33
  `}
34
+ ${({ theme, $orientation, $variant }) => $variant === 'segmented'
35
+ ? css `
36
+ /* The tray: the tabs lie in the pale rounded plate */
37
+ ${$orientation === 'horizontal' &&
38
+ css `
39
+ align-self: flex-start;
40
+ display: inline-flex;
41
+ max-width: 100%;
42
+ `}
43
+ padding: 0.25em;
44
+ border-radius: ${theme.shape.radiusFactor * 2.5}em;
45
+ background-color: ${theme.color.textPrimary.alpha(0.05).toString()};
46
+ `
47
+ : $orientation === 'vertical'
48
+ ? css `
49
+ border-right: 1px solid ${theme.color.textPrimary.alpha(0.1).toString()};
50
+ `
51
+ : css `
52
+ border-bottom: 1px solid ${theme.color.textPrimary.alpha(0.1).toString()};
53
+ `}
35
54
  `;
36
55
  const getEnabledTabs = (list) => Array.from(list.querySelectorAll('[role="tab"]')).filter(tab => tab.closest('[role="tablist"]') === list && !tab.hasAttribute('disabled'));
37
56
  const TabList = (props, ref) => {
38
57
  const { children, onKeyDown } = props, nativeProps = __rest(props, ["children", "onKeyDown"]);
39
- const { orientation, activation, value, isUncontrolledEmpty, selectInitial } = useTabsContext('TabList');
58
+ const { orientation, variant, activation, value, isUncontrolledEmpty, selectInitial } = useTabsContext('TabList');
40
59
  const listRef = React.useRef(null);
41
60
  React.useImperativeHandle(ref, () => listRef.current);
42
61
  // The tab order needs one focusable tab. Normally it is the selected one,
@@ -94,6 +113,6 @@ const TabList = (props, ref) => {
94
113
  target.click();
95
114
  }
96
115
  };
97
- return (React.createElement(StyledList, Object.assign({ role: "tablist", "aria-orientation": orientation }, nativeProps, { onKeyDown: handleKeyDown, "$orientation": orientation, ref: listRef }), children));
116
+ return (React.createElement(StyledList, Object.assign({ role: "tablist", "aria-orientation": orientation }, nativeProps, { onKeyDown: handleKeyDown, "$orientation": orientation, "$variant": variant, ref: listRef }), children));
98
117
  };
99
118
  export default React.forwardRef(TabList);
package/esm/Tabs/Tabs.js CHANGED
@@ -22,7 +22,7 @@ const StyledTabs = styled.div `
22
22
  */
23
23
  const escapeId = (value) => value.replace(/[^\w-]/g, char => `_${char.charCodeAt(0).toString(16)}`);
24
24
  const Tabs = (props, ref) => {
25
- const { value, defaultValue, onChange, orientation = 'horizontal', activation = 'auto', fullWidth = false, color, children } = props, nativeProps = __rest(props, ["value", "defaultValue", "onChange", "orientation", "activation", "fullWidth", "color", "children"]);
25
+ const { value, defaultValue, onChange, orientation = 'horizontal', activation = 'auto', fullWidth = false, variant = 'underline', size = 'm', color, children } = props, nativeProps = __rest(props, ["value", "defaultValue", "onChange", "orientation", "activation", "fullWidth", "variant", "size", "color", "children"]);
26
26
  const isControlled = typeof value !== 'undefined';
27
27
  const [internalValue, setInternalValue] = React.useState(defaultValue !== null && defaultValue !== void 0 ? defaultValue : null);
28
28
  const currentValue = isControlled ? value : internalValue;
@@ -55,6 +55,8 @@ const Tabs = (props, ref) => {
55
55
  orientation,
56
56
  activation,
57
57
  fullWidth,
58
+ variant,
59
+ size,
58
60
  color: $color,
59
61
  getTabId: tabValue => `${baseId}-tab-${escapeId(tabValue)}`,
60
62
  getPanelId: tabValue => `${baseId}-panel-${escapeId(tabValue)}`,
@@ -66,6 +68,8 @@ const Tabs = (props, ref) => {
66
68
  orientation,
67
69
  activation,
68
70
  fullWidth,
71
+ variant,
72
+ size,
69
73
  $color,
70
74
  baseId,
71
75
  ]);
@@ -1,4 +1,12 @@
1
1
  import React from 'react';
2
+ /**
3
+ * The size of the text and the paddings of the tab, in the `em` of the tabs
4
+ */
5
+ export const TAB_SIZES = {
6
+ s: { fontSize: '0.857em', y: '0.5em', x: '0.7em' },
7
+ m: { fontSize: '0.929em', y: '0.75em', x: '0.9em' },
8
+ l: { fontSize: '1em', y: '1em', x: '1.05em' },
9
+ };
2
10
  export const TabsContext = React.createContext(null);
3
11
  export const useTabsContext = (component) => {
4
12
  const context = React.useContext(TabsContext);
@@ -26,6 +26,7 @@ export const themeFocusRing = (theme, selector = '&:focus-visible') => {
26
26
  */
27
27
  export const defaultElevation = (theme) => ({
28
28
  popup: `0 8px 24px ${theme.color.surface.darken(50).alpha(0.6).toString()}`,
29
+ modal: `0 16px 48px -12px ${theme.color.surface.darken(100).alpha(0.5).toString()}`,
29
30
  surface: `0 8px 32px -13px ${theme.color.surface.darken(100).alpha(0.4).toString()}`,
30
31
  control: `0 1px 3px ${theme.color.surface.darken(100).alpha(0.35).toString()}`,
31
32
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@via-profit/ui-kit",
3
- "version": "0.9.1",
3
+ "version": "0.10.0",
4
4
  "description": "UI Kit",
5
5
  "repository": {
6
6
  "type": "git",
@@ -735,6 +735,11 @@
735
735
  "import": "./esm/Menu/MenuList.js",
736
736
  "require": "./Menu/MenuList.js"
737
737
  },
738
+ "./Menu/MenuSeparator": {
739
+ "types": "./Menu/MenuSeparator.d.ts",
740
+ "import": "./esm/Menu/MenuSeparator.js",
741
+ "require": "./Menu/MenuSeparator.js"
742
+ },
738
743
  "./Menu/context": {
739
744
  "types": "./Menu/context.d.ts",
740
745
  "import": "./esm/Menu/context.js",
@@ -1255,6 +1260,31 @@
1255
1260
  "import": "./esm/Stack/index.js",
1256
1261
  "require": "./Stack/index.js"
1257
1262
  },
1263
+ "./Stepper/Step": {
1264
+ "types": "./Stepper/Step.d.ts",
1265
+ "import": "./esm/Stepper/Step.js",
1266
+ "require": "./Stepper/Step.js"
1267
+ },
1268
+ "./Stepper/Stepper": {
1269
+ "types": "./Stepper/Stepper.d.ts",
1270
+ "import": "./esm/Stepper/Stepper.js",
1271
+ "require": "./Stepper/Stepper.js"
1272
+ },
1273
+ "./Stepper/context": {
1274
+ "types": "./Stepper/context.d.ts",
1275
+ "import": "./esm/Stepper/context.js",
1276
+ "require": "./Stepper/context.js"
1277
+ },
1278
+ "./Stepper/index": {
1279
+ "types": "./Stepper/index.d.ts",
1280
+ "import": "./esm/Stepper/index.js",
1281
+ "require": "./Stepper/index.js"
1282
+ },
1283
+ "./Stepper": {
1284
+ "types": "./Stepper/index.d.ts",
1285
+ "import": "./esm/Stepper/index.js",
1286
+ "require": "./Stepper/index.js"
1287
+ },
1258
1288
  "./Surface/SurfaceContainer": {
1259
1289
  "types": "./Surface/SurfaceContainer.d.ts",
1260
1290
  "import": "./esm/Surface/SurfaceContainer.js",