diff --git a/.changeset/eighty-goats-return.md b/.changeset/eighty-goats-return.md new file mode 100644 index 0000000000..d5eb6f78bd --- /dev/null +++ b/.changeset/eighty-goats-return.md @@ -0,0 +1,6 @@ +--- +"@marigold/docs": minor +"@marigold/components": minor +--- + +refa: remove align prop from Table diff --git a/docs/content/components/table.mdx b/docs/content/components/table.mdx index d0e2d7ff68..d9d4ceecff 100644 --- a/docs/content/components/table.mdx +++ b/docs/content/components/table.mdx @@ -62,8 +62,6 @@ import { Table } from '@marigold/components'; | :----------------------------- | :----------------------------- | :------ | :------------------------------------------------------- | | `selectionMode` (optional) | `'none', 'single', 'multiple'` | `none` | The type of selection that is allowed in the collection. | | `onSelectionChange` (optional) | `(keys: Selection) => any` | | Handler that is called when the selection changes. | -| `align` (optional) | `left, center, right` | `left` | Align the cell content from the rows except the header. | -| `alignHeader` (optional) | `left, center, right` | `left` | Align the header content. | ## Examples @@ -145,51 +143,6 @@ import { Table } from '@marigold/components'; ``` -### Text Alignment - -Align column headers and rows to the left, center, or right. - -```tsx - - - Name - Firstname - House - Year of birth - - - - Potter - Harry - Gryffindor - 1980 - - - Malfoy - Draco - Slytherin - 1980 - - - Diggory - Cedric - Hufflepuff - 1977 - - - Lovegood - Luna - Ravenclaw - 1981 - - -
-``` - ### Dynamic collections ```tsx diff --git a/packages/components/src/Table/Table.stories.tsx b/packages/components/src/Table/Table.stories.tsx index 0a4bbba4b8..890a9305ae 100644 --- a/packages/components/src/Table/Table.stories.tsx +++ b/packages/components/src/Table/Table.stories.tsx @@ -14,23 +14,6 @@ export default { description: 'selection mode', defaultValue: 'none', }, - align: { - control: { - type: 'select', - }, - options: ['left', 'right', 'center'], - description: 'cell element alignment', - - defaultValue: 'left', - }, - alignHeader: { - control: { - type: 'select', - }, - options: ['left', 'right', 'center'], - description: 'header element alignment', - defaultValue: 'left', - }, }, } as Meta; diff --git a/packages/components/src/Table/Table.test.tsx b/packages/components/src/Table/Table.test.tsx index 1525ebe433..a9cbf6ccd0 100644 --- a/packages/components/src/Table/Table.test.tsx +++ b/packages/components/src/Table/Table.test.tsx @@ -108,120 +108,6 @@ test('supports theme with parts', () => { expect(tableCells[0]).toHaveStyle(`padding: 16px`); }); -test('supports default align prop', () => { - render( - - - {column => {column.name}} - - - {item => ( - - {columnKey => {item[columnKey]}} - - )} - -
- ); - const tableCells = screen.getAllByRole(/rowheader/); - expect(tableCells[0]).toHaveStyle(`textAlign: left`); -}); - -test('supports custom align prop center', () => { - render( - - - {column => {column.name}} - - - {item => ( - - {columnKey => {item[columnKey]}} - - )} - -
- ); - const tableCells = screen.getAllByRole(/rowheader/); - expect(tableCells[0]).toHaveStyle(`textAlign: center`); -}); - -test('supports custom align prop right', () => { - render( - - - {column => {column.name}} - - - {item => ( - - {columnKey => {item[columnKey]}} - - )} - -
- ); - const tableCells = screen.getAllByRole(/rowheader/); - expect(tableCells[0]).toHaveStyle(`textAlign: right`); -}); - -test('supports default alignHeader prop', () => { - render( - - - {column => {column.name}} - - - {item => ( - - {columnKey => {item[columnKey]}} - - )} - -
- ); - const tableHeader = screen.getAllByRole(/columnheader/); - expect(tableHeader[0]).toHaveStyle(`textAlign: left`); -}); - -test('supports custom alignHeader prop center', () => { - render( - - - {column => {column.name}} - - - {item => ( - - {columnKey => {item[columnKey]}} - - )} - -
- ); - const tableHeader = screen.getAllByRole(/columnheader/); - expect(tableHeader[0]).toHaveStyle(`textAlign: center`); -}); - -test('supports custom alignHeader prop right', () => { - render( - - - {column => {column.name}} - - - {item => ( - - {columnKey => {item[columnKey]}} - - )} - -
- ); - const tableHeader = screen.getAllByRole(/columnheader/); - expect(tableHeader[0]).toHaveStyle(`textAlign: right`); -}); - test('supports selectionMode single', () => { render( diff --git a/packages/components/src/Table/Table.tsx b/packages/components/src/Table/Table.tsx index a63d9ae00d..37129df2e7 100755 --- a/packages/components/src/Table/Table.tsx +++ b/packages/components/src/Table/Table.tsx @@ -14,8 +14,8 @@ import { ThemeExtensionsWithParts, useComponentStyles } from '@marigold/system'; import { Box } from '../Box'; -import { TableCell, TableCellProps } from './TableCell'; -import { TableColumnHeader, TableColumnHeaderProps } from './TableColumnHeader'; +import { TableCell } from './TableCell'; +import { TableColumnHeader } from './TableColumnHeader'; import { TableHeaderRow } from './TableHeaderRow'; import { TableRow } from './TableRow'; import { TableRowGroup } from './TableRowGroup'; @@ -33,21 +33,13 @@ export interface TableThemeExtension export interface TableProps extends Pick, 'onRowAction' | 'onCellAction'>, TableStateProps { - align?: TableCellProps['align']; - alignHeader?: TableColumnHeaderProps['align']; variant?: string; size?: string; } // Table Component // --------------- -export const Table: Table = ({ - align, - alignHeader, - variant, - size, - ...props -}: TableProps) => { +export const Table: Table = ({ variant, size, ...props }: TableProps) => { // Setup table state and mode const showSelectionCheckboxes = props.selectionMode === 'multiple' && props.selectionBehavior !== 'replace'; @@ -76,7 +68,6 @@ export const Table: Table = ({ item={column} state={state} isSelectionColumn={column.props.isSelectionCell} - align={alignHeader} css={styles.header} /> ))} @@ -92,7 +83,6 @@ export const Table: Table = ({ item={cell} state={state} isSelectionCell={cell.props.isSelectionCell} - align={align} css={styles.cell} /> ))} diff --git a/packages/components/src/Table/TableCell.tsx b/packages/components/src/Table/TableCell.tsx index f4d8767d22..4f995f139e 100644 --- a/packages/components/src/Table/TableCell.tsx +++ b/packages/components/src/Table/TableCell.tsx @@ -20,7 +20,6 @@ export interface TableCellProps { * Wheter it is a cell with a checkbox or a regular data cell */ isSelectionCell?: boolean; - align?: 'left' | 'center' | 'right'; css?: CSSObject; } @@ -30,7 +29,6 @@ export const TableCell = ({ item: cell, state, isSelectionCell, - align = 'left', css, }: TableCellProps) => { const cellRef = useRef(null); @@ -55,7 +53,7 @@ export const TableCell = ({ as="td" ref={cellRef} __baseCSS={{ - textAlign: isSelectionCell ? 'center' : align, + textAlign: isSelectionCell ? 'center' : 'left', }} css={css} {...mergeProps(gridCellProps, focusProps)} diff --git a/packages/components/src/Table/TableColumnHeader.tsx b/packages/components/src/Table/TableColumnHeader.tsx index 6b8688de61..cb3adfbda3 100644 --- a/packages/components/src/Table/TableColumnHeader.tsx +++ b/packages/components/src/Table/TableColumnHeader.tsx @@ -22,7 +22,6 @@ export interface TableColumnHeaderProps { item: Node; state: TableState; isSelectionColumn?: boolean; - align?: 'left' | 'center' | 'right'; css?: CSSObject; } @@ -32,7 +31,6 @@ export const TableColumnHeader = ({ item: column, state, isSelectionColumn, - align = 'left', css, }: TableColumnHeaderProps) => { const ref = useRef(null); @@ -57,7 +55,7 @@ export const TableColumnHeader = ({