@redsift/design-system 11.6.0-muiv5-alpha.5 → 11.6.0-muiv5-alpha.7

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 (150) hide show
  1. package/_internal/Alert2.js +182 -39
  2. package/_internal/AppBar.js +240 -29
  3. package/_internal/AppContainer.js +132 -86
  4. package/_internal/AppContent.js +84 -17
  5. package/_internal/Badge2.js +137 -4
  6. package/_internal/BreadcrumbItem.js +85 -3
  7. package/_internal/Breadcrumbs2.js +86 -21
  8. package/_internal/Button2.js +81 -20
  9. package/_internal/ButtonGroup.js +165 -25
  10. package/_internal/ButtonLink.js +74 -18
  11. package/_internal/Card2.js +151 -29
  12. package/_internal/CardActions.js +38 -3
  13. package/_internal/CardBody.js +36 -3
  14. package/_internal/CardHeader.js +77 -3
  15. package/_internal/Checkbox2.js +234 -58
  16. package/_internal/CheckboxGroup.js +182 -4
  17. package/_internal/ConditionalWrapper.js +11 -12
  18. package/_internal/DetailedCard.js +6912 -48
  19. package/_internal/DetailedCardCollapsibleSectionItems.js +58 -3
  20. package/_internal/DetailedCardHeader.js +61 -3
  21. package/_internal/DetailedCardSection.js +166 -3
  22. package/_internal/DetailedCardSectionItem.js +88 -3
  23. package/_internal/Flexbox2.js +85 -22
  24. package/_internal/Grid2.js +87 -24
  25. package/_internal/GridItem.js +34 -3
  26. package/_internal/Heading2.js +107 -3
  27. package/_internal/Icon2.js +206 -5
  28. package/_internal/IconButton.js +71 -3
  29. package/_internal/IconButtonLink.js +65 -18
  30. package/_internal/Item2.js +390 -73
  31. package/_internal/Link2.js +56 -15
  32. package/_internal/LinkButton.js +56 -13
  33. package/_internal/Number2.js +103 -61
  34. package/_internal/NumberField.js +3959 -65
  35. package/_internal/Pill2.js +400 -4
  36. package/_internal/ProgressBar.js +61 -18
  37. package/_internal/Radio2.js +227 -56
  38. package/_internal/RadioGroup.js +170 -4
  39. package/_internal/Shield2.js +220 -4
  40. package/_internal/SideNavigationMenu.js +586 -4
  41. package/_internal/SideNavigationMenuItem.js +299 -4
  42. package/_internal/Skeleton2.js +36 -9
  43. package/_internal/SkeletonCircle.js +52 -3
  44. package/_internal/SkeletonText.js +71 -3
  45. package/_internal/Spinner2.js +319 -29
  46. package/_internal/Switch2.js +310 -56
  47. package/_internal/SwitchGroup.js +182 -4
  48. package/_internal/Text2.js +45 -3
  49. package/_internal/TextArea.js +430 -20
  50. package/_internal/TextField.js +463 -19
  51. package/_internal/alert.js +2 -5
  52. package/_internal/app-bar.js +2 -8
  53. package/_internal/app-container.js +3 -9
  54. package/_internal/app-content.js +2 -5
  55. package/_internal/app-side-panel.js +3 -11
  56. package/_internal/badge.js +2 -6
  57. package/_internal/breadcrumb-item.js +1 -4
  58. package/_internal/breadcrumbs.js +2 -6
  59. package/_internal/button-group.js +2 -5
  60. package/_internal/button-link.js +2 -8
  61. package/_internal/button.js +3 -8
  62. package/_internal/card-actions.js +1 -4
  63. package/_internal/card-body.js +1 -4
  64. package/_internal/card-header.js +1 -8
  65. package/_internal/card.js +2 -11
  66. package/_internal/checkbox-group.js +2 -6
  67. package/_internal/checkbox.js +2 -6
  68. package/_internal/colors.js +87 -91
  69. package/_internal/conditional-wrapper.js +2 -2
  70. package/_internal/detailed-card-collapsible-section-items.js +1 -3
  71. package/_internal/detailed-card-header.js +1 -7
  72. package/_internal/detailed-card-section-item.js +1 -10
  73. package/_internal/detailed-card-section.js +1 -6
  74. package/_internal/detailed-card.js +2 -16
  75. package/_internal/flexbox.js +2 -5
  76. package/_internal/focus-within-group.js +3 -3
  77. package/_internal/fonts.js +4 -6
  78. package/_internal/gradient-border.js +35 -16
  79. package/_internal/grid-item.js +1 -4
  80. package/_internal/grid.js +2 -6
  81. package/_internal/heading.js +2 -6
  82. package/_internal/icon-button-link.js +2 -8
  83. package/_internal/icon-button.js +2 -6
  84. package/_internal/icon.js +2 -6
  85. package/_internal/item.js +2 -8
  86. package/_internal/link-button.js +2 -8
  87. package/_internal/link.js +3 -8
  88. package/_internal/listbox.js +3 -6
  89. package/_internal/number-field.js +2 -9
  90. package/_internal/number.js +2 -7
  91. package/_internal/pill.js +2 -6
  92. package/_internal/progress-bar.js +2 -5
  93. package/_internal/radio-group.js +2 -6
  94. package/_internal/radio.js +2 -6
  95. package/_internal/shared.js +2 -5
  96. package/_internal/shield.js +2 -6
  97. package/_internal/side-navigation-menu-bar.js +3 -9
  98. package/_internal/side-navigation-menu-item.js +2 -8
  99. package/_internal/side-navigation-menu.js +2 -8
  100. package/_internal/skeleton-circle.js +1 -6
  101. package/_internal/skeleton-text.js +2 -6
  102. package/_internal/skeleton.js +1 -7
  103. package/_internal/spinner.js +2 -5
  104. package/_internal/styles.js +235 -17
  105. package/_internal/styles2.js +44 -280
  106. package/_internal/switch-group.js +2 -6
  107. package/_internal/switch.js +2 -6
  108. package/_internal/text-area.js +2 -9
  109. package/_internal/text-field.js +2 -10
  110. package/_internal/text.js +2 -6
  111. package/_internal/theme.js +1 -3
  112. package/_internal/types.js +7 -31
  113. package/_internal/types2.js +18 -29
  114. package/_internal/types3.js +15 -18
  115. package/_internal/useAppSidePanel.js +331 -6
  116. package/_internal/useFocusOnList.js +502 -44
  117. package/_internal/useListboxItem.js +120 -23
  118. package/_internal/useSideNavigationMenuBar.js +371 -7
  119. package/_internal/useTheme.js +10 -8
  120. package/index.d.ts +4667 -0
  121. package/index.js +523 -1674
  122. package/package.json +2 -2
  123. package/_internal/SideNavigationMenuBar.js +0 -9
  124. package/_internal/helpers.js +0 -23
  125. package/_internal/types10.js +0 -20
  126. package/_internal/types11.js +0 -27
  127. package/_internal/types12.js +0 -35
  128. package/_internal/types13.js +0 -143
  129. package/_internal/types14.js +0 -11
  130. package/_internal/types15.js +0 -62
  131. package/_internal/types16.js +0 -56
  132. package/_internal/types17.js +0 -57
  133. package/_internal/types18.js +0 -40
  134. package/_internal/types19.js +0 -101
  135. package/_internal/types20.js +0 -47
  136. package/_internal/types21.js +0 -68
  137. package/_internal/types22.js +0 -52
  138. package/_internal/types23.js +0 -174
  139. package/_internal/types24.js +0 -18
  140. package/_internal/types25.js +0 -12
  141. package/_internal/types26.js +0 -36
  142. package/_internal/types27.js +0 -72
  143. package/_internal/types28.js +0 -73
  144. package/_internal/types29.js +0 -99
  145. package/_internal/types4.js +0 -67
  146. package/_internal/types5.js +0 -11
  147. package/_internal/types6.js +0 -11
  148. package/_internal/types7.js +0 -28
  149. package/_internal/types8.js +0 -72
  150. package/_internal/types9.js +0 -16
