Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,9 @@ test.describe(`${TAG.VISUAL}`, () => {
await page.keyboard.press('ArrowUp');
await expect(locators.toggle(page).nth(0)).toBeFocused();
await page.keyboard.press('Enter');
await locators.chart(page, 'Chart').waitFor({ state: 'hidden' });
// wait for the row to leave the DOM, not just hide: the accent border stays
// visible until the closing animation ends and expandedForAnimation resets
await expect(locators.chart(page, 'Chart')).toHaveCount(0);
await expect(page).toHaveScreenshot();
});

Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,9 @@ test.describe(`${TAG.VISUAL}`, () => {
}, async ({ page, browserName }) => {
await loadPage(page, 'stories/components/data-table/docs/examples/base.tsx', 'en');
const textPrimary = await getCssVarColor(page, '--intergalactic-text-primary', 'color');
const textSecondary = await getCssVarColor(page, '--intergalactic-text-secondary', 'color');
const thPrimaryCellBg = await getCssVarColor(page, '--intergalactic-table-th-primary-cell');
const borderPrimary = await getCssVarBorder(page, '--intergalactic-border-primary');
const borderSecondary = await getCssVarBorder(page, '--intergalactic-border-secondary');
const cellHoverBg = await getCssVarColor(page, '--intergalactic-table-td-cell-hover');

Expand All @@ -26,10 +28,10 @@ test.describe(`${TAG.VISUAL}`, () => {
await checkStyles(header, {
'font-size': '12px',
'line-height': browserName === 'firefox' ? '15.9667px' : '15.96px',
'color': textPrimary,
'color': textSecondary,
'padding': '12px',
'background-color': thPrimaryCellBg,
'border-bottom': borderSecondary,
'border-bottom': borderPrimary,
});
});

Expand All @@ -38,8 +40,8 @@ test.describe(`${TAG.VISUAL}`, () => {
if (browserName !== 'firefox')
await checkStyles(header.first(), {
'font-size': '12px',
'border-bottom': borderSecondary,
'color': textPrimary,
'border-bottom': borderPrimary,
'color': textSecondary,
'background-color': thPrimaryCellBg,
'padding': '12px',
});
Expand Down Expand Up @@ -140,8 +142,10 @@ test.describe(`${TAG.VISUAL}`, () => {
}, async ({ page, browserName }) => {
await loadPage(page, 'stories/components/data-table/docs/examples/compact.tsx', 'en');
const textPrimary = await getCssVarColor(page, '--intergalactic-text-primary', 'color');
const textSecondary = await getCssVarColor(page, '--intergalactic-text-secondary', 'color');
const thPrimaryCellBg = await getCssVarColor(page, '--intergalactic-table-th-primary-cell');
const cellDefaultBg = await getCssVarColor(page, '--intergalactic-bg-primary-neutral');
const cellDefaultBg = await getCssVarColor(page, '--intergalactic-table-td-cell');
const borderPrimary = await getCssVarBorder(page, '--intergalactic-border-primary');
const borderSecondary = await getCssVarBorder(page, '--intergalactic-border-secondary');

const header = page.locator('[data-ui-name="Head.Column"]');
Expand All @@ -150,10 +154,10 @@ test.describe(`${TAG.VISUAL}`, () => {
await checkStyles(header, {
'font-size': '12px',
'line-height': browserName === 'firefox' ? '15.9667px' : '15.96px',
'color': textPrimary,
'color': textSecondary,
'padding': '12px 8px',
'background-color': thPrimaryCellBg,
'border-bottom': borderSecondary,
'border-bottom': borderPrimary,
});

await checkStyles(firstCell, {
Expand All @@ -176,10 +180,11 @@ test.describe(`${TAG.VISUAL}`, () => {
}, async ({ page, browserName }) => {
await loadPage(page, 'stories/components/data-table/docs/examples/secondary-table.tsx', 'en');
const textPrimary = await getCssVarColor(page, '--intergalactic-text-primary', 'color');
const textSecondary = await getCssVarColor(page, '--intergalactic-text-secondary', 'color');
const thSecondaryCellBg = await getCssVarColor(page, '--intergalactic-table-th-secondary-cell');
const cellDefaultBg = await getCssVarColor(page, '--intergalactic-bg-primary-neutral');
const cellDefaultBg = await getCssVarColor(page, '--intergalactic-table-td-cell');
const borderSecondary = await getCssVarBorder(page, '--intergalactic-border-secondary');
const borderTableAccent = await getCssVarBorder(page, '--intergalactic-border-table-accent');
const borderTableAccent = await getCssVarBorder(page, '--intergalactic-table-border-accent');
const cellHoverBg = await getCssVarColor(page, '--intergalactic-table-td-cell-hover');

const header = page.locator('[data-ui-name="Head.Column"]');
Expand All @@ -188,7 +193,7 @@ test.describe(`${TAG.VISUAL}`, () => {
await checkStyles(header, {
'font-size': '12px',
'line-height': browserName === 'firefox' ? '15.9667px' : '15.96px',
'color': textPrimary,
'color': textSecondary,
'padding': '8px',
'background-color': thSecondaryCellBg,
'border-bottom': borderTableAccent,
Expand All @@ -198,7 +203,7 @@ test.describe(`${TAG.VISUAL}`, () => {
if (browserName !== 'firefox')
await checkStyles(header, {
'font-size': '12px',
'color': textPrimary,
'color': textSecondary,
'padding': '8px',
'background-color': thSecondaryCellBg,
'border-bottom': borderTableAccent,
Expand Down
4 changes: 2 additions & 2 deletions semcore/data-table/src/components/Body/Row.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -533,7 +533,7 @@ export class RowRoot<Data extends DataTableData, UniqKeyType> extends Component<
row={row}
rowIndex={rowIndex}
gridRowIndex={gridRowIndex}
expanded={expanded}
expanded={expanded || expandedForAnimation}
isAccordionRow={isAccordionRow}
isCellHidden={isCellHidden}
withAccordion={withAccordion}
Expand Down Expand Up @@ -570,7 +570,7 @@ export class RowRoot<Data extends DataTableData, UniqKeyType> extends Component<
gridRowIndex={gridRowIndex}
columnIndex={index}
column={column}
expanded={expanded}
expanded={expanded || expandedForAnimation}
withAccordion={withAccordion}
accordionRowIndex={accordionRowIndex}
rows={rows}
Expand Down
63 changes: 45 additions & 18 deletions semcore/data-table/src/components/Body/style.shadow.css
Original file line number Diff line number Diff line change
Expand Up @@ -15,31 +15,31 @@ SAccordionRows {

SBody[compact] {
SCell {
padding: var(--intergalactic-spacing-3x, 12px) var(--intergalactic-spacing-2x, 8px);
padding: var(--intergalactic-spacing-content-padding-medium, 12px) var(--intergalactic-spacing-content-padding-small, 8px);
}

SCell[data-aria-level] {
padding-left: calc(var(--intergalactic-spacing-2x, 8px) + ((var(--intergalactic-spacing-4x, 16px) + var(--intergalactic-spacing-1x, 4px) + var(--intergalactic-spacing-05x, 2px)) * (var(--data-aria-level) - 1)));
padding-left: calc(var(--intergalactic-spacing-content-padding-small, 8px) + ((var(--intergalactic-spacing-content-padding-large, 16px) + var(--intergalactic-spacing-content-padding-xsmall, 4px) + var(--intergalactic-spacing-content-padding-xsmall, 4px)) * (var(--data-aria-level) - 1)));
}

SRow {
SCellWrapper:first-child SCell[data-aria-level] {
padding-left: calc(var(--intergalactic-spacing-2x, 8px) + ((var(--intergalactic-spacing-4x, 16px) + var(--intergalactic-spacing-1x, 4px) + var(--intergalactic-spacing-05x, 2px)) * (var(--data-aria-level) - 1)));
padding-left: calc(var(--intergalactic-spacing-content-padding-small, 8px) + ((var(--intergalactic-spacing-content-padding-large, 16px) + var(--intergalactic-spacing-content-padding-xsmall, 4px) + var(--intergalactic-spacing-content-padding-xsmall, 4px)) * (var(--data-aria-level) - 1)));
}
}
SRow[sideIndents='wide'] {
SCellWrapper:first-child SCell[data-aria-level] {
padding-left: calc(var(--intergalactic-spacing-5x, 20px) + ((var(--intergalactic-spacing-4x, 16px) + var(--intergalactic-spacing-1x, 4px) + var(--intergalactic-spacing-05x, 2px)) * (var(--data-aria-level) - 1)));
padding-left: calc(var(--intergalactic-spacing-content-padding-xlarge, 20px) + ((var(--intergalactic-spacing-content-padding-large, 16px) + var(--intergalactic-spacing-content-padding-xsmall, 4px) + var(--intergalactic-spacing-content-padding-xsmall, 4px)) * (var(--data-aria-level) - 1)));
}
}
SCollapseRow[sideIndents='wide'] {
SCellWrapper:first-child SCell[data-aria-level] {
padding-left: calc(var(--intergalactic-spacing-5x, 20px) + ((var(--intergalactic-spacing-4x, 16px) + var(--intergalactic-spacing-1x, 4px) + var(--intergalactic-spacing-05x, 2px)) * (var(--data-aria-level) - 1)));
padding-left: calc(var(--intergalactic-spacing-content-padding-xlarge, 20px) + ((var(--intergalactic-spacing-content-padding-large, 16px) + var(--intergalactic-spacing-content-padding-xsmall, 4px) + var(--intergalactic-spacing-content-padding-xsmall, 4px)) * (var(--data-aria-level) - 1)));
}
}

SCell SAccordionToggle {
margin-right: var(--intergalactic-spacing-2x, 8px);
margin-right: var(--intergalactic-spacing-content-gap-large, 8px);
}
}

Expand All @@ -50,6 +50,17 @@ SRow[gridArea], SCellWrapper[gridArea], SCollapseRow[gridArea] {
SCellWrapper {
height: 100%;
overflow: hidden;
position: relative;

&:has(> SCell[withAccordion][expanded]):first-child::before {
content: '';
position: absolute;
left: 0;
top: 0;
bottom: 0;
width: 2px;
background-color: var(--intergalactic-brand-secondary, oklch(0.22 0.01 140));
}
}

SCollapseRow[gridArea] > SCellWrapper, SRow[isAccordionRow] > SCellWrapper {
Expand All @@ -59,7 +70,7 @@ SCollapseRow[gridArea] > SCellWrapper, SRow[isAccordionRow] > SCellWrapper {

SCollapseRow[gridArea] > SCellWrapper > SCell:not([withoutBorder]),
SAccordionRows > SRow[isAccordionRow]:last-child > SCellWrapper > SCell:not([withoutBorder]) {
border-bottom: 1px solid var(--intergalactic-border-table-accent, oklch(0.137 0.026 175.7 / 0.161)); /* TODO: --intergalactic-table-border-accent */
border-bottom: 1px solid var(--intergalactic-table-border-accent, oklch(0.137 0.026 175.7 / 0.161));
}

SCollapseRow > SCellWrapper > SCell {
Expand Down Expand Up @@ -153,6 +164,7 @@ SCell {
font-size: var(--intergalactic-fs-200, 14px);
line-height: var(--intergalactic-lh-200, 142%);
color: var(--intergalactic-text-primary, oklch(0.1 0.03 137 / 0.899));
background-color: var(--intergalactic-table-td-cell, oklch(1 0 0));
box-sizing: border-box;
border-bottom: 1px solid var(--intergalactic-border-secondary, oklch(0.176 0.033 175.7 / 0.07));
white-space: pre-wrap;
Expand All @@ -163,8 +175,8 @@ SCell {
overflow: hidden;

SAccordionToggle {
margin-right: var(--intergalactic-spacing-3x, 12px);
margin-left: calc(var(--intergalactic-spacing-05x, 2px) * -1);
margin-right: var(--intergalactic-spacing-content-gap-xlarge, 12px);
margin-left: calc(var(--intergalactic-spacing-content-gap-xsmall, 2px) * -1);
height: fit-content;

svg {
Expand All @@ -181,22 +193,20 @@ SCell {
}

&[use='primary'] {
padding: var(--intergalactic-spacing-3x, 12px);
padding: var(--intergalactic-spacing-content-padding-medium, 12px);
min-height: 45px;
background-color: var(--intergalactic-bg-primary-neutral, oklch(1 0 0));

&[data-aria-level] {
padding-left: calc(var(--intergalactic-spacing-3x, 12px) + ((var(--intergalactic-spacing-5x, 20px) + var(--intergalactic-spacing-1x, 4px) + var(--intergalactic-spacing-05x, 2px)) * (var(--data-aria-level) - 1)));
padding-left: calc(var(--intergalactic-spacing-content-padding-medium, 12px) + ((var(--intergalactic-spacing-content-padding-xlarge, 20px) + var(--intergalactic-spacing-content-padding-xsmall, 4px) + var(--intergalactic-spacing-content-padding-xxsmall, 2px)) * (var(--data-aria-level) - 1)));
}
}

&[use='secondary'] {
padding: var(--intergalactic-spacing-2x, 8px);
padding: var(--intergalactic-spacing-content-padding-small, 8px);
min-height: 37px;
background-color: var(--intergalactic-bg-primary-neutral, oklch(1 0 0));

&[data-aria-level] {
padding-left: calc(var(--intergalactic-spacing-2x, 8px) + ((var(--intergalactic-spacing-5x, 20px) + var(--intergalactic-spacing-1x, 4px) + var(--intergalactic-spacing-05x, 2px)) * (var(--data-aria-level) - 1)));
padding-left: calc(var(--intergalactic-spacing-content-padding-small, 8px) + ((var(--intergalactic-spacing-content-padding-xlarge, 20px) + var(--intergalactic-spacing-content-padding-xsmall, 4px) + var(--intergalactic-spacing-content-padding-xxsmall, 2px)) * (var(--data-aria-level) - 1)));
}
}

Expand Down Expand Up @@ -296,15 +306,32 @@ SEmptyData {

SRow[sideIndents='wide'], SCollapseRow[sideIndents='wide'] {
SCellWrapper:first-child SCell {
padding-left: var(--intergalactic-spacing-5x, 20px);
padding-left: var(--intergalactic-spacing-content-padding-xlarge, 20px);

&[data-aria-level] {
padding-left: calc(var(--intergalactic-spacing-5x, 20px) + ((var(--intergalactic-spacing-5x, 20px) + var(--intergalactic-spacing-1x, 4px) + var(--intergalactic-spacing-05x, 2px)) * (var(--data-aria-level) - 1)));
padding-left: calc(var(--intergalactic-spacing-content-padding-xlarge, 20px) + ((var(--intergalactic-spacing-content-padding-xlarge, 20px) + var(--intergalactic-spacing-content-padding-xsmall, 4px) + var(--intergalactic-spacing-content-padding-xxsmall, 2px)) * (var(--data-aria-level) - 1)));
}
}

SCellWrapper:last-child SCell {
padding-right: var(--intergalactic-spacing-5x, 20px);
padding-right: var(--intergalactic-spacing-content-padding-xlarge, 20px);
}
}

SCollapseRow {
position: relative;
}

SRow[isAccordionRow] SCellWrapper:first-child,
SCollapseRow {
&::after {
position: absolute;
content: '';
left: 0;
top: 0;
bottom: 0;
width: 2px;
background-color: var(--intergalactic-brand-secondary, oklch(0.22 0.01 140));
}
}

Expand Down
2 changes: 1 addition & 1 deletion semcore/data-table/src/components/Head/Column.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -333,7 +333,7 @@ export class Column<
<SSortButton
aria-label={ariaSortValue}
size={100}
color='--intergalactic-icon-primary-neutral'
use='primary'
onClick={this.handleSortClick}
>
<SSortButton.Addon tag={SSortIcon} />
Expand Down
Loading
Loading