Skip to content

Commit 6e0bb48

Browse files
alex-pagelaurkimchloerice
authored
Rename Columns to HorizontalGrid (#8937)
### WHY are these changes introduced? With the UI consolidation effort happening we are aligning component names and properties across repositories. This is a first step to align component names. ### WHAT is this pull request doing? **⚠️ Breaking change** to rename `Columns` to `HorizontalGrid` --------- Co-authored-by: Lo Kim <[email protected]> Co-authored-by: Chloe Rice <[email protected]>
1 parent 085d3f7 commit 6e0bb48

File tree

23 files changed

+104
-89
lines changed

23 files changed

+104
-89
lines changed

.changeset/loud-clouds-kiss.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@shopify/polaris': minor
3+
---
4+
5+
Renamed `Columns` to `HorizontalGrid`

polaris-react/src/components/Columns/index.ts

Lines changed: 0 additions & 1 deletion
This file was deleted.

polaris-react/src/components/Columns/Columns.scss renamed to polaris-react/src/components/HorizontalGrid/HorizontalGrid.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
@import '../../styles/common';
22

3-
.Columns {
3+
.HorizontalGrid {
44
@include responsive-props('columns', 'gap', 'gap');
55
@include responsive-props(
66
'columns',
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,31 @@
11
import React from 'react';
22
import type {ComponentMeta} from '@storybook/react';
3-
import {Button, Columns, Page} from '@shopify/polaris';
3+
import {Button, HorizontalGrid, Page} from '@shopify/polaris';
44
import {ChevronLeftMinor, ChevronRightMinor} from '@shopify/polaris-icons';
55

66
export default {
7-
component: Columns,
8-
} as ComponentMeta<typeof Columns>;
7+
component: HorizontalGrid,
8+
} as ComponentMeta<typeof HorizontalGrid>;
99

1010
export function Default() {
1111
return (
1212
<Page fullWidth>
13-
<Columns>
13+
<HorizontalGrid>
1414
<div style={{background: 'aquamarine'}}>one</div>
1515
<div style={{background: 'aquamarine'}}>two</div>
1616
<div style={{background: 'aquamarine'}}>three</div>
1717
<div style={{background: 'aquamarine'}}>four</div>
1818
<div style={{background: 'aquamarine'}}>five</div>
1919
<div style={{background: 'aquamarine'}}>six</div>
20-
</Columns>
20+
</HorizontalGrid>
2121
</Page>
2222
);
2323
}
2424

25-
export function WithTemplateColumns() {
25+
export function WithTemplateHorizontalGrid() {
2626
return (
2727
<Page fullWidth>
28-
<Columns
28+
<HorizontalGrid
2929
columns={{
3030
xs: '1.5fr 0.5fr',
3131
sm: '2fr 1fr',
@@ -39,15 +39,15 @@ export function WithTemplateColumns() {
3939
<div style={{background: 'aquamarine'}}>Column four</div>
4040
<div style={{background: 'aquamarine'}}>Column five</div>
4141
<div style={{background: 'aquamarine'}}>Column six</div>
42-
</Columns>
42+
</HorizontalGrid>
4343
</Page>
4444
);
4545
}
4646

4747
export function WithMixedPropTypes() {
4848
return (
4949
<Page fullWidth>
50-
<Columns
50+
<HorizontalGrid
5151
columns={{xs: 2, sm: '2fr 1fr', md: '2fr 1fr 1fr', lg: 6}}
5252
gap={{xs: '2'}}
5353
>
@@ -57,73 +57,73 @@ export function WithMixedPropTypes() {
5757
<div style={{background: 'aquamarine'}}>four</div>
5858
<div style={{background: 'aquamarine'}}>five</div>
5959
<div style={{background: 'aquamarine'}}>six</div>
60-
</Columns>
60+
</HorizontalGrid>
6161
</Page>
6262
);
6363
}
6464

6565
export function WithGap() {
6666
return (
6767
<Page fullWidth>
68-
<Columns columns={{xs: 3}} gap="5">
68+
<HorizontalGrid columns={{xs: 3}} gap="5">
6969
<div style={{background: 'aquamarine'}}>Column one</div>
7070
<div style={{background: 'aquamarine'}}>Column two</div>
7171
<div style={{background: 'aquamarine'}}>Column three</div>
72-
</Columns>
72+
</HorizontalGrid>
7373
</Page>
7474
);
7575
}
7676

7777
export function WithResponsiveGap() {
7878
return (
7979
<Page fullWidth>
80-
<Columns
80+
<HorizontalGrid
8181
columns={{xs: 3}}
8282
gap={{xs: '025', sm: '4', md: '6', lg: '8', xl: '10'}}
8383
>
8484
<div style={{background: 'aquamarine'}}>Column one</div>
8585
<div style={{background: 'aquamarine'}}>Column two</div>
8686
<div style={{background: 'aquamarine'}}>Column three</div>
87-
</Columns>
87+
</HorizontalGrid>
8888
</Page>
8989
);
9090
}
9191

9292
export function WithFreeAndFixedWidths() {
9393
return (
9494
<Page fullWidth>
95-
<Columns columns={{xs: '1fr auto auto'}} gap={{xs: '05'}}>
95+
<HorizontalGrid columns={{xs: '1fr auto auto'}} gap={{xs: '05'}}>
9696
<div style={{background: 'aquamarine'}}>Column one</div>
9797
<div style={{background: 'aquamarine'}}>
9898
<Button icon={ChevronLeftMinor} accessibilityLabel="Previous" />
9999
</div>
100100
<div style={{background: 'aquamarine'}}>
101101
<Button icon={ChevronRightMinor} accessibilityLabel="Next" />
102102
</div>
103-
</Columns>
103+
</HorizontalGrid>
104104
</Page>
105105
);
106106
}
107107

108-
export function WithResponsiveColumns() {
108+
export function WithResponsiveHorizontalGrid() {
109109
return (
110110
<Page fullWidth>
111-
<Columns columns={{xs: 1, sm: 3}} gap="4">
111+
<HorizontalGrid columns={{xs: 1, sm: 3}} gap="4">
112112
<div style={{background: 'aquamarine'}}>Column one</div>
113113
<div style={{background: 'aquamarine'}}>Column two</div>
114114
<div style={{background: 'aquamarine'}}>Column three</div>
115-
</Columns>
115+
</HorizontalGrid>
116116
</Page>
117117
);
118118
}
119119

120120
export function WithResponsiveColumnAlisases() {
121121
return (
122122
<Page fullWidth>
123-
<Columns columns={['oneThird', 'twoThirds']} gap="4">
123+
<HorizontalGrid columns={['oneThird', 'twoThirds']} gap="4">
124124
<div style={{background: 'aquamarine'}}>Column one</div>
125125
<div style={{background: 'aquamarine'}}>Column two</div>
126-
</Columns>
126+
</HorizontalGrid>
127127
</Page>
128128
);
129129
}

polaris-react/src/components/Columns/Columns.tsx renamed to polaris-react/src/components/HorizontalGrid/HorizontalGrid.tsx

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,15 @@ import {
88
} from '../../utilities/css';
99
import type {ResponsiveValue, ResponsiveProp} from '../../utilities/css';
1010

11-
import styles from './Columns.scss';
11+
import styles from './HorizontalGrid.scss';
1212

1313
type ColumnsAlias = 'oneThird' | 'oneHalf' | 'twoThirds';
1414
type ColumnsType = number | string | ColumnsAlias[];
1515
type Columns = ResponsiveProp<ColumnsType>;
1616
type Gap = ResponsiveProp<SpacingSpaceScale>;
17-
type ColumnsAlignItems = 'start' | 'end' | 'center';
17+
type HorizontalGridAlignItems = 'start' | 'end' | 'center';
1818

19-
export interface ColumnsProps extends React.AriaAttributes {
19+
export interface HorizontalGridProps extends React.AriaAttributes {
2020
children?: React.ReactNode;
2121
/** The number of columns to display. Accepts either a single value or an object of values for different screen sizes.
2222
* @example
@@ -34,38 +34,48 @@ export interface ColumnsProps extends React.AriaAttributes {
3434
* @example
3535
* alignItems='start'
3636
*/
37-
alignItems?: ColumnsAlignItems;
37+
alignItems?: HorizontalGridAlignItems;
3838
}
3939

40-
export function Columns({children, columns, gap, alignItems}: ColumnsProps) {
40+
export function HorizontalGrid({
41+
children,
42+
columns,
43+
gap,
44+
alignItems,
45+
}: HorizontalGridProps) {
4146
const style = {
4247
...getResponsiveValue(
4348
'columns',
4449
'grid-template-columns',
45-
formatColumns(columns),
50+
formatHorizontalGrid(columns),
4651
),
4752
...getResponsiveProps('columns', 'gap', 'space', gap),
4853
'--pc-columns-align-items': alignItems,
4954
} as React.CSSProperties;
5055

5156
return (
52-
<div className={styles.Columns} style={sanitizeCustomProperties(style)}>
57+
<div
58+
className={styles.HorizontalGrid}
59+
style={sanitizeCustomProperties(style)}
60+
>
5361
{children}
5462
</div>
5563
);
5664
}
5765

58-
function formatColumns(columns?: Columns): ResponsiveValue {
66+
function formatHorizontalGrid(columns?: Columns): ResponsiveValue {
5967
if (
6068
typeof columns === 'object' &&
6169
columns !== null &&
6270
!Array.isArray(columns)
6371
) {
6472
return Object.fromEntries(
65-
Object.entries(columns).map(([breakpointAlias, breakpointColumns]) => [
66-
breakpointAlias,
67-
getColumnValue(breakpointColumns),
68-
]),
73+
Object.entries(columns).map(
74+
([breakpointAlias, breakpointHorizontalGrid]) => [
75+
breakpointAlias,
76+
getColumnValue(breakpointHorizontalGrid),
77+
],
78+
),
6979
);
7080
}
7181

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from './HorizontalGrid';

polaris-react/src/components/Columns/tests/Columns.test.tsx renamed to polaris-react/src/components/HorizontalGrid/tests/HorizontalGrid.test.tsx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import React from 'react';
22
import {mountWithApp} from 'tests/utilities';
33

4-
import {Columns} from '..';
4+
import {HorizontalGrid} from '..';
55

6-
describe('Columns', () => {
6+
describe('HorizontalGrid', () => {
77
it('only renders custom properties that match the properties passed in', () => {
88
const columns = mountWithApp(
9-
<Columns gap={{md: '1'}} alignItems="start" />,
9+
<HorizontalGrid gap={{md: '1'}} alignItems="start" />,
1010
);
1111

1212
expect(columns).toContainReactComponent('div', {
@@ -19,7 +19,7 @@ describe('Columns', () => {
1919

2020
it('formats string columns', () => {
2121
const columns = mountWithApp(
22-
<Columns columns={{xs: '1fr 1fr', lg: '1.5fr 0.5fr'}} />,
22+
<HorizontalGrid columns={{xs: '1fr 1fr', lg: '1.5fr 0.5fr'}} />,
2323
);
2424

2525
expect(columns).toContainReactComponent('div', {
@@ -31,7 +31,7 @@ describe('Columns', () => {
3131
});
3232

3333
it('formats number columns', () => {
34-
const columns = mountWithApp(<Columns columns={{xs: 1, md: 4}} />);
34+
const columns = mountWithApp(<HorizontalGrid columns={{xs: 1, md: 4}} />);
3535

3636
expect(columns).toContainReactComponent('div', {
3737
style: {
@@ -43,7 +43,7 @@ describe('Columns', () => {
4343

4444
it('formats alias columns', () => {
4545
const columns = mountWithApp(
46-
<Columns
46+
<HorizontalGrid
4747
columns={{xs: ['oneHalf', 'oneHalf'], md: ['oneThird', 'twoThirds']}}
4848
/>,
4949
);

polaris-react/src/components/Modal/components/Header/Header.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import React from 'react';
22

33
import {Box} from '../../../Box';
44
import {CloseButton} from '../CloseButton';
5-
import {Columns} from '../../../Columns';
5+
import {HorizontalGrid} from '../../../HorizontalGrid';
66
import {HorizontalStack} from '../../../HorizontalStack';
77
import {Text} from '../../../Text';
88

@@ -41,7 +41,7 @@ export function Header({
4141
paddingInlineEnd="5"
4242
borderBlockEnd="divider"
4343
>
44-
<Columns columns={{xs: '1fr auto'}} gap="4">
44+
<HorizontalGrid columns={{xs: '1fr auto'}} gap="4">
4545
<HorizontalStack gap="4" blockAlign="center">
4646
<Text id={id} as="h2" variant="headingLg" breakWord>
4747
{children}
@@ -52,7 +52,7 @@ export function Header({
5252
titleHidden={titleHidden}
5353
onClick={onClose}
5454
/>
55-
</Columns>
55+
</HorizontalGrid>
5656
</Box>
5757
);
5858
}

polaris-react/src/components/ResourceItem/ResourceItem.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {Bleed} from '../Bleed';
88
import {Button, buttonsFrom} from '../Button';
99
import {ButtonGroup} from '../ButtonGroup';
1010
import {Checkbox} from '../Checkbox';
11-
import {Columns} from '../Columns';
11+
import {HorizontalGrid} from '../HorizontalGrid';
1212
import {HorizontalStack} from '../HorizontalStack';
1313
import type {HorizontalStackProps} from '../HorizontalStack';
1414
import {Popover} from '../Popover';
@@ -290,8 +290,8 @@ class BaseResourceItem extends Component<CombinedProps, State> {
290290
paddingInlineEnd={{xs: '4', sm: '5'}}
291291
zIndex="var(--pc-resource-item-content-stacking-order)"
292292
>
293-
<Columns columns={{xs: '1fr auto'}}>
294-
<Columns
293+
<HorizontalGrid columns={{xs: '1fr auto'}}>
294+
<HorizontalGrid
295295
columns={{xs: media || selectable ? 'auto 1fr' : '1fr'}}
296296
gap="5"
297297
>
@@ -309,10 +309,10 @@ class BaseResourceItem extends Component<CombinedProps, State> {
309309
{children}
310310
</Box>
311311
</HorizontalStack>
312-
</Columns>
312+
</HorizontalGrid>
313313
{actionsMarkup}
314314
{disclosureMarkup}
315-
</Columns>
315+
</HorizontalGrid>
316316
</Box>
317317
);
318318

polaris-react/src/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,8 +127,8 @@ export type {CollapsibleProps} from './components/Collapsible';
127127
export {ColorPicker} from './components/ColorPicker';
128128
export type {ColorPickerProps} from './components/ColorPicker';
129129

130-
export {Columns} from './components/Columns';
131-
export type {ColumnsProps} from './components/Columns';
130+
export {HorizontalGrid} from './components/HorizontalGrid';
131+
export type {HorizontalGridProps} from './components/HorizontalGrid';
132132

133133
export {Combobox} from './components/Combobox';
134134
export type {ComboboxProps} from './components/Combobox';

0 commit comments

Comments
 (0)