Skip to content

Commit 6844b7a

Browse files
authored
feat!: renames and prunes type/constant exports from packages (#1725)
1 parent 421960b commit 6844b7a

File tree

27 files changed

+75
-125
lines changed

27 files changed

+75
-125
lines changed

docs/migration.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,18 @@ consider additional positioning prop support on a case-by-case basis.
3232
[jest.config.js](https://github.com/zendeskgarden/react-components/blob/c2aa97d1edccfa0578ee5655b543ca6635767fb9/utils/test/jest.config.js#L28-L30)
3333
for details.
3434

35+
#### @zendeskgarden/react-accordions
36+
37+
- Removed `IItem` type export. Use `ITimelineItemProps` instead.
38+
3539
#### @zendeskgarden/react-buttons
3640

3741
- Removed `ButtonGroup`: UI no longer recommended by Garden
42+
- Removed `IIconProps` type export. Use `IButtonStartIconProps` or `IButtonEndIconProps` instead.
43+
44+
#### @zendeskgarden/react-chrome
45+
46+
- Removed `PRODUCT` type export. Use `IHeaderItemProps['product']` instead.
3847

3948
#### @zendeskgarden/react-colorpickers
4049

@@ -68,23 +77,46 @@ consider additional positioning prop support on a case-by-case basis.
6877
#### @zendeskgarden/react-forms
6978

7079
- Removed `MultiThumbRange`: UI no longer recommended by Garden
80+
- The following types have changed:
81+
- removed `IFieldProps`
82+
- removed `IIconProps`. Use `IFauxInputStartIconProps` or `IFauxInputEndIconProps` instead.
83+
84+
#### @zendeskgarden/react-grid
85+
86+
- Exported constants prefixed with `ARRAY_` no longer have a prefix.
87+
- The following types have been removed: `ALIGN_ITEMS`, `ALIGN_SELF`, `DIRECTION`,
88+
`JUSTIFY_CONTENT`, `TEXT_ALIGN`, `GRID_NUMBER`, `BREAKPOINT`, `SPACE`, and `WRAP`
7189

7290
#### @zendeskgarden/react-modals
7391

7492
- `DrawerModal`: renamed to `Drawer`
7593
- `TooltipModal`: removed `popperModifiers` prop (see [note](#breaking-changes))
94+
- Removed `GARDEN_PLACEMENT` type export. Use `ITooltipModalProps['placement']` instead.
95+
96+
#### @zendeskgarden/react-notification
97+
98+
- The following types have changed:
99+
- removed `ToastPlacement`. Use `IToastOptions['placement']` instead.
100+
- removed `ToastContent`. Use `IToast['content']` instead.
76101

77102
#### @zendeskgarden/react-pagination
78103

79104
- `Pagination`: renamed to `OffsetPagination`
80105
- changed type export from `HTMLAttributes<HTMLUListElement>` to `HTMLAttributes<HTMLElement>`
81106
- removed `transformPageProps` prop
82107
- added `labels` prop
108+
- Renamed `PAGE_TYPE` type export to `PageType`
83109

84110
#### @zendeskgarden/react-theming
85111

86112
- Utility function `isRtl` has been removed. Use `props.theme.rtl` instead.
87113
- Utility function `getDocument` has been removed. Use `useDocument` instead.
114+
- The following exports have changed:
115+
- removed `retrieveTheme`. Use `retriveComponentStyles` instead.
116+
- constants prefixed with `ARRAY_` no longer have a prefix.
117+
- The following types have changed:
118+
- renamed `ARROW_POSITION` to `ArrowPosition`
119+
- renamed `MENU_POSITION` to `MenuPosition`
88120

89121
#### @zendeskgarden/react-tooltips
90122

packages/accordions/src/elements/timeline/components/Item.tsx

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,6 @@ import { StyledTimelineItem } from '../../../styled';
1111
import { TimelineItemContext, useTimelineContext } from '../../../utils';
1212
import { ITimelineItemProps } from '../../../types';
1313

14-
/**
15-
* @deprecated use ITimelineItemProps instead
16-
*/
17-
export type IItem = ITimelineItemProps;
18-
1914
const ItemComponent = forwardRef<HTMLLIElement, ITimelineItemProps>(
2015
({ icon, surfaceColor, ...props }, ref) => {
2116
const value = useMemo(() => ({ icon, surfaceColor }), [icon, surfaceColor]);

packages/accordions/src/index.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,7 @@
77

88
export { Accordion } from './elements/accordion/Accordion';
99
export { Stepper } from './elements/stepper/Stepper';
10-
1110
export { Timeline } from './elements/timeline/Timeline';
12-
/** @deprecated */
13-
export type { IItem } from './elements/timeline/components/Item';
1411

1512
export type {
1613
IAccordionProps,

packages/avatars/src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,5 @@
77

88
export { Avatar } from './elements/Avatar';
99
export { StatusIndicator } from './elements/StatusIndicator';
10+
1011
export type { IAvatarProps, IStatusIndicatorProps } from './types';

packages/buttons/src/elements/Button.tsx

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,14 @@
55
* found at http://www.apache.org/licenses/LICENSE-2.0.
66
*/
77

8-
import React, { forwardRef, SVGAttributes } from 'react';
8+
import React, { forwardRef } from 'react';
99
import PropTypes from 'prop-types';
1010
import { IButtonProps, SIZE } from '../types';
1111
import { StyledButton } from '../styled';
1212
import { useSplitButtonContext } from '../utils/useSplitButtonContext';
1313
import { StartIcon } from './components/StartIcon';
1414
import { EndIcon } from './components/EndIcon';
1515

16-
/**
17-
* @deprecated use IButtonStartIconProps or IButtonEndIconProps instead
18-
*/
19-
export interface IIconProps extends SVGAttributes<SVGSVGElement> {
20-
isRotated?: boolean;
21-
}
22-
2316
const ButtonComponent = forwardRef<HTMLButtonElement, IButtonProps>((props, ref) => {
2417
const splitButtonContext = useSplitButtonContext();
2518

packages/buttons/src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* found at http://www.apache.org/licenses/LICENSE-2.0.
66
*/
77

8-
export { Button, type IIconProps } from './elements/Button';
8+
export { Button } from './elements/Button';
99
export { Anchor } from './elements/Anchor';
1010
export { ChevronButton } from './elements/ChevronButton';
1111
export { IconButton } from './elements/IconButton';

packages/chrome/demo/stories/ChromeStory.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ import {
4848
NavItem,
4949
NavItemIcon,
5050
NavItemText,
51-
PRODUCT,
5251
Sidebar,
5352
SkipNav,
5453
SubNav,
@@ -58,6 +57,7 @@ import {
5857
import { Button } from '@zendeskgarden/react-buttons';
5958
import { IFooterItem, IHeaderItem, INavItem, ISubNavItem } from './types';
6059
import { SheetComponent } from './SheetStory';
60+
import { Product } from '../../src/types';
6161

6262
const HEADER_ICONS = [
6363
<HeaderIcon1 key={1} />,
@@ -75,7 +75,7 @@ const NAV_ICONS = [
7575
<NavIcon6 key={6} />
7676
];
7777

78-
const PRODUCT_ICONS: Record<PRODUCT, ReactElement<SVGElement>> = {
78+
const PRODUCT_ICONS: Record<Product, ReactElement<SVGElement>> = {
7979
chat: <ChatIcon />,
8080
connect: <ConnectIcon />,
8181
explore: <ExploreIcon />,

packages/chrome/src/elements/header/HeaderItem.spec.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import React from 'react';
99
import { render } from 'garden-test-utils';
1010
import { PALETTE } from '@zendeskgarden/react-theming';
1111
import { HeaderItem } from './HeaderItem';
12-
import { PRODUCT, Product } from '../../types';
12+
import { PRODUCTS, Product } from '../../types';
1313

1414
describe('HeaderItem', () => {
1515
it('passes ref to underlying DOM element', () => {
@@ -55,7 +55,7 @@ describe('HeaderItem', () => {
5555
};
5656

5757
it('renders correct product color', () => {
58-
PRODUCT.forEach(product => {
58+
PRODUCTS.forEach(product => {
5959
const { container } = render(<HeaderItem hasLogo product={product} />);
6060

6161
expect(container.firstChild).toHaveStyleRule('color', VALID_COLOR_MAP[product]);

packages/chrome/src/elements/header/HeaderItem.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
import React from 'react';
99
import PropTypes from 'prop-types';
10-
import { IHeaderItemProps, PRODUCT } from '../../types';
10+
import { IHeaderItemProps, PRODUCTS } from '../../types';
1111
import { StyledHeaderItem, StyledLogoHeaderItem } from '../../styled';
1212

1313
/**
@@ -29,6 +29,6 @@ HeaderItem.propTypes = {
2929
maxX: PropTypes.bool,
3030
maxY: PropTypes.bool,
3131
isRound: PropTypes.bool,
32-
product: PropTypes.oneOf(PRODUCT),
32+
product: PropTypes.oneOf(PRODUCTS),
3333
hasLogo: PropTypes.bool
3434
};

packages/chrome/src/elements/nav/NavItem.spec.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { PALETTE, getColor, DEFAULT_THEME } from '@zendeskgarden/react-theming';
1111
import { Chrome } from '../Chrome';
1212
import { NavItem } from './NavItem';
1313
import { Nav } from './Nav';
14-
import { PRODUCT, Product } from '../../types';
14+
import { PRODUCTS, Product } from '../../types';
1515

1616
describe('NavItem', () => {
1717
it('passes ref to underlying DOM element', () => {
@@ -173,7 +173,7 @@ describe('NavItem', () => {
173173
};
174174

175175
it('renders correct product color if provided', () => {
176-
PRODUCT.forEach(product => {
176+
PRODUCTS.forEach(product => {
177177
const { container } = render(<NavItem hasLogo product={product} />);
178178

179179
expect(container.firstChild).toHaveStyleRule('color', VALID_COLOR_MAP[product]);

0 commit comments

Comments
 (0)