From 795d40daaf516672eea544da046c7bf55110e7db Mon Sep 17 00:00:00 2001 From: Marie Lucca Date: Fri, 22 Nov 2024 00:08:52 -0500 Subject: [PATCH 1/6] feat(Timeline): Convert Popover to CSS modules behind team feature flag --- e2e/components/Timeline.test.ts | 178 +++------- .../src/Timeline/Timeline.dev.stories.tsx | 92 ++++++ .../react/src/Timeline/Timeline.module.css | 104 ++++++ packages/react/src/Timeline/Timeline.tsx | 312 ++++++++++++------ .../src/Timeline/__tests__/Timeline.test.tsx | 115 +++++++ packages/react/src/Timeline/index.ts | 1 + 6 files changed, 578 insertions(+), 224 deletions(-) create mode 100644 packages/react/src/Timeline/Timeline.dev.stories.tsx create mode 100644 packages/react/src/Timeline/Timeline.module.css diff --git a/e2e/components/Timeline.test.ts b/e2e/components/Timeline.test.ts index ceba14c85ec..480467c8547 100644 --- a/e2e/components/Timeline.test.ts +++ b/e2e/components/Timeline.test.ts @@ -2,143 +2,65 @@ import {test, expect} from '@playwright/test' import {visit} from '../test-helpers/storybook' import {themes} from '../test-helpers/themes' -test.describe('Timeline', () => { - test.describe('Default', () => { - for (const theme of themes) { - test.describe(theme, () => { - test('default @vrt', async ({page}) => { - await visit(page, { - id: 'components-timeline--default', - globals: { - colorScheme: theme, - }, - }) - - // Default state - expect(await page.screenshot()).toMatchSnapshot(`Timeline.Default.${theme}.png`) - }) - - test('axe @aat', async ({page}) => { - await visit(page, { - id: 'components-timeline--default', - globals: { - colorScheme: theme, - }, - }) - await expect(page).toHaveNoViolations({ - rules: { - 'color-contrast': { - enabled: theme !== 'dark_dimmed', - }, - }, - }) - }) - }) - } - }) +const stories = [ + { + title: 'Default', + id: 'components-timeline--default', + }, + { + title: 'Clip Sidebar', + id: 'components-timeline-features--clip-sidebar', + }, + { + title: 'Condensed Items', + id: 'components-timeline-features--condensed-items', + }, + { + title: 'Timeline Break', + id: 'components-timeline-features--timeline-break', + }, + { + title: 'SX Props', + id: 'components-timeline-dev--sx-props', + }, +] as const - test.describe('Clip Sidebar', () => { - for (const theme of themes) { - test.describe(theme, () => { - test('default @vrt', async ({page}) => { - await visit(page, { - id: 'components-timeline-features--clip-sidebar', - globals: { - colorScheme: theme, - }, - }) - - // Default state - expect(await page.screenshot()).toMatchSnapshot(`Timeline.Clip Sidebar.${theme}.png`) - }) - - test('axe @aat', async ({page}) => { - await visit(page, { - id: 'components-timeline-features--clip-sidebar', - globals: { - colorScheme: theme, - }, - }) - await expect(page).toHaveNoViolations({ - rules: { - 'color-contrast': { - enabled: theme !== 'dark_dimmed', +test.describe('Timeline', () => { + for (const story of stories) { + test.describe(story.title, () => { + for (const theme of themes) { + test.describe(theme, () => { + test('@vrt', async ({page}) => { + await visit(page, { + id: story.id, + globals: { + colorScheme: theme, }, - }, - }) - }) - }) - } - }) + }) - test.describe('Condensed Items', () => { - for (const theme of themes) { - test.describe(theme, () => { - test('default @vrt', async ({page}) => { - await visit(page, { - id: 'components-timeline-features--condensed-items', - globals: { - colorScheme: theme, - }, + // Default state + expect(await page.screenshot()).toMatchSnapshot(`Timeline.${story.title}.${theme}.png`) }) - // Default state - expect(await page.screenshot()).toMatchSnapshot(`Timeline.Condensed Items.${theme}.png`) - }) - - test('axe @aat', async ({page}) => { - await visit(page, { - id: 'components-timeline-features--condensed-items', - globals: { - colorScheme: theme, - }, - }) - await expect(page).toHaveNoViolations({ - rules: { - 'color-contrast': { - enabled: theme !== 'dark_dimmed', + test('axe @aat', async ({page}) => { + await visit(page, { + id: story.id, + globals: { + colorScheme: theme, }, - }, - }) - }) - }) - } - }) - - test.describe('Timeline Break', () => { - for (const theme of themes) { - test.describe(theme, () => { - test('default @vrt', async ({page}) => { - await visit(page, { - id: 'components-timeline-features--timeline-break', - globals: { - colorScheme: theme, - }, - }) - - // Default state - expect(await page.screenshot()).toMatchSnapshot(`Timeline.Timeline Break.${theme}.png`) - }) - - test('axe @aat', async ({page}) => { - await visit(page, { - id: 'components-timeline-features--timeline-break', - globals: { - colorScheme: theme, - }, - }) - await expect(page).toHaveNoViolations({ - rules: { - 'color-contrast': { - enabled: theme !== 'dark_dimmed', + }) + await expect(page).toHaveNoViolations({ + rules: { + 'color-contrast': { + enabled: theme !== 'dark_dimmed', + }, }, - }, + }) }) }) - }) - } - }) - + } + }) + } test.describe('With Inline Links', () => { for (const theme of themes) { test.describe(theme, () => { diff --git a/packages/react/src/Timeline/Timeline.dev.stories.tsx b/packages/react/src/Timeline/Timeline.dev.stories.tsx new file mode 100644 index 00000000000..dfb7b7ddbed --- /dev/null +++ b/packages/react/src/Timeline/Timeline.dev.stories.tsx @@ -0,0 +1,92 @@ +import React from 'react' +import type {Meta} from '@storybook/react' +import type {ComponentProps} from '../utils/types' +import Timeline from './Timeline' +import Octicon from '../Octicon' +import {GitCommitIcon} from '@primer/octicons-react' + +export default { + title: 'Components/Timeline/Dev', + component: Timeline, + subcomponents: { + 'Timeline.Item': Timeline.Item, + 'Timeline.Badge': Timeline.Badge, + 'Timeline.Body': Timeline.Body, + 'Timeline.Break': Timeline.Break, + }, +} as Meta> + +export const SxProps = () => ( + + + + + + + This is a message + + + + + + + + This is a message + + + + + + + + This is a message + + +) diff --git a/packages/react/src/Timeline/Timeline.module.css b/packages/react/src/Timeline/Timeline.module.css new file mode 100644 index 00000000000..9d33cd9d506 --- /dev/null +++ b/packages/react/src/Timeline/Timeline.module.css @@ -0,0 +1,104 @@ +.Timeline { + display: flex; + flex-direction: column; + + &:where([data-clip-sidebar]) { + .TimelineItem:first-child { + padding-top: 0; + } + + .TimelineItem:last-child { + padding-bottom: 0; + } + } +} + +.TimelineItem { + position: relative; + display: flex; + padding: var(--base-size-16) 0; + margin-left: var(--base-size-16); + + &::before { + position: absolute; + top: 0; + bottom: 0; + left: 0; + display: block; + width: 2px; + content: ''; + /* stylelint-disable-next-line primer/colors */ + background-color: var(--borderColor-muted); + } + + &:where([data-condensed]){ + padding-top: var(--base-size-4); + padding-bottom: 0; + + &:last-child { + padding-bottom: var(--base-size-16); + } + + .TimelineBadge { + height: 16px; + margin-top: var(--base-size-8); + margin-bottom: var(--base-size-8); + color: var(--fgColor-muted); + background-color: var(--bgColor-default); + border: 0; + } + + } +} + +.TimelineBadgeWrapper { + position: relative; + z-index: 1; +} + +.TimelineBadge { + display: flex; + width: 32px; + height: 32px; + margin-right: var(--base-size-8); + /* stylelint-disable-next-line primer/spacing */ + margin-left: -15px; + flex-shrink: 0; + overflow: hidden; + color: var(--fgColor-muted); + + /* TODOl not quite sure if this is the correct migration for this line */ + background-color: var(--timelineBadge-bgColor); + /* stylelint-disable-next-line primer/colors */ + border-color: var(--bgColor-default); + border-style: solid; + /* stylelint-disable-next-line primer/borders */ + border-width: 2px; + border-radius: 50%; + align-items: center; + justify-content: center; + +} + +.TimelineBody { + min-width: 0; + max-width: 100%; + margin-top: var(--base-size-4); + font-size: var(--text-body-size-medium); + color: var(--fgColor-muted); + flex: auto; +} + +.TimelineBreak { + position: relative; + z-index: 1; + height: 24px; + margin: 0; + margin-bottom: calc(-1 * var(--base-size-16)); + margin-left: 0; + background-color: var(--bgColor-default); + border: 0; + /* stylelint-disable-next-line primer/borders */ + border-top: var(--base-size-4) solid var(--borderColor-default); + +} \ No newline at end of file diff --git a/packages/react/src/Timeline/Timeline.tsx b/packages/react/src/Timeline/Timeline.tsx index 32c7c33aa7a..6252afd07de 100644 --- a/packages/react/src/Timeline/Timeline.tsx +++ b/packages/react/src/Timeline/Timeline.tsx @@ -1,76 +1,158 @@ import {clsx} from 'clsx' -import React from 'react' +import React, {type HTMLProps} from 'react' import styled, {css} from 'styled-components' import Box from '../Box' import {get} from '../constants' import type {SxProp} from '../sx' import sx from '../sx' -import type {ComponentProps} from '../utils/types' - -const Timeline = styled.div<{clipSidebar?: boolean} & SxProp>` - display: flex; - flex-direction: column; - ${props => - props.clipSidebar && - css` - .Timeline-Item:first-child { - padding-top: 0; - } - - .Timeline-Item:last-child { +import {toggleStyledComponent} from '../internal/utils/toggleStyledComponent' +import {useFeatureFlag} from '../FeatureFlags' +import classes from './Timeline.module.css' +import {defaultSxProp} from '../utils/defaultSxProp' + +const CSS_MODULES_FEATURE_FLAG = 'primer_react_css_modules_team' + +type StyledTimelineProps = {clipSidebar?: boolean; className?: string} & SxProp + +const ToggleTimeline = toggleStyledComponent( + CSS_MODULES_FEATURE_FLAG, + 'div', + styled.div` + display: flex; + flex-direction: column; + ${props => + props.clipSidebar && + css` + .Timeline-Item:first-child { + padding-top: 0; + } + + .Timeline-Item:last-child { + padding-bottom: 0; + } + `} + + ${sx}; + `, +) + +export type TimelineProps = StyledTimelineProps & HTMLProps + +const Timeline = React.forwardRef(function Timeline( + {clipSidebar, className, ...props}, + forwardRef, +) { + const enabled = useFeatureFlag(CSS_MODULES_FEATURE_FLAG) + if (enabled) { + return ( + + ) + } + + return +}) + +Timeline.displayName = 'Timeline' + +type StyledTimelineItemProps = {condensed?: boolean; className?: string} & SxProp + +const ToggleTimelineItem = toggleStyledComponent( + CSS_MODULES_FEATURE_FLAG, + 'div', + styled.div.attrs(props => ({ + className: clsx('Timeline-Item', props.className), + }))` + display: flex; + position: relative; + padding: ${get('space.3')} 0; + margin-left: ${get('space.3')}; + + &::before { + position: absolute; + top: 0; + bottom: 0; + left: 0; + display: block; + width: 2px; + content: ''; + background-color: ${get('colors.border.muted')}; + } + + ${props => + props.condensed && + css` + padding-top: ${get('space.1')}; padding-bottom: 0; - } - `} - - ${sx}; -` - -type StyledTimelineItemProps = {condensed?: boolean} & SxProp - -const TimelineItem = styled.div.attrs(props => ({ - className: clsx('Timeline-Item', props.className), -}))` - display: flex; - position: relative; - padding: ${get('space.3')} 0; - margin-left: ${get('space.3')}; - - &::before { - position: absolute; - top: 0; - bottom: 0; - left: 0; - display: block; - width: 2px; - content: ''; - background-color: ${get('colors.border.muted')}; + &:last-child { + padding-bottom: ${get('space.3')}; + } + + .TimelineItem-Badge { + height: 16px; + margin-top: ${get('space.2')}; + margin-bottom: ${get('space.2')}; + color: ${get('colors.fg.muted')}; + background-color: ${get('colors.canvas.default')}; + border: 0; + } + `} + + ${sx}; + `, +) + +/** + * @deprecated Use the `TimelineItemProps` type instead + */ +export type TimelineItemsProps = StyledTimelineItemProps & HTMLProps + +export type TimelineItemProps = StyledTimelineItemProps & HTMLProps + +const TimelineItem = React.forwardRef(function TimelineItem( + {condensed, className, ...props}, + forwardRef, +) { + const enabled = useFeatureFlag(CSS_MODULES_FEATURE_FLAG) + if (enabled) { + return ( + + ) } - ${props => - props.condensed && - css` - padding-top: ${get('space.1')}; - padding-bottom: 0; - &:last-child { - padding-bottom: ${get('space.3')}; - } - - .TimelineItem-Badge { - height: 16px; - margin-top: ${get('space.2')}; - margin-bottom: ${get('space.2')}; - color: ${get('colors.fg.muted')}; - background-color: ${get('colors.canvas.default')}; - border: 0; - } - `} - - ${sx}; -` - -export type TimelineBadgeProps = {children?: React.ReactNode} & SxProp - -const TimelineBadge = (props: TimelineBadgeProps) => { + return +}) + +TimelineItem.displayName = 'TimelineItem' + +export type TimelineBadgeProps = {children?: React.ReactNode; className?: string} & SxProp & + React.ComponentPropsWithoutRef<'div'> + +const TimelineBadge = ({sx, className, ...props}: TimelineBadgeProps) => { + const enabled = useFeatureFlag(CSS_MODULES_FEATURE_FLAG) + if (enabled) { + if (sx !== defaultSxProp) { + return ( +
+ +
+ ) + } + return ( +
+
+
+ ) + } return ( { ml="-15px" alignItems="center" justifyContent="center" - sx={props.sx} + sx={sx} > {props.children} @@ -98,41 +180,79 @@ const TimelineBadge = (props: TimelineBadgeProps) => { ) } -const TimelineBody = styled.div` - min-width: 0; - max-width: 100%; - margin-top: ${get('space.1')}; - color: ${get('colors.fg.muted')}; - flex: auto; - font-size: ${get('fontSizes.1')}; - ${sx}; -` - -const TimelineBreak = styled.div` - position: relative; - z-index: 1; - height: 24px; - margin: 0; - margin-bottom: -${get('space.3')}; - margin-left: 0; - background-color: ${get('colors.canvas.default')}; - border: 0; - border-top: ${get('space.1')} solid ${get('colors.border.default')}; - ${sx}; -` - -TimelineItem.displayName = 'Timeline.Item' - TimelineBadge.displayName = 'Timeline.Badge' -TimelineBody.displayName = 'Timeline.Body' +const ToggleTimelineBody = toggleStyledComponent( + CSS_MODULES_FEATURE_FLAG, + 'div', + styled.div` + min-width: 0; + max-width: 100%; + margin-top: ${get('space.1')}; + color: ${get('colors.fg.muted')}; + flex: auto; + font-size: ${get('fontSizes.1')}; + ${sx}; + `, +) + +export type TimelineBodyProps = { + /** Class name for custom styling */ + className?: string +} & SxProp & + HTMLProps + +const TimelineBody = React.forwardRef(function TimelineBody( + {className, ...props}, + forwardRef, +) { + const enabled = useFeatureFlag(CSS_MODULES_FEATURE_FLAG) + if (enabled) { + return + } + + return +}) + +TimelineBody.displayName = 'TimelineBody' + +const ToggleTimelineBreak = toggleStyledComponent( + CSS_MODULES_FEATURE_FLAG, + 'div', + styled.div` + position: relative; + z-index: 1; + height: 24px; + margin: 0; + margin-bottom: -${get('space.3')}; + margin-left: 0; + background-color: ${get('colors.canvas.default')}; + border: 0; + border-top: ${get('space.1')} solid ${get('colors.border.default')}; + ${sx}; + `, +) + +export type TimelineBreakProps = { + /** Class name for custom styling */ + className?: string +} & SxProp & + HTMLProps + +const TimelineBreak = React.forwardRef(function TimelineBreak( + {className, ...props}, + forwardRef, +) { + const enabled = useFeatureFlag(CSS_MODULES_FEATURE_FLAG) + if (enabled) { + return + } + + return +}) -TimelineBreak.displayName = 'Timeline.Break' +TimelineBreak.displayName = 'TimelineBreak' -export type TimelineProps = ComponentProps -export type TimelineItemsProps = ComponentProps -export type TimelineBodyProps = ComponentProps -export type TimelineBreakProps = ComponentProps export default Object.assign(Timeline, { Item: TimelineItem, Badge: TimelineBadge, diff --git a/packages/react/src/Timeline/__tests__/Timeline.test.tsx b/packages/react/src/Timeline/__tests__/Timeline.test.tsx index c02faab4135..d661e8cc04c 100644 --- a/packages/react/src/Timeline/__tests__/Timeline.test.tsx +++ b/packages/react/src/Timeline/__tests__/Timeline.test.tsx @@ -4,6 +4,7 @@ import {render, rendersClass, behavesAsComponent, checkExports} from '../../util import React from 'react' import Timeline from '..' +import {FeatureFlags} from '../../FeatureFlags' describe('Timeline', () => { behavesAsComponent({Component: Timeline}) @@ -21,6 +22,25 @@ describe('Timeline', () => { it('renders with clipSidebar prop', () => { expect(render()).toMatchSnapshot() }) + + it('should support `className` on the outermost element', () => { + const Element = () => + const FeatureFlagElement = () => { + return ( + + + + ) + } + expect(HTMLRender().container.firstChild).toHaveClass('test-class-name') + expect(HTMLRender().container.firstChild).toHaveClass('test-class-name') + }) }) describe('Timeline.Item', () => { @@ -39,6 +59,25 @@ describe('Timeline.Item', () => { it('adds the Timeline-Item class', () => { expect(rendersClass(, 'Timeline-Item')).toEqual(true) }) + + it('should support `className` on the outermost element', () => { + const Element = () => + const FeatureFlagElement = () => { + return ( + + + + ) + } + expect(HTMLRender().container.firstChild).toHaveClass('test-class-name') + expect(HTMLRender().container.firstChild).toHaveClass('test-class-name') + }) }) describe('Timeline.Badge', () => { @@ -49,4 +88,80 @@ describe('Timeline.Badge', () => { const results = await axe.run(container) expect(results).toHaveNoViolations() }) + + it('should support `className` on the outermost element', () => { + const Element = () => + const FeatureFlagElement = () => { + return ( + + + + ) + } + expect(HTMLRender().container.firstChild?.firstChild).toHaveClass('test-class-name') + }) +}) + +describe('Timeline.Body', () => { + behavesAsComponent({Component: Timeline.Badge, options: {skipAs: true}}) + + it('should have no axe violations', async () => { + const {container} = HTMLRender() + const results = await axe.run(container) + expect(results).toHaveNoViolations() + }) + + it('should support `className` on the outermost element', () => { + const Element = () => + const FeatureFlagElement = () => { + return ( + + + + ) + } + expect(HTMLRender().container.firstChild).toHaveClass('test-class-name') + expect(HTMLRender().container.firstChild).toHaveClass('test-class-name') + }) +}) + +describe('Timeline.Break', () => { + behavesAsComponent({Component: Timeline.Badge, options: {skipAs: true}}) + + it('should have no axe violations', async () => { + const {container} = HTMLRender() + const results = await axe.run(container) + expect(results).toHaveNoViolations() + }) + + it('should support `className` on the outermost element', () => { + const Element = () => + const FeatureFlagElement = () => { + return ( + + + + ) + } + expect(HTMLRender().container.firstChild).toHaveClass('test-class-name') + expect(HTMLRender().container.firstChild).toHaveClass('test-class-name') + }) }) diff --git a/packages/react/src/Timeline/index.ts b/packages/react/src/Timeline/index.ts index cde44809333..55b0dce49f6 100644 --- a/packages/react/src/Timeline/index.ts +++ b/packages/react/src/Timeline/index.ts @@ -2,6 +2,7 @@ export {default} from './Timeline' export type { TimelineProps, TimelineItemsProps, + TimelineItemProps, TimelineBadgeProps, TimelineBodyProps, TimelineBreakProps, From fab09899ffa5ed2f87f570d03731a15acee4f235 Mon Sep 17 00:00:00 2001 From: francinelucca Date: Fri, 22 Nov 2024 18:59:48 +0000 Subject: [PATCH 2/6] test(vrt): update snapshots --- .../Timeline-SX-Props-dark-colorblind-linux.png | Bin 0 -> 11525 bytes .../Timeline-SX-Props-dark-dimmed-linux.png | Bin 0 -> 11665 bytes ...meline-SX-Props-dark-high-contrast-linux.png | Bin 0 -> 11458 bytes .../Timeline-SX-Props-dark-linux.png | Bin 0 -> 11557 bytes .../Timeline-SX-Props-dark-tritanopia-linux.png | Bin 0 -> 11557 bytes ...Timeline-SX-Props-light-colorblind-linux.png | Bin 0 -> 10793 bytes ...eline-SX-Props-light-high-contrast-linux.png | Bin 0 -> 10827 bytes .../Timeline-SX-Props-light-linux.png | Bin 0 -> 10776 bytes ...Timeline-SX-Props-light-tritanopia-linux.png | Bin 0 -> 10776 bytes 9 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 .playwright/snapshots/components/Timeline.test.ts-snapshots/Timeline-SX-Props-dark-colorblind-linux.png create mode 100644 .playwright/snapshots/components/Timeline.test.ts-snapshots/Timeline-SX-Props-dark-dimmed-linux.png create mode 100644 .playwright/snapshots/components/Timeline.test.ts-snapshots/Timeline-SX-Props-dark-high-contrast-linux.png create mode 100644 .playwright/snapshots/components/Timeline.test.ts-snapshots/Timeline-SX-Props-dark-linux.png create mode 100644 .playwright/snapshots/components/Timeline.test.ts-snapshots/Timeline-SX-Props-dark-tritanopia-linux.png create mode 100644 .playwright/snapshots/components/Timeline.test.ts-snapshots/Timeline-SX-Props-light-colorblind-linux.png create mode 100644 .playwright/snapshots/components/Timeline.test.ts-snapshots/Timeline-SX-Props-light-high-contrast-linux.png create mode 100644 .playwright/snapshots/components/Timeline.test.ts-snapshots/Timeline-SX-Props-light-linux.png create mode 100644 .playwright/snapshots/components/Timeline.test.ts-snapshots/Timeline-SX-Props-light-tritanopia-linux.png diff --git a/.playwright/snapshots/components/Timeline.test.ts-snapshots/Timeline-SX-Props-dark-colorblind-linux.png b/.playwright/snapshots/components/Timeline.test.ts-snapshots/Timeline-SX-Props-dark-colorblind-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..cd814fe66e7f3db353ebe59dd47eeddc96eb7a80 GIT binary patch literal 11525 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 XY-{pap9!F7f=(Rs`?mI*^Vk0eB2tOK literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/Timeline.test.ts-snapshots/Timeline-SX-Props-dark-dimmed-linux.png b/.playwright/snapshots/components/Timeline.test.ts-snapshots/Timeline-SX-Props-dark-dimmed-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..56aa9ef8b10cda0eedde6676b46573dd5b1d2527 GIT binary patch literal 11665 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 Wp6bq7aJ&LKdED*$;-eS-`hNgsT+xgG literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/Timeline.test.ts-snapshots/Timeline-SX-Props-dark-high-contrast-linux.png b/.playwright/snapshots/components/Timeline.test.ts-snapshots/Timeline-SX-Props-dark-high-contrast-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..03f1475c831654282a976d8770774d35b2b126d4 GIT binary patch literal 11458 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 literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/Timeline.test.ts-snapshots/Timeline-SX-Props-dark-linux.png b/.playwright/snapshots/components/Timeline.test.ts-snapshots/Timeline-SX-Props-dark-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..3de87f7854aa19128c790762b9d1ef389a0d940d GIT binary patch literal 11557 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 literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/Timeline.test.ts-snapshots/Timeline-SX-Props-light-high-contrast-linux.png b/.playwright/snapshots/components/Timeline.test.ts-snapshots/Timeline-SX-Props-light-high-contrast-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..4c2242f7484721e299c76c5cd0c474ac79da8ec7 GIT binary patch literal 10827 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 CLFmW; literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/Timeline.test.ts-snapshots/Timeline-SX-Props-light-tritanopia-linux.png b/.playwright/snapshots/components/Timeline.test.ts-snapshots/Timeline-SX-Props-light-tritanopia-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..64926bde6a69a0b086e18eff9fffb2768a8ca9fe GIT binary patch literal 10776 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 CLFmW; literal 0 HcmV?d00001 From 2fcfebd9b82587d8387cd25ebe7c065b45c3f97a Mon Sep 17 00:00:00 2001 From: Marie Lucca Date: Fri, 22 Nov 2024 14:00:55 -0500 Subject: [PATCH 3/6] chore(Timeline): add changeset and small format fixes --- .changeset/rotten-teachers-brush.md | 5 + .../react/src/Timeline/Timeline.module.css | 157 +++++++++--------- 2 files changed, 82 insertions(+), 80 deletions(-) create mode 100644 .changeset/rotten-teachers-brush.md diff --git a/.changeset/rotten-teachers-brush.md b/.changeset/rotten-teachers-brush.md new file mode 100644 index 00000000000..5b0aaa70fff --- /dev/null +++ b/.changeset/rotten-teachers-brush.md @@ -0,0 +1,5 @@ +--- +"@primer/react": minor +--- + +Update `Timeline` component to use CSS modules behind the feature flag primer_react_css_modules_team diff --git a/packages/react/src/Timeline/Timeline.module.css b/packages/react/src/Timeline/Timeline.module.css index 9d33cd9d506..0f49d8aaa53 100644 --- a/packages/react/src/Timeline/Timeline.module.css +++ b/packages/react/src/Timeline/Timeline.module.css @@ -1,104 +1,101 @@ .Timeline { - display: flex; - flex-direction: column; + display: flex; + flex-direction: column; - &:where([data-clip-sidebar]) { - .TimelineItem:first-child { - padding-top: 0; - } - - .TimelineItem:last-child { - padding-bottom: 0; - } + &:where([data-clip-sidebar]) { + .TimelineItem:first-child { + padding-top: 0; } + + .TimelineItem:last-child { + padding-bottom: 0; + } + } } .TimelineItem { - position: relative; - display: flex; - padding: var(--base-size-16) 0; - margin-left: var(--base-size-16); + position: relative; + display: flex; + padding: var(--base-size-16) 0; + margin-left: var(--base-size-16); - &::before { - position: absolute; - top: 0; - bottom: 0; - left: 0; - display: block; - width: 2px; - content: ''; - /* stylelint-disable-next-line primer/colors */ - background-color: var(--borderColor-muted); - } - - &:where([data-condensed]){ - padding-top: var(--base-size-4); - padding-bottom: 0; + &::before { + position: absolute; + top: 0; + bottom: 0; + left: 0; + display: block; + width: 2px; + content: ''; + /* stylelint-disable-next-line primer/colors */ + background-color: var(--borderColor-muted); + } - &:last-child { - padding-bottom: var(--base-size-16); - } + &:where([data-condensed]) { + padding-top: var(--base-size-4); + padding-bottom: 0; - .TimelineBadge { - height: 16px; - margin-top: var(--base-size-8); - margin-bottom: var(--base-size-8); - color: var(--fgColor-muted); - background-color: var(--bgColor-default); - border: 0; - } + &:last-child { + padding-bottom: var(--base-size-16); + } + .TimelineBadge { + height: 16px; + margin-top: var(--base-size-8); + margin-bottom: var(--base-size-8); + color: var(--fgColor-muted); + background-color: var(--bgColor-default); + border: 0; } + } } .TimelineBadgeWrapper { - position: relative; - z-index: 1; + position: relative; + z-index: 1; } .TimelineBadge { - display: flex; - width: 32px; - height: 32px; - margin-right: var(--base-size-8); - /* stylelint-disable-next-line primer/spacing */ - margin-left: -15px; - flex-shrink: 0; - overflow: hidden; - color: var(--fgColor-muted); - - /* TODOl not quite sure if this is the correct migration for this line */ - background-color: var(--timelineBadge-bgColor); - /* stylelint-disable-next-line primer/colors */ - border-color: var(--bgColor-default); - border-style: solid; - /* stylelint-disable-next-line primer/borders */ - border-width: 2px; - border-radius: 50%; - align-items: center; - justify-content: center; + display: flex; + width: 32px; + height: 32px; + margin-right: var(--base-size-8); + /* stylelint-disable-next-line primer/spacing */ + margin-left: -15px; + flex-shrink: 0; + overflow: hidden; + color: var(--fgColor-muted); + /* TODOl not quite sure if this is the correct migration for this line */ + background-color: var(--timelineBadge-bgColor); + /* stylelint-disable-next-line primer/colors */ + border-color: var(--bgColor-default); + border-style: solid; + /* stylelint-disable-next-line primer/borders */ + border-width: 2px; + border-radius: 50%; + align-items: center; + justify-content: center; } .TimelineBody { - min-width: 0; - max-width: 100%; - margin-top: var(--base-size-4); - font-size: var(--text-body-size-medium); - color: var(--fgColor-muted); - flex: auto; + min-width: 0; + max-width: 100%; + margin-top: var(--base-size-4); + font-size: var(--text-body-size-medium); + color: var(--fgColor-muted); + flex: auto; } .TimelineBreak { - position: relative; - z-index: 1; - height: 24px; - margin: 0; - margin-bottom: calc(-1 * var(--base-size-16)); - margin-left: 0; - background-color: var(--bgColor-default); - border: 0; - /* stylelint-disable-next-line primer/borders */ - border-top: var(--base-size-4) solid var(--borderColor-default); - -} \ No newline at end of file + position: relative; + z-index: 1; + height: 24px; + margin: 0; + margin-bottom: calc(-1 * var(--base-size-16)); + margin-left: 0; + background-color: var(--bgColor-default); + border: 0; + /* stylelint-disable-next-line primer/borders */ + border-top: var(--base-size-4) solid var(--borderColor-default); +} From e59f4b329e4307989115120baf4839e2806394a0 Mon Sep 17 00:00:00 2001 From: Marie Lucca <40550942+francinelucca@users.noreply.github.com> Date: Mon, 25 Nov 2024 12:59:55 -0500 Subject: [PATCH 4/6] Update packages/react/src/Timeline/Timeline.module.css Co-authored-by: Katie Langerman <18661030+langermank@users.noreply.github.com> --- packages/react/src/Timeline/Timeline.module.css | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/react/src/Timeline/Timeline.module.css b/packages/react/src/Timeline/Timeline.module.css index 0f49d8aaa53..6fd10d45c27 100644 --- a/packages/react/src/Timeline/Timeline.module.css +++ b/packages/react/src/Timeline/Timeline.module.css @@ -71,8 +71,7 @@ /* stylelint-disable-next-line primer/colors */ border-color: var(--bgColor-default); border-style: solid; - /* stylelint-disable-next-line primer/borders */ - border-width: 2px; + border-width: var(--borderWidth-thick); border-radius: 50%; align-items: center; justify-content: center; From f554d30334c6e1dae6e3c63a94b97894424302c1 Mon Sep 17 00:00:00 2001 From: Marie Lucca <40550942+francinelucca@users.noreply.github.com> Date: Mon, 25 Nov 2024 13:00:09 -0500 Subject: [PATCH 5/6] Update packages/react/src/Timeline/Timeline.module.css Co-authored-by: Katie Langerman <18661030+langermank@users.noreply.github.com> --- packages/react/src/Timeline/Timeline.module.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react/src/Timeline/Timeline.module.css b/packages/react/src/Timeline/Timeline.module.css index 6fd10d45c27..5e287ca736a 100644 --- a/packages/react/src/Timeline/Timeline.module.css +++ b/packages/react/src/Timeline/Timeline.module.css @@ -89,7 +89,7 @@ .TimelineBreak { position: relative; z-index: 1; - height: 24px; + height: var(--base-size-24); margin: 0; margin-bottom: calc(-1 * var(--base-size-16)); margin-left: 0; From b1899bc5faa4d9c22a2b5079208279473ec75378 Mon Sep 17 00:00:00 2001 From: Marie Lucca <40550942+francinelucca@users.noreply.github.com> Date: Mon, 25 Nov 2024 13:00:28 -0500 Subject: [PATCH 6/6] Update packages/react/src/Timeline/Timeline.module.css Co-authored-by: Katie Langerman <18661030+langermank@users.noreply.github.com> --- packages/react/src/Timeline/Timeline.module.css | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/react/src/Timeline/Timeline.module.css b/packages/react/src/Timeline/Timeline.module.css index 5e287ca736a..b3485290038 100644 --- a/packages/react/src/Timeline/Timeline.module.css +++ b/packages/react/src/Timeline/Timeline.module.css @@ -95,6 +95,5 @@ margin-left: 0; background-color: var(--bgColor-default); border: 0; - /* stylelint-disable-next-line primer/borders */ - border-top: var(--base-size-4) solid var(--borderColor-default); + border-top: var(--borderWidth-thicker) solid var(--borderColor-default); }