@@ -1,9 +1,40 @@
1
- import { G as GridItemProps } from './types14.js';
2
- import { C as Comp } from './helpers.js';
1
+ import { b as _objectWithoutProperties, c as _extends } from './_rollupPluginBabelHelpers.js';
2
+ import React__default, { forwardRef } from 'react';
3
+ import classNames from 'classnames';
4
+ import styled from 'styled-components';
5
+ import { i as baseStyling, c as baseInternalSpacing, f as baseBorder } from './styles4.js';
6
+
7
+ /**
8
+ * Component style.
9
+ */
10
+ const StyledGridItem = styled.div`
11
+ display: inherit;
12
+
13
+ ${baseStyling}
14
+ ${baseInternalSpacing}
15
+ ${baseBorder}
16
+ `;
17
+
18
+ const _excluded = ["children", "className"];
19
+ const COMPONENT_NAME = 'GridItem';
20
+ const CLASSNAME = 'redsift-grid-item';
3
21
 
4
22
  /**
5
23
  * The GridItem component.
6
24
  */
7
- declare const GridItem: Comp<GridItemProps, HTMLDivElement>;
25
+ const GridItem = /*#__PURE__*/forwardRef((props, ref) => {
26
+ const {
27
+ children,
28
+ className
29
+ } = props,
30
+ forwardedProps = _objectWithoutProperties(props, _excluded);
31
+ return /*#__PURE__*/React__default.createElement(StyledGridItem, _extends({}, forwardedProps, {
32
+ className: classNames(GridItem.className, className),
33
+ ref: ref
34
+ }), children);
35
+ });
36
+ GridItem.className = CLASSNAME;
37
+ GridItem.displayName = COMPONENT_NAME;
8
38
 
9
39
  export { GridItem as G };
40
+ //# sourceMappingURL=GridItem.js.map
@@ -1,9 +1,113 @@
1
- import { b as HeadingProps } from './types15.js';
2
- import { C as Comp } from './helpers.js';
1
+ import { b as _objectWithoutProperties, c as _extends } from './_rollupPluginBabelHelpers.js';
2
+ import React__default, { forwardRef } from 'react';
3
+ import classNames from 'classnames';
4
+ import styled, { css } from 'styled-components';
5
+ import { i as baseStyling } from './styles4.js';
6
+ import { N as NotificationsColorPalette, g as NeutralColorPalette, e as ProductColorPalette } from './colors.js';
7
+ import { F as FontFamily } from './fonts.js';
8
+ import { u as useTheme } from './useTheme.js';
9
+
10
+ /**
11
+ * Component style.
12
+ */
13
+ const StyledHeading = styled.span`
14
+ margin: 0;
15
+ padding: 0;
16
+ border: 0;
17
+ font-size: 100%;
18
+ font: inherit;
19
+ vertical-align: baseline;
20
+
21
+ ${baseStyling}
22
+
23
+ ${_ref => {
24
+ let {
25
+ $color,
26
+ $theme
27
+ } = _ref;
28
+ return $color && $color === 'radar' ? css`
29
+ background: linear-gradient(90deg, #51b78e 0%, #0081c3 100%);
30
+ background-clip: text;
31
+ color: transparent;
32
+ ` : Object.keys(NotificationsColorPalette).indexOf($color) !== -1 ? css`
33
+ color: var(--redsift-color-notifications-${$color}-primary);
34
+ ` : Object.keys(NeutralColorPalette).indexOf($color) !== -1 ? css`
35
+ color: var(--redsift-color-neutral-${$color});
36
+ ` : Object.keys(ProductColorPalette).indexOf($color) !== -1 ? css`
37
+ color: var(--redsift-color-product-${$color});
38
+ ` : css`
39
+ color: ${$color || css`var(--redsift-color-${$theme}-components-text-primary)`};
40
+ `;
41
+ }}
42
+
43
+ ${_ref2 => {
44
+ let {
45
+ $variant,
46
+ $fontFamily,
47
+ $fontSize,
48
+ $fontWeight,
49
+ $lineHeight
50
+ } = _ref2;
51
+ return css`
52
+ font-family: ${$fontFamily ? css`var(--redsift-typography-font-family-${$fontFamily})` : css`var(--redsift-typography-${$variant !== null && $variant !== void 0 ? $variant : 'body'}-font-family)`};
53
+ font-size: ${$fontSize ? $fontSize : css`var(--redsift-typography-${$variant !== null && $variant !== void 0 ? $variant : 'body'}-font-size)`};
54
+ font-weight: ${$fontWeight ? $fontWeight : css`var(--redsift-typography-${$variant !== null && $variant !== void 0 ? $variant : 'body'}-font-weight)`};
55
+ line-height: ${$lineHeight ? $lineHeight : css`var(--redsift-typography-${$variant !== null && $variant !== void 0 ? $variant : 'body'}-line-height)`};
56
+ `;
57
+ }}
58
+
59
+ ${_ref3 => {
60
+ let {
61
+ $noWrap
62
+ } = _ref3;
63
+ return $noWrap ? css`
64
+ overflow: hidden;
65
+ text-overflow: ellipsis;
66
+ white-space: nowrap;
67
+ ` : '';
68
+ }}
69
+ `;
70
+
71
+ const _excluded = ["as", "children", "className", "color", "fontFamily", "fontSize", "fontWeight", "lineHeight", "noWrap", "theme", "variant"];
72
+ const COMPONENT_NAME = 'Heading';
73
+ const CLASSNAME = 'redsift-heading';
3
74
 
4
75
  /**
5
76
  * The Heading component.
6
77
  */
7
- declare const Heading: Comp<HeadingProps, HTMLDivElement>;
78
+ const Heading = /*#__PURE__*/forwardRef((props, ref) => {
79
+ const {
80
+ as,
81
+ children,
82
+ className,
83
+ color,
84
+ fontFamily = FontFamily.poppins,
85
+ fontSize,
86
+ fontWeight,
87
+ lineHeight,
88
+ noWrap,
89
+ theme: propsTheme,
90
+ variant
91
+ } = props,
92
+ forwardedProps = _objectWithoutProperties(props, _excluded);
93
+ const theme = useTheme(propsTheme);
94
+ return /*#__PURE__*/React__default.createElement(StyledHeading, _extends({
95
+ as: as
96
+ }, forwardedProps, {
97
+ className: classNames(Heading.className, className),
98
+ ref: ref,
99
+ $noWrap: noWrap,
100
+ $theme: theme,
101
+ $color: color,
102
+ $fontFamily: fontFamily,
103
+ $fontSize: fontSize,
104
+ $fontWeight: fontWeight,
105
+ $lineHeight: lineHeight,
106
+ $variant: variant ? variant : as === 'span' ? 'body' : as
107
+ }), children);
108
+ });
109
+ Heading.className = CLASSNAME;
110
+ Heading.displayName = COMPONENT_NAME;
8
111
 
9
112
  export { Heading as H };
113
+ //# sourceMappingURL=Heading2.js.map
@@ -1,10 +1,211 @@
1
- import { I as IconSize, a as IconDimensions, b as IconProps } from './types17.js';
2
- import { C as Comp } from './helpers.js';
1
+ import { b as _objectWithoutProperties, c as _extends, _ as _objectSpread2 } from './_rollupPluginBabelHelpers.js';
2
+ import React__default, { forwardRef } from 'react';
3
+ import classNames from 'classnames';
4
+ import styled, { css } from 'styled-components';
5
+ import { i as baseStyling } from './styles4.js';
6
+ import { N as NotificationsColorPalette, e as ProductColorPalette, T as Theme } from './colors.js';
7
+ import { u as useTheme } from './useTheme.js';
8
+
9
+ /**
10
+ * Component size.
11
+ */
12
+ const IconSize = {
13
+ xsmall: 'xsmall',
14
+ small: 'small',
15
+ medium: 'medium',
16
+ large: 'large',
17
+ xlarge: 'xlarge',
18
+ xxlarge: 'xxlarge'
19
+ };
20
+
21
+ /**
22
+ * Component props.
23
+ */
24
+
25
+ /**
26
+ * Component style.
27
+ */
28
+ const StyledIcon = styled.span`
29
+ position: relative;
30
+ display: inline-grid;
31
+ ${baseStyling}
32
+
33
+ font-style: normal;
34
+
35
+ svg {
36
+ vertical-align: -0.125em;
37
+ grid-column: 1;
38
+ grid-row: 1;
39
+ }
40
+
41
+ ${_ref => {
42
+ let {
43
+ $color,
44
+ $theme
45
+ } = _ref;
46
+ return $color && Object.keys(NotificationsColorPalette).indexOf($color) !== -1 ? css`
47
+ color: var(--redsift-color-notifications-${$color}-primary);
48
+ ` : $color && Object.keys(ProductColorPalette).indexOf($color) !== -1 ? css`
49
+ color: var(--redsift-color-product-${$color});
50
+ ` : css`
51
+ color: ${$color || css`var(--redsift-color-neutral-${$theme === Theme.dark ? 'white' : 'x-dark-grey'})`};
52
+ `;
53
+ }}
54
+
55
+ ${_ref2 => {
56
+ let {
57
+ $width,
58
+ $height,
59
+ $fontSize,
60
+ $lineHeight
61
+ } = _ref2;
62
+ return css`
63
+ ${$width ? css`
64
+ width: ${$width}px;
65
+ ` : ''}
66
+ ${$height ? css`
67
+ height: ${$height}px;
68
+ ` : ''}
69
+ ${$fontSize ? css`
70
+ font-size: ${$fontSize}px;
71
+ ` : ''}
72
+ ${$lineHeight ? css`
73
+ line-height: ${$lineHeight}px;
74
+ ` : ''}
75
+
76
+ & .redsift-badge-standard {
77
+ grid-column: 1;
78
+ grid-row: 1;
79
+ margin-right: unset;
80
+ ${$width ? css`
81
+ margin-left: ${$width * 0.75}px;
82
+ ` : ''}
83
+ ${$height ? css`
84
+ margin-top: ${$height * 0.1 - 4}px;
85
+ ` : ''}
86
+ }
87
+
88
+ & .redsift-badge-dot {
89
+ grid-column: 1;
90
+ grid-row: 1;
91
+ margin-right: unset;
92
+ ${$width ? css`
93
+ margin-left: ${$width * 0.8}px;
94
+ ` : ''}
95
+ ${$height ? css`
96
+ margin-top: ${$height * 0.2 - 3}px;
97
+ ` : ''}
98
+ }
99
+ `;
100
+ }}
101
+ `;
102
+
103
+ const _excluded = ["aria-hidden", "aria-label", "badge", "className", "color", "icon", "size", "svgProps", "theme"];
104
+ const COMPONENT_NAME = 'Icon';
105
+ const CLASSNAME = 'redsift-icon';
106
+ const sizeToDimension = size => {
107
+ if (typeof size !== 'string') {
108
+ return size;
109
+ }
110
+ switch (size) {
111
+ case IconSize.xsmall:
112
+ return {
113
+ width: 16,
114
+ height: 16,
115
+ fontSize: 16,
116
+ lineHeight: 16
117
+ };
118
+ case IconSize.small:
119
+ return {
120
+ width: 20,
121
+ height: 20,
122
+ fontSize: 20,
123
+ lineHeight: 20
124
+ };
125
+ case IconSize.medium:
126
+ default:
127
+ return {
128
+ width: 24,
129
+ height: 24,
130
+ fontSize: 24,
131
+ lineHeight: 24
132
+ };
133
+ case IconSize.large:
134
+ return {
135
+ width: 30,
136
+ height: 30,
137
+ fontSize: 30,
138
+ lineHeight: 30
139
+ };
140
+ case IconSize.xlarge:
141
+ return {
142
+ width: 40,
143
+ height: 40,
144
+ fontSize: 40,
145
+ lineHeight: 40
146
+ };
147
+ case IconSize.xxlarge:
148
+ return {
149
+ width: 55,
150
+ height: 55,
151
+ fontSize: 55,
152
+ lineHeight: 55
153
+ };
154
+ }
155
+ };
3
156
 
4
- declare const sizeToDimension: (size: IconSize | IconDimensions) => IconDimensions;
5
157
  /**
6
158
  * The Icon component.
7
159
  */
8
- declare const Icon: Comp<IconProps, HTMLSpanElement>;
160
+ const Icon = /*#__PURE__*/forwardRef((props, ref) => {
161
+ const {
162
+ 'aria-hidden': ariaHidden,
163
+ 'aria-label': ariaLabel,
164
+ badge,
165
+ className,
166
+ color,
167
+ icon,
168
+ size = IconSize.medium,
169
+ svgProps,
170
+ theme: propsTheme
171
+ } = props,
172
+ forwardedProps = _objectWithoutProperties(props, _excluded);
173
+ const theme = useTheme(propsTheme);
174
+ const {
175
+ width,
176
+ height,
177
+ fontSize,
178
+ lineHeight
179
+ } = sizeToDimension(size);
180
+ return /*#__PURE__*/React__default.createElement(StyledIcon, _extends({}, forwardedProps, {
181
+ $color: color,
182
+ $width: width,
183
+ $height: height,
184
+ $fontSize: fontSize,
185
+ $lineHeight: lineHeight,
186
+ $theme: theme,
187
+ "aria-hidden": ariaLabel ? ariaHidden ? ariaHidden : undefined : true,
188
+ "aria-label": ariaLabel,
189
+ className: classNames(Icon.className, className, color ? 'colored' : undefined),
190
+ ref: ref
191
+ }), /*#__PURE__*/React__default.cloneElement(typeof icon === 'string' || Array.isArray(icon) && icon.every(it => typeof it === 'string') ? /*#__PURE__*/React__default.createElement("svg", {
192
+ viewBox: "0 0 24 24"
193
+ }, (Array.isArray(icon) ? icon : [icon]).map(path => /*#__PURE__*/React__default.createElement("path", {
194
+ key: path,
195
+ d: path,
196
+ fill: "currentColor"
197
+ }))) : /*#__PURE__*/React__default.isValidElement(icon) ? icon : /*#__PURE__*/React__default.createElement(React__default.Fragment, null), _objectSpread2({
198
+ 'aria-hidden': ariaLabel ? ariaHidden ? ariaHidden : undefined : true,
199
+ 'aria-label': ariaLabel,
200
+ focusable: 'false',
201
+ height,
202
+ preserveAspectRatio: 'xMidYMid meet',
203
+ role: 'img',
204
+ width
205
+ }, svgProps)), badge ? badge : null);
206
+ });
207
+ Icon.className = CLASSNAME;
208
+ Icon.displayName = COMPONENT_NAME;
9
209
 
10
- export { Icon as I, sizeToDimension as s };
210
+ export { IconSize as I, Icon as a, sizeToDimension as s };
211
+ //# sourceMappingURL=Icon2.js.map
@@ -1,5 +1,18 @@
1
- import { b as IconButtonProps } from './types16.js';
2
- import { C as Comp } from './helpers.js';
1
+ import { b as _objectWithoutProperties, c as _extends } from './_rollupPluginBabelHelpers.js';
2
+ import React__default, { forwardRef, useRef } from 'react';
3
+ import classNames from 'classnames';
4
+ import { w as warnIfNoAccessibleLabelFound } from './warnIfNoAccessibleLabelFound.js';
5
+ import { I as IconButtonVariant, S as StyledIconButton } from './styles2.js';
6
+ import { StyledGradientBorder } from './gradient-border.js';
7
+ import { u as useTheme } from './useTheme.js';
8
+ import { B as ButtonsColorPalette } from './colors.js';
9
+ import { C as ConditionalWrapper } from './ConditionalWrapper.js';
10
+ import { S as Spinner } from './Spinner2.js';
11
+ import { a as Icon } from './Icon2.js';
12
+
13
+ const _excluded = ["className", "color", "disabled", "icon", "iconProps", "isActive", "isDisabled", "isHovered", "isLoading", "theme", "variant"];
14
+ const COMPONENT_NAME = 'IconButton';
15
+ const CLASSNAME = 'redsift-icon-button';
3
16
 
4
17
  /**
5
18
  * The Icon Button is a component that contains only one icon as a child, without text.
@@ -7,6 +20,61 @@ import { C as Comp } from './helpers.js';
7
20
  * This component should use aria-label, aria-labelledby or aria-describedby to make this
8
21
  * component usable with a screen reader.
9
22
  */
10
- declare const IconButton: Comp<IconButtonProps, HTMLButtonElement>;
23
+ const IconButton = /*#__PURE__*/forwardRef((props, ref) => {
24
+ const buttonRef = ref || useRef();
25
+ const {
26
+ className,
27
+ color: propsColor,
28
+ disabled,
29
+ icon,
30
+ iconProps,
31
+ isActive,
32
+ isDisabled: propsIsDisabled,
33
+ isHovered,
34
+ isLoading,
35
+ theme: propsTheme,
36
+ variant: propsVariant
37
+ } = props,
38
+ forwardedProps = _objectWithoutProperties(props, _excluded);
39
+ const isDisabled = props.isLoading || propsIsDisabled || disabled;
40
+ const theme = useTheme(propsTheme);
41
+ const color = Object.values(ButtonsColorPalette).includes(propsColor) ? propsColor : 'primary';
42
+ const variant = Object.values(IconButtonVariant).includes(propsVariant) ? propsVariant : 'unstyled';
43
+ warnIfNoAccessibleLabelFound(props, undefined, 'IconButton');
44
+ const isGradient = color === ButtonsColorPalette.radar;
45
+ return /*#__PURE__*/React__default.createElement(ConditionalWrapper, {
46
+ condition: isGradient && variant === IconButtonVariant.secondary,
47
+ wrapper: children => /*#__PURE__*/React__default.createElement(StyledGradientBorder, {
48
+ $color: color,
49
+ $isActive: isActive,
50
+ $isDisabled: isDisabled,
51
+ $isHovered: isHovered,
52
+ $theme: theme
53
+ }, children)
54
+ }, /*#__PURE__*/React__default.createElement(StyledIconButton, _extends({
55
+ type: "button"
56
+ }, forwardedProps, {
57
+ $color: color,
58
+ $isActive: isActive,
59
+ $isDisabled: isDisabled,
60
+ $isGradient: isGradient,
61
+ $isHovered: isHovered,
62
+ $isLoading: isLoading,
63
+ $theme: theme,
64
+ $variant: variant,
65
+ "aria-disabled": isDisabled,
66
+ className: classNames(IconButton.className, className),
67
+ disabled: isDisabled,
68
+ ref: buttonRef
69
+ }), isLoading ? /*#__PURE__*/React__default.createElement(Spinner, {
70
+ size: "small",
71
+ color: variant === IconButtonVariant.primary ? 'grey-l1' : 'grey-l2'
72
+ }) : /*#__PURE__*/React__default.createElement(Icon, _extends({}, iconProps, {
73
+ icon: icon
74
+ }))));
75
+ });
76
+ IconButton.className = CLASSNAME;
77
+ IconButton.displayName = COMPONENT_NAME;
11
78
 
12
79
  export { IconButton as I };
80
+ //# sourceMappingURL=IconButton.js.map
@@ -1,20 +1,16 @@
1
- import { b as IconButtonProps } from './types16.js';
2
- import { L as LinkProps } from './types18.js';
3
- import { C as Comp } from './helpers.js';
1
+ import { b as _objectWithoutProperties, c as _extends } from './_rollupPluginBabelHelpers.js';
2
+ import React__default, { forwardRef } from 'react';
3
+ import classNames from 'classnames';
4
+ import { StyledGradientBorder } from './gradient-border.js';
5
+ import { I as IconButtonVariant, S as StyledIconButton } from './styles2.js';
6
+ import { u as useTheme } from './useTheme.js';
7
+ import { B as ButtonsColorPalette } from './colors.js';
8
+ import { C as ConditionalWrapper } from './ConditionalWrapper.js';
9
+ import { a as Icon } from './Icon2.js';
4
10
 
5
- /**
6
- * Component props.
7
- */
8
- interface IconButtonLinkProps extends Omit<LinkProps, 'color'>, Pick<IconButtonProps, 'icon' | 'iconProps' | 'color' | 'isActive' | 'isDisabled' | 'isHovered' | 'variant' | 'theme'> {
9
- }
10
- type StyledIconButtonLinkProps = Omit<IconButtonLinkProps, 'isActive' | 'isDisabled' | 'variant' | 'color' | 'size'> & {
11
- $isActive: IconButtonLinkProps['isActive'];
12
- $isDisabled: IconButtonLinkProps['isDisabled'];
13
- $isHovered: IconButtonLinkProps['isHovered'];
14
- $variant: IconButtonLinkProps['variant'];
15
- $theme: IconButtonLinkProps['theme'];
16
- $color: IconButtonLinkProps['color'];
17
- };
11
+ const _excluded = ["as", "className", "color", "href", "icon", "iconProps", "isActive", "isDisabled", "isHovered", "target", "theme", "variant"];
12
+ const COMPONENT_NAME = 'IconButtonLink';
13
+ const CLASSNAME = 'redsift-icon-button-link';
18
14
 
19
15
  /**
20
16
  * The IconButtonLink is a semantic link that looks like an icon button.
@@ -23,6 +19,57 @@ type StyledIconButtonLinkProps = Omit<IconButtonLinkProps, 'isActive' | 'isDisab
23
19
  * For a semantic link that looks like a link, please use the Link component.
24
20
  * For a semantic button that looks like a link, please use the LinkButton component.
25
21
  */
26
- declare const IconButtonLink: Comp<IconButtonLinkProps, HTMLAnchorElement>;
22
+ const IconButtonLink = /*#__PURE__*/forwardRef((props, ref) => {
23
+ const {
24
+ as,
25
+ className,
26
+ color: propsColor,
27
+ href,
28
+ icon,
29
+ iconProps,
30
+ isActive,
31
+ isDisabled,
32
+ isHovered,
33
+ target,
34
+ theme: propsTheme,
35
+ variant: propsVariant
36
+ } = props,
37
+ forwardedProps = _objectWithoutProperties(props, _excluded);
38
+ const theme = useTheme(propsTheme);
39
+ const color = Object.values(ButtonsColorPalette).includes(propsColor) ? propsColor : 'primary';
40
+ const variant = Object.values(IconButtonVariant).includes(propsVariant) ? propsVariant : 'unstyled';
41
+ const isGradient = color === ButtonsColorPalette.radar;
42
+ return /*#__PURE__*/React__default.createElement(ConditionalWrapper, {
43
+ condition: isGradient && variant === IconButtonVariant.secondary,
44
+ wrapper: children => /*#__PURE__*/React__default.createElement(StyledGradientBorder, {
45
+ $color: color,
46
+ $isActive: isActive,
47
+ $isDisabled: isDisabled,
48
+ $isHovered: isHovered,
49
+ $theme: theme
50
+ }, children)
51
+ }, /*#__PURE__*/React__default.createElement(StyledIconButton, _extends({
52
+ as: as || 'a',
53
+ role: "link",
54
+ tabIndex: !isDisabled ? 0 : undefined
55
+ }, forwardedProps, {
56
+ $color: color,
57
+ $isActive: isActive,
58
+ $isDisabled: isDisabled,
59
+ $isGradient: isGradient,
60
+ $isHovered: isHovered,
61
+ $theme: theme,
62
+ $variant: variant,
63
+ className: classNames(IconButtonLink.className, className),
64
+ href: !isDisabled ? href : undefined,
65
+ ref: ref,
66
+ target: target
67
+ }), /*#__PURE__*/React__default.createElement(Icon, _extends({}, iconProps, {
68
+ icon: icon
69
+ }))));
70
+ });
71
+ IconButtonLink.className = CLASSNAME;
72
+ IconButtonLink.displayName = COMPONENT_NAME;
27
73
 
28
- export { IconButtonLinkProps as I, StyledIconButtonLinkProps as S, IconButtonLink as a };
74
+ export { IconButtonLink as I };
75
+ //# sourceMappingURL=IconButtonLink.js.map