diff --git a/.changeset/brown-seahorses-melt.md b/.changeset/brown-seahorses-melt.md deleted file mode 100644 index d4740eaf3a3..00000000000 --- a/.changeset/brown-seahorses-melt.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@primer/react': minor ---- - -Add support for controlling which side `ActionMenu` renders on (via a `side` prop on `ActionMenu.Overlay`) - - diff --git a/.changeset/cuddly-rice-press.md b/.changeset/cuddly-rice-press.md deleted file mode 100644 index b35405b4578..00000000000 --- a/.changeset/cuddly-rice-press.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@primer/react': patch ---- - -Update the `children` prop for `Button` to be optional - - diff --git a/.changeset/friendly-shirts-protect.md b/.changeset/friendly-shirts-protect.md deleted file mode 100644 index 7d22c8fb108..00000000000 --- a/.changeset/friendly-shirts-protect.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@primer/react': patch ---- - -Restore default main landmark in PageLayout.Content - - diff --git a/.changeset/happy-rivers-attend.md b/.changeset/happy-rivers-attend.md new file mode 100644 index 00000000000..82def6ab5a5 --- /dev/null +++ b/.changeset/happy-rivers-attend.md @@ -0,0 +1,7 @@ +--- +"@primer/react": minor +--- + +Updates link styles to support underline link preferences. + + diff --git a/.changeset/nasty-jobs-itch.md b/.changeset/nasty-jobs-itch.md deleted file mode 100644 index 8698f41de0b..00000000000 --- a/.changeset/nasty-jobs-itch.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@primer/react': minor ---- - -Add support for leadingVisual and trailingVisual props to Button - - diff --git a/.changeset/polite-hairs-switch.md b/.changeset/polite-hairs-switch.md deleted file mode 100644 index a40ad3148c1..00000000000 --- a/.changeset/polite-hairs-switch.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@primer/react': minor ---- - -Add the Column type and createColumnHelper function to easily define columns for DataTable - - diff --git a/.changeset/tough-pillows-glow.md b/.changeset/tough-pillows-glow.md deleted file mode 100644 index 426824feb4a..00000000000 --- a/.changeset/tough-pillows-glow.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@primer/react': minor ---- - -The UnderlineNav, FilterList, and FilteredSearch components will be deprecated in v36 and have been moved to the deprecated entrypoint. To use the new UnderlineNav, migrate to the component available in drafts. - - diff --git a/.changeset/two-seals-prove.md b/.changeset/two-seals-prove.md deleted file mode 100644 index 5ca8c009f35..00000000000 --- a/.changeset/two-seals-prove.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@primer/react': patch ---- - -use isomorphic layout effects only - - diff --git a/.changeset/wild-snakes-talk.md b/.changeset/wild-snakes-talk.md deleted file mode 100644 index ab0f4650dba..00000000000 --- a/.changeset/wild-snakes-talk.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@primer/react": minor ---- - -Add default `type="button"` to `IconButton` component - - diff --git a/.changeset/wise-boxes-peel.md b/.changeset/wise-boxes-peel.md new file mode 100644 index 00000000000..406b91a61d1 --- /dev/null +++ b/.changeset/wise-boxes-peel.md @@ -0,0 +1,7 @@ +--- +"@primer/react": patch +--- + +Revert "Add aria-selected value to ActionList.Item." + + diff --git a/.github/actions/pagerduty/action.yml b/.github/actions/pagerduty/action.yml new file mode 100644 index 00000000000..6c576dcff63 --- /dev/null +++ b/.github/actions/pagerduty/action.yml @@ -0,0 +1,93 @@ +name: 'PagerDuty Schedule' +description: 'Get information about the given PagerDuty Schedule' +inputs: + schedule-id: + description: 'The id of the schedule' + required: true + token: + description: 'The API token used for making requests to PagerDuty' + required: true +outputs: + user: + description: 'The user who is on call for the final schedule' + value: ${{ steps.pagerduty.outputs.user }} + start: + description: 'The start date for the final schedule' + value: ${{ steps.pagerduty.outputs.start }} + end: + description: 'The end date for the final schedule' + value: ${{ steps.pagerduty.outputs.end }} + id: + description: 'The id for the final schedule' + value: ${{ steps.pagerduty.outputs.id }} + previous-schedule-start: + description: 'The start date for the previous final schedule' + value: ${{ steps.pagerduty.outputs.previous-schedule-start }} + previous-schedule-end: + description: 'The end date for the previous final schedule' + value: ${{ steps.pagerduty.outputs.previous-schedule-end }} + previous-schedule-id: + description: 'The id for the previous final schedule' + value: ${{ steps.pagerduty.outputs.previous-schedule-id }} + previous-schedule-user: + description: 'The individual on call for the previous final schedule' + value: ${{ steps.pagerduty.outputs.previous-schedule-user }} +runs: + using: 'composite' + steps: + - name: Set up Node.js + uses: actions/setup-node@v3 + with: + node-version: 18 + - name: Get PagerDuty Schedule + id: pagerduty + uses: actions/github-script@v6 + with: + script: | + const { PAGERDUTY_API_KEY } = process.env; + + const today = new Date() + + // Get current schedule + const schedule = await getSchedule(today); + + core.setOutput('user', schedule.user.summary); + core.setOutput('start', schedule.start); + core.setOutput('end', schedule.end); + core.setOutput('id', schedule.id); + + const previousScheduleEnd = new Date(schedule.start); + previousScheduleEnd.setDate(previousScheduleEnd.getDate() - 1); + + // Get previous schedule + const previousSchedule = await getSchedule(previousScheduleEnd); + + core.setOutput('previous-schedule-start', previousSchedule.start); + core.setOutput('previous-schedule-end', previousSchedule.end); + core.setOutput('previous-schedule-id', previousSchedule.id); + core.setOutput('previous-schedule-user', previousSchedule.user.summary); + + // Get a schedule + // @see https://developer.pagerduty.com/api-reference/3f03afb2c84a4-get-a-schedule + async function getSchedule(date) { + const url = new URL('https://api.pagerduty.com/schedules/${{ inputs.schedule-id }}') + + url.searchParams.append('since', date.toISOString()) + url.searchParams.append('until', date.toISOString()) + + const response = await fetch(url, { + headers: { + Accept: 'application/json', + 'Content-Type': 'application/json', + Authorization: 'Token token=${{ inputs.token }}', + }, + }) + + const data = await response.json() + if (!data.schedule) { + throw new Error('Unable to get schedule for id: ${{ inputs.schedule-id }}') + } + + const [schedule] = data.schedule.final_schedule.rendered_schedule_entries + return schedule; + } diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index ff0011ba9c1..448458c0534 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,15 +1,42 @@ -Describe your changes here. + -Closes # (type the issue number after # if applicable; otherwise remove this line) +Closes # -### Screenshots + -Please provide before/after screenshots for any visual changes +### Changelog + + + +#### New + + + +#### Changed + + + +#### Removed + + + +### Rollout strategy + + + +- [ ] Patch release +- [ ] Minor release +- [ ] Major release; if selected, include a written rollout or migration plan + +### Testing & Reviewing + + ### Merge checklist - [ ] Added/updated tests - [ ] Added/updated documentation +- [ ] Added/updated previews (Storybook) - [ ] Changes are [SSR compatible](https://github.com/primer/react/blob/main/contributor-docs/CONTRIBUTING.md#ssr-compatibility) - [ ] Tested in Chrome - [ ] Tested in Firefox diff --git a/.github/workflows/release-schedule.yml b/.github/workflows/release-schedule.yml index c2849c8426e..bfdfc41816a 100644 --- a/.github/workflows/release-schedule.yml +++ b/.github/workflows/release-schedule.yml @@ -1,60 +1,32 @@ name: Release Schedule on: workflow_dispatch: + inputs: + dry: + type: boolean + description: 'Run in dry mode. This option will disable creating and closing issues' schedule: - - cron: '0 0 * * TUE' + - cron: '30 13 * * MON' concurrency: - group: ${{ github.workflow }}-${{ github.event.workflow_run.head_branch }} + group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true permissions: {} jobs: - release-conductor: - if: ${{ github.repository == 'primer/react' }} - runs-on: ubuntu-latest - outputs: - conductor: ${{ steps.pagerduty.outputs.result }} - steps: - - name: Set up Node.js - uses: actions/setup-node@v3 - with: - node-version: 18 - - name: Fetch user from pagerduty schedule - id: pagerduty - uses: actions/github-script@v6 - env: - PAGERDUTY_API_KEY: ${{ secrets.PAGERDUTY_API_KEY_SID }} - with: - result-encoding: string - script: | - const { PAGERDUTY_API_KEY } = process.env; - - const today = new Date().toISOString().slice(0, 10); // format: 2022-11-24 - const url = new URL('https://api.pagerduty.com/schedules/P3IIVC4'); - url.searchParams.append('since', today); - url.searchParams.append('until', today); - - const response = await fetch(url, { - headers: { - 'Content-Type': 'application/json', - 'Authorization': `Token token=${PAGERDUTY_API_KEY}` - } - }); - const data = await response.json(); - const conductor = data.schedule.final_schedule.rendered_schedule_entries[0].user.summary; - - core.info(`${conductor} is release conductor`); - - return conductor; - - create-tracking-issue: - needs: release-conductor + create-release-issue: runs-on: ubuntu-latest permissions: issues: write steps: + - name: Checkout repository + uses: actions/checkout@v4 + - uses: ./.github/actions/pagerduty + id: pagerduty + with: + schedule-id: 'P3IIVC4' + token: ${{ secrets.PAGERDUTY_API_KEY_SID }} - name: Set up Node.js uses: actions/setup-node@v3 with: @@ -64,51 +36,76 @@ jobs: - name: Create Release Issue uses: actions/github-script@v6 env: - RELEASE_CONDUCTOR: ${{ needs.release-conductor.outputs.conductor }} + RELEASE_CONDUCTOR: ${{ steps.pagerduty.outputs.user }} + SCHEDULE_START: ${{ steps.pagerduty.outputs.start }} + SCHEDULE_END: ${{ steps.pagerduty.outputs.end }} + SCHEDULE_ID: ${{ steps.pagerduty.outputs.id }} + PREVIOUS_SCHEDULE_START: ${{ steps.pagerduty.outputs.previous-schedule-start }} + PREVIOUS_SCHEDULE_END: ${{ steps.pagerduty.outputs.previous-schedule-end }} + PREVIOUS_SCHEDULE_ID: ${{ steps.pagerduty.outputs.previous-schedule-id }} + DRY: ${{ github.event.inputs.dry }} with: script: | - const eachDayOfInterval = require('date-fns/eachDayOfInterval'); - const startOfWeek = require('date-fns/startOfWeek'); - const nextFriday = require('date-fns/nextFriday'); - const format = require('date-fns/format'); - const previousMonday = require('date-fns/previousMonday'); - - const { RELEASE_CONDUCTOR } = process.env; - + const { + eachDayOfInterval, + format, + isSaturday, + isSunday, + parseISO, + } = require('date-fns'); + + const { + RELEASE_CONDUCTOR, + SCHEDULE_START, + SCHEDULE_END, + SCHEDULE_ID, + PREVIOUS_SCHEDULE_START, + PREVIOUS_SCHEDULE_END, + PREVIOUS_SCHEDULE_ID, + DRY, + } = process.env; + + core.info(`Running for schedule ${SCHEDULE_ID} from ${SCHEDULE_START} till ${SCHEDULE_END}`); core.info(`Release conductor: ${RELEASE_CONDUCTOR}`); - // Current schedule + const dry = DRY === 'true'; const today = new Date(); - const start = startOfWeek(today, { weekStartsOn: 1 }); - const end = nextFriday(start); - - // Previous schedule - const previousStart = previousMonday(start); - const previousEnd = nextFriday(previousStart); + const start = parseISO(SCHEDULE_START); + const end = parseISO(SCHEDULE_END); // Issue IDs - const id = `primer-release-schedule:${format(start, 'yyyy-MM-dd')}`; - const previousId = `primer-release-schedule:${format(previousStart, 'yyyy-MM-dd')}`; + const id = `primer-release-schedule:${SCHEDULE_ID}`; + const previousId = `primer-release-schedule:${PREVIOUS_SCHEDULE_ID}`; + // Debug previous schedule core.startGroup(`Previous schedule: ${previousId}`); - core.info(`Start: ${previousStart}`); - core.info(`End: ${previousEnd}`) + core.info(`Start: ${parseISO(PREVIOUS_SCHEDULE_START)}`); + core.info(`End: ${parseISO(PREVIOUS_SCHEDULE_END)}`) core.endGroup(); + // Debug current schedule core.startGroup(`Current schedule: ${id}`); core.info(`Start: ${start}`); core.info(`End: ${end}`) core.endGroup(); + // Issue markup const ISSUE_TITLE = 'Release Tracking'; const timeline = [ '## Timeline', '', '', '', - ...eachDayOfInterval({ start, end }).map((day) => { - return `- ${format(day, 'EEEE, LLLL do')}`; - }), + ...eachDayOfInterval({ start, end }) + // Only include business days in the timeline + .filter((day) => { + if (isSunday(day) || isSaturday(day)) { + return false; + } + return true; + }).map((day) => { + return `- ${format(day, 'EEEE, LLLL do')}`; + }), '', ].join('\n'); const checklist = [ @@ -129,8 +126,9 @@ jobs: let ISSUE_BODY = `\n\n`; - ISSUE_BODY += `_This is a scheduled issue for tracking the release between ${format(start, 'EEEE do')} and ${format(end, 'EEEE do')}_\n\n`; + ISSUE_BODY += `_This is a scheduled issue for tracking the release between ${format(start, 'EEEE, LLLL do')} and ${format(end, 'EEEE, LLLL do')}_\n\n`; + // Find the latest existing release issue const iterator = github.paginate.iterator( github.rest.issues.listForRepo, { @@ -167,13 +165,20 @@ jobs: ISSUE_BODY += '\n'; ISSUE_BODY += notes; - await github.rest.issues.create({ + const issue = { owner: context.repo.owner, repo: context.repo.repo, title: ISSUE_TITLE, body: ISSUE_BODY, assignees: [RELEASE_CONDUCTOR], - }); + }; + + if (dry) { + core.info('Creating issue:'); + core.info(JSON.stringify(issue, null, 2)); + } else { + await github.rest.issues.create(issue); + } return; } @@ -181,11 +186,9 @@ jobs: // We already have an issue open for the current release if (releaseIssue.body.includes(id)) { - return; - } - - // This is the previous release issue - if (releaseIssue.body.includes(previousId)) { + core.info(`A release issue already exists with id: ${id}`); + } else if (releaseIssue.body.includes(previousId)) { + // This is the previous release issue const assignees = releaseIssue.assignees.map((assignee) => { return assignee.login; }).join(' '); @@ -203,21 +206,35 @@ jobs: ISSUE_BODY += '\n'; ISSUE_BODY += notes; - // Create the current release issue - await github.rest.issues.create({ + const issue = { owner: context.repo.owner, repo: context.repo.repo, title: ISSUE_TITLE, body: ISSUE_BODY, assignees: [RELEASE_CONDUCTOR], - }); + }; + + // Create the current release issue + if (dry) { + core.info('Creating issue:'); + core.info(JSON.stringify(issue, null, 2)); + } else { + await github.rest.issues.create(issue); + } // Close the previous release issue - await github.rest.issues.update({ - owner: context.repo.owner, - repo: context.repo.repo, - issue_number: releaseIssue.number, - state: 'closed', - state_reason: 'completed', - }); + if (dry) { + core.info(`Closing issue: ${releaseIssue.number}`); + } else { + await github.rest.issues.update({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: releaseIssue.number, + state: 'closed', + state_reason: 'completed', + }); + } + } else { + // This is a release issue that we cannot identify + core.info(`Unable to match a current or previous release id for issue #${releaseIssue.number}`); } diff --git a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Block-Description-dark-colorblind-linux.png b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Block-Description-dark-colorblind-linux.png index 9d6d9968311..06833d34f13 100644 Binary files a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Block-Description-dark-colorblind-linux.png and b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Block-Description-dark-colorblind-linux.png differ diff --git a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Block-Description-dark-dimmed-linux.png b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Block-Description-dark-dimmed-linux.png index 22ecca83fd8..ab28e03c053 100644 Binary files a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Block-Description-dark-dimmed-linux.png and b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Block-Description-dark-dimmed-linux.png differ diff --git a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Block-Description-dark-high-contrast-linux.png b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Block-Description-dark-high-contrast-linux.png index 01e9d233986..e8bc017a158 100644 Binary files a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Block-Description-dark-high-contrast-linux.png and b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Block-Description-dark-high-contrast-linux.png differ diff --git a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Block-Description-dark-linux.png b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Block-Description-dark-linux.png index e819ecb2ad2..799ca0c3658 100644 Binary files a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Block-Description-dark-linux.png and b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Block-Description-dark-linux.png differ diff --git a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Block-Description-dark-tritanopia-linux.png b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Block-Description-dark-tritanopia-linux.png index 9d6d9968311..06833d34f13 100644 Binary files a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Block-Description-dark-tritanopia-linux.png and b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Block-Description-dark-tritanopia-linux.png differ diff --git a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Block-Description-light-colorblind-linux.png b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Block-Description-light-colorblind-linux.png index 9cb82fbba83..0a977ee1050 100644 Binary files a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Block-Description-light-colorblind-linux.png and b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Block-Description-light-colorblind-linux.png differ diff --git a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Block-Description-light-high-contrast-linux.png b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Block-Description-light-high-contrast-linux.png index e4ce0ac95a3..407e1ab70cf 100644 Binary files a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Block-Description-light-high-contrast-linux.png and b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Block-Description-light-high-contrast-linux.png differ diff --git a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Block-Description-light-linux.png b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Block-Description-light-linux.png index 19cf04095bd..70451e68f2e 100644 Binary files a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Block-Description-light-linux.png and b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Block-Description-light-linux.png differ diff --git a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Block-Description-light-tritanopia-linux.png b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Block-Description-light-tritanopia-linux.png index 9cb82fbba83..0a977ee1050 100644 Binary files a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Block-Description-light-tritanopia-linux.png and b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Block-Description-light-tritanopia-linux.png differ diff --git a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Inline-Description-dark-colorblind-linux.png b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Inline-Description-dark-colorblind-linux.png index f589e12f394..e0cb829ee47 100644 Binary files a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Inline-Description-dark-colorblind-linux.png and b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Inline-Description-dark-colorblind-linux.png differ diff --git a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Inline-Description-dark-dimmed-linux.png b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Inline-Description-dark-dimmed-linux.png index 39e97cf32b7..ab8676464eb 100644 Binary files a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Inline-Description-dark-dimmed-linux.png and b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Inline-Description-dark-dimmed-linux.png differ diff --git a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Inline-Description-dark-high-contrast-linux.png b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Inline-Description-dark-high-contrast-linux.png index 5188c5988a0..f71598b43f6 100644 Binary files a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Inline-Description-dark-high-contrast-linux.png and b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Inline-Description-dark-high-contrast-linux.png differ diff --git a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Inline-Description-dark-linux.png b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Inline-Description-dark-linux.png index f8563e4df2b..56c0f22b260 100644 Binary files a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Inline-Description-dark-linux.png and b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Inline-Description-dark-linux.png differ diff --git a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Inline-Description-dark-tritanopia-linux.png b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Inline-Description-dark-tritanopia-linux.png index f589e12f394..e0cb829ee47 100644 Binary files a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Inline-Description-dark-tritanopia-linux.png and b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Inline-Description-dark-tritanopia-linux.png differ diff --git a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Inline-Description-light-colorblind-linux.png b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Inline-Description-light-colorblind-linux.png index fba640ea9a3..e405bf18c67 100644 Binary files a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Inline-Description-light-colorblind-linux.png and b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Inline-Description-light-colorblind-linux.png differ diff --git a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Inline-Description-light-high-contrast-linux.png b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Inline-Description-light-high-contrast-linux.png index 609e1d358e2..ec4576b172f 100644 Binary files a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Inline-Description-light-high-contrast-linux.png and b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Inline-Description-light-high-contrast-linux.png differ diff --git a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Inline-Description-light-linux.png b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Inline-Description-light-linux.png index 3814266d0d9..5a85c2be797 100644 Binary files a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Inline-Description-light-linux.png and b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Inline-Description-light-linux.png differ diff --git a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Inline-Description-light-tritanopia-linux.png b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Inline-Description-light-tritanopia-linux.png index 79316fa997a..e405bf18c67 100644 Binary files a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Inline-Description-light-tritanopia-linux.png and b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-Inline-Description-light-tritanopia-linux.png differ diff --git a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-With-Avatars-dark-colorblind-linux.png b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-With-Avatars-dark-colorblind-linux.png index eb6225b2724..685cd91ed88 100644 Binary files a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-With-Avatars-dark-colorblind-linux.png and b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-With-Avatars-dark-colorblind-linux.png differ diff --git a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-With-Avatars-dark-dimmed-linux.png b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-With-Avatars-dark-dimmed-linux.png index 982bc1f55e1..9e24acd9b30 100644 Binary files a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-With-Avatars-dark-dimmed-linux.png and b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-With-Avatars-dark-dimmed-linux.png differ diff --git a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-With-Avatars-dark-high-contrast-linux.png b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-With-Avatars-dark-high-contrast-linux.png index 767f2cb1d74..d6d86ff5732 100644 Binary files a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-With-Avatars-dark-high-contrast-linux.png and b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-With-Avatars-dark-high-contrast-linux.png differ diff --git a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-With-Avatars-dark-linux.png b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-With-Avatars-dark-linux.png index eb6225b2724..2a71d85ec8b 100644 Binary files a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-With-Avatars-dark-linux.png and b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-With-Avatars-dark-linux.png differ diff --git a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-With-Avatars-dark-tritanopia-linux.png b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-With-Avatars-dark-tritanopia-linux.png index eb6225b2724..685cd91ed88 100644 Binary files a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-With-Avatars-dark-tritanopia-linux.png and b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-With-Avatars-dark-tritanopia-linux.png differ diff --git a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-With-Avatars-light-colorblind-linux.png b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-With-Avatars-light-colorblind-linux.png index e3813ce8ba1..db9d702ee2f 100644 Binary files a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-With-Avatars-light-colorblind-linux.png and b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-With-Avatars-light-colorblind-linux.png differ diff --git a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-With-Avatars-light-high-contrast-linux.png b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-With-Avatars-light-high-contrast-linux.png index 94efd56b1ed..61728ad8e2d 100644 Binary files a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-With-Avatars-light-high-contrast-linux.png and b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-With-Avatars-light-high-contrast-linux.png differ diff --git a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-With-Avatars-light-linux.png b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-With-Avatars-light-linux.png index f66d14fd5c6..bc780bd02b2 100644 Binary files a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-With-Avatars-light-linux.png and b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-With-Avatars-light-linux.png differ diff --git a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-With-Avatars-light-tritanopia-linux.png b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-With-Avatars-light-tritanopia-linux.png index 0660ab3103f..db9d702ee2f 100644 Binary files a/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-With-Avatars-light-tritanopia-linux.png and b/.playwright/snapshots/components/ActionList.test.ts-snapshots/ActionList-With-Avatars-light-tritanopia-linux.png differ diff --git a/.playwright/snapshots/components/BranchName.test.ts-snapshots/BranchName-Default-light-forcedUnderlines-linux.png b/.playwright/snapshots/components/BranchName.test.ts-snapshots/BranchName-Default-light-forcedUnderlines-linux.png new file mode 100644 index 00000000000..161e327bb67 Binary files /dev/null and b/.playwright/snapshots/components/BranchName.test.ts-snapshots/BranchName-Default-light-forcedUnderlines-linux.png differ diff --git a/.playwright/snapshots/components/Breadcrumbs.test.ts-snapshots/Breadcrumbs-Default-light-forcedUnderlines-linux.png b/.playwright/snapshots/components/Breadcrumbs.test.ts-snapshots/Breadcrumbs-Default-light-forcedUnderlines-linux.png new file mode 100644 index 00000000000..10b79842e9c Binary files /dev/null and b/.playwright/snapshots/components/Breadcrumbs.test.ts-snapshots/Breadcrumbs-Default-light-forcedUnderlines-linux.png differ diff --git a/.playwright/snapshots/components/Link.test.ts-snapshots/Link-Default-light-forcedUnderlines-linux.png b/.playwright/snapshots/components/Link.test.ts-snapshots/Link-Default-light-forcedUnderlines-linux.png new file mode 100644 index 00000000000..0ae25820262 Binary files /dev/null and b/.playwright/snapshots/components/Link.test.ts-snapshots/Link-Default-light-forcedUnderlines-linux.png differ diff --git a/.playwright/snapshots/components/Link.test.ts-snapshots/Link-Muted-light-forcedUnderlines-linux.png b/.playwright/snapshots/components/Link.test.ts-snapshots/Link-Muted-light-forcedUnderlines-linux.png new file mode 100644 index 00000000000..ea2038fd8fb Binary files /dev/null and b/.playwright/snapshots/components/Link.test.ts-snapshots/Link-Muted-light-forcedUnderlines-linux.png differ diff --git a/.playwright/snapshots/components/Link.test.ts-snapshots/Link-Underline-light-forcedUnderlines-linux.png b/.playwright/snapshots/components/Link.test.ts-snapshots/Link-Underline-light-forcedUnderlines-linux.png new file mode 100644 index 00000000000..0ae25820262 Binary files /dev/null and b/.playwright/snapshots/components/Link.test.ts-snapshots/Link-Underline-light-forcedUnderlines-linux.png differ diff --git a/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Invisible-light-forcedUnderlines-linux.png b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Invisible-light-forcedUnderlines-linux.png new file mode 100644 index 00000000000..9984199a841 Binary files /dev/null and b/.playwright/snapshots/components/LinkButton.test.ts-snapshots/LinkButton-Invisible-light-forcedUnderlines-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Anchor-Has-Margin-dark-colorblind-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Anchor-Has-Margin-dark-colorblind-linux.png new file mode 100644 index 00000000000..d83f0d9f39b Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Anchor-Has-Margin-dark-colorblind-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Anchor-Has-Margin-dark-dimmed-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Anchor-Has-Margin-dark-dimmed-linux.png new file mode 100644 index 00000000000..a8bb5c4f192 Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Anchor-Has-Margin-dark-dimmed-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Anchor-Has-Margin-dark-high-contrast-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Anchor-Has-Margin-dark-high-contrast-linux.png new file mode 100644 index 00000000000..1850dc25179 Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Anchor-Has-Margin-dark-high-contrast-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Anchor-Has-Margin-dark-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Anchor-Has-Margin-dark-linux.png new file mode 100644 index 00000000000..3132b718e14 Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Anchor-Has-Margin-dark-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Anchor-Has-Margin-dark-tritanopia-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Anchor-Has-Margin-dark-tritanopia-linux.png new file mode 100644 index 00000000000..d83f0d9f39b Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Anchor-Has-Margin-dark-tritanopia-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Anchor-Has-Margin-light-colorblind-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Anchor-Has-Margin-light-colorblind-linux.png new file mode 100644 index 00000000000..4fee4f98353 Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Anchor-Has-Margin-light-colorblind-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Anchor-Has-Margin-light-high-contrast-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Anchor-Has-Margin-light-high-contrast-linux.png new file mode 100644 index 00000000000..8657dfda75e Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Anchor-Has-Margin-light-high-contrast-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Anchor-Has-Margin-light-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Anchor-Has-Margin-light-linux.png new file mode 100644 index 00000000000..9fd679b76ba Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Anchor-Has-Margin-light-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Anchor-Has-Margin-light-tritanopia-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Anchor-Has-Margin-light-tritanopia-linux.png new file mode 100644 index 00000000000..4fee4f98353 Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Anchor-Has-Margin-light-tritanopia-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Calculated-Direction-dark-colorblind-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Calculated-Direction-dark-colorblind-linux.png new file mode 100644 index 00000000000..bb856ed22cd Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Calculated-Direction-dark-colorblind-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Calculated-Direction-dark-dimmed-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Calculated-Direction-dark-dimmed-linux.png new file mode 100644 index 00000000000..dc2ed1cad1b Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Calculated-Direction-dark-dimmed-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Calculated-Direction-dark-high-contrast-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Calculated-Direction-dark-high-contrast-linux.png new file mode 100644 index 00000000000..1fdbd7a042a Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Calculated-Direction-dark-high-contrast-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Calculated-Direction-dark-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Calculated-Direction-dark-linux.png new file mode 100644 index 00000000000..009d2d73107 Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Calculated-Direction-dark-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Calculated-Direction-dark-tritanopia-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Calculated-Direction-dark-tritanopia-linux.png new file mode 100644 index 00000000000..bb856ed22cd Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Calculated-Direction-dark-tritanopia-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Calculated-Direction-light-colorblind-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Calculated-Direction-light-colorblind-linux.png new file mode 100644 index 00000000000..8aa918e728c Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Calculated-Direction-light-colorblind-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Calculated-Direction-light-high-contrast-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Calculated-Direction-light-high-contrast-linux.png new file mode 100644 index 00000000000..97eaa316a60 Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Calculated-Direction-light-high-contrast-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Calculated-Direction-light-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Calculated-Direction-light-linux.png new file mode 100644 index 00000000000..096e6ffd2fa Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Calculated-Direction-light-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Calculated-Direction-light-tritanopia-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Calculated-Direction-light-tritanopia-linux.png new file mode 100644 index 00000000000..8aa918e728c Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Calculated-Direction-light-tritanopia-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Default-dark-colorblind-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Default-dark-colorblind-linux.png new file mode 100644 index 00000000000..cad231f0dd5 Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Default-dark-colorblind-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Default-dark-dimmed-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Default-dark-dimmed-linux.png new file mode 100644 index 00000000000..a3a8b0d29d1 Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Default-dark-dimmed-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Default-dark-high-contrast-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Default-dark-high-contrast-linux.png new file mode 100644 index 00000000000..7e761a8871b Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Default-dark-high-contrast-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Default-dark-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Default-dark-linux.png new file mode 100644 index 00000000000..40b13c2ee78 Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Default-dark-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Default-dark-tritanopia-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Default-dark-tritanopia-linux.png new file mode 100644 index 00000000000..cad231f0dd5 Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Default-dark-tritanopia-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Default-light-colorblind-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Default-light-colorblind-linux.png new file mode 100644 index 00000000000..84bb7b94f7f Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Default-light-colorblind-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Default-light-high-contrast-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Default-light-high-contrast-linux.png new file mode 100644 index 00000000000..2f71c246501 Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Default-light-high-contrast-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Default-light-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Default-light-linux.png new file mode 100644 index 00000000000..ca70b0e3002 Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Default-light-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Default-light-tritanopia-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Default-light-tritanopia-linux.png new file mode 100644 index 00000000000..84bb7b94f7f Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Default-light-tritanopia-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Icon-Button-With-Description-dark-colorblind-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Icon-Button-With-Description-dark-colorblind-linux.png new file mode 100644 index 00000000000..330e3a01d4f Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Icon-Button-With-Description-dark-colorblind-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Icon-Button-With-Description-dark-dimmed-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Icon-Button-With-Description-dark-dimmed-linux.png new file mode 100644 index 00000000000..79fb5224d59 Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Icon-Button-With-Description-dark-dimmed-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Icon-Button-With-Description-dark-high-contrast-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Icon-Button-With-Description-dark-high-contrast-linux.png new file mode 100644 index 00000000000..1d80122a97a Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Icon-Button-With-Description-dark-high-contrast-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Icon-Button-With-Description-dark-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Icon-Button-With-Description-dark-linux.png new file mode 100644 index 00000000000..9ef1a7f8b4f Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Icon-Button-With-Description-dark-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Icon-Button-With-Description-dark-tritanopia-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Icon-Button-With-Description-dark-tritanopia-linux.png new file mode 100644 index 00000000000..330e3a01d4f Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Icon-Button-With-Description-dark-tritanopia-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Icon-Button-With-Description-light-colorblind-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Icon-Button-With-Description-light-colorblind-linux.png new file mode 100644 index 00000000000..7a5c9768591 Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Icon-Button-With-Description-light-colorblind-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Icon-Button-With-Description-light-high-contrast-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Icon-Button-With-Description-light-high-contrast-linux.png new file mode 100644 index 00000000000..094f8d312bf Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Icon-Button-With-Description-light-high-contrast-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Icon-Button-With-Description-light-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Icon-Button-With-Description-light-linux.png new file mode 100644 index 00000000000..21619e3c79c Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Icon-Button-With-Description-light-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Icon-Button-With-Description-light-tritanopia-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Icon-Button-With-Description-light-tritanopia-linux.png new file mode 100644 index 00000000000..7a5c9768591 Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Icon-Button-With-Description-light-tritanopia-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Label-Type-dark-colorblind-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Label-Type-dark-colorblind-linux.png new file mode 100644 index 00000000000..5b80a53345e Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Label-Type-dark-colorblind-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Label-Type-dark-dimmed-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Label-Type-dark-dimmed-linux.png new file mode 100644 index 00000000000..fcc1766d12f Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Label-Type-dark-dimmed-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Label-Type-dark-high-contrast-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Label-Type-dark-high-contrast-linux.png new file mode 100644 index 00000000000..3a218b7f43d Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Label-Type-dark-high-contrast-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Label-Type-dark-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Label-Type-dark-linux.png new file mode 100644 index 00000000000..87a08fc9903 Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Label-Type-dark-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Label-Type-dark-tritanopia-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Label-Type-dark-tritanopia-linux.png new file mode 100644 index 00000000000..5b80a53345e Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Label-Type-dark-tritanopia-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Label-Type-light-colorblind-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Label-Type-light-colorblind-linux.png new file mode 100644 index 00000000000..91e1e1c5962 Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Label-Type-light-colorblind-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Label-Type-light-high-contrast-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Label-Type-light-high-contrast-linux.png new file mode 100644 index 00000000000..962ca3360d2 Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Label-Type-light-high-contrast-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Label-Type-light-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Label-Type-light-linux.png new file mode 100644 index 00000000000..b22d8589d44 Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Label-Type-light-linux.png differ diff --git a/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Label-Type-light-tritanopia-linux.png b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Label-Type-light-tritanopia-linux.png new file mode 100644 index 00000000000..91e1e1c5962 Binary files /dev/null and b/.playwright/snapshots/components/Tooltip--experimental.test.ts-snapshots/Tooltip--experimental-Label-Type-light-tritanopia-linux.png differ diff --git a/CHANGELOG.md b/CHANGELOG.md index 22edf79cfb5..1d6c6628367 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,59 @@ # @primer/components +## 35.31.0 + +### Minor Changes + +- [#3394](https://github.com/primer/react/pull/3394) [`9cd50f70`](https://github.com/primer/react/commit/9cd50f700eb9ebcee5d49181437fd497ec19c055) Thanks [@broccolinisoup](https://github.com/broccolinisoup)! - Tooltip: Release Tooltip v2 as a draft/experimental + + + +- [#3749](https://github.com/primer/react/pull/3749) [`b4fe331e`](https://github.com/primer/react/commit/b4fe331e3264a34ee4f1aec56e87f4e2b034f45c) Thanks [@thyeggman](https://github.com/thyeggman)! - Add suport for sparse sorting to DataTable + + + +- [#3581](https://github.com/primer/react/pull/3581) [`cc12464d`](https://github.com/primer/react/commit/cc12464df2492d5e38ce0aafa3ce523e62a8e567) Thanks [@broccolinisoup](https://github.com/broccolinisoup)! - ActionList: Add ActionList.Heading component + + + +## 35.30.0 + +### Minor Changes + +- [#3714](https://github.com/primer/react/pull/3714) [`88340269`](https://github.com/primer/react/commit/883402697efa8c9ff5c434753d4af36737b65e4b) Thanks [@iansan5653](https://github.com/iansan5653)! - Add support for controlling which side `ActionMenu` renders on (via a `side` prop on `ActionMenu.Overlay`) + + + +- [#3715](https://github.com/primer/react/pull/3715) [`1f889281`](https://github.com/primer/react/commit/1f88928117acf86a3acd75c405b0064f080a66e3) Thanks [@joshblack](https://github.com/joshblack)! - Add support for leadingVisual and trailingVisual props to Button + + + +- [#3739](https://github.com/primer/react/pull/3739) [`b90e5476`](https://github.com/primer/react/commit/b90e547639a7a906ef21cbf1a1c702c3d92210bc) Thanks [@joshblack](https://github.com/joshblack)! - Add the Column type and createColumnHelper function to easily define columns for DataTable + + + +- [#3719](https://github.com/primer/react/pull/3719) [`500e529d`](https://github.com/primer/react/commit/500e529df47ae5def4bf5cedc55fc099251c25a1) Thanks [@joshblack](https://github.com/joshblack)! - The UnderlineNav, FilterList, and FilteredSearch components will be deprecated in v36 and have been moved to the deprecated entrypoint. To use the new UnderlineNav, migrate to the component available in drafts. + + + +- [#3732](https://github.com/primer/react/pull/3732) [`8928acc3`](https://github.com/primer/react/commit/8928acc38fa32e5d752c57cb80070e5368c66314) Thanks [@joshblack](https://github.com/joshblack)! - Add default `type="button"` to `IconButton` component + + + +### Patch Changes + +- [#3661](https://github.com/primer/react/pull/3661) [`25693b08`](https://github.com/primer/react/commit/25693b08e8f2c89af1199c2f9d4fe38777f8a70b) Thanks [@joshblack](https://github.com/joshblack)! - Update the `children` prop for `Button` to be optional + + + +- [#3737](https://github.com/primer/react/pull/3737) [`a93eca21`](https://github.com/primer/react/commit/a93eca218043a3009ac0d6768e818fe3e15bb6c9) Thanks [@joshblack](https://github.com/joshblack)! - Restore default main landmark in PageLayout.Content + + + +- [#3722](https://github.com/primer/react/pull/3722) [`0baa5a7f`](https://github.com/primer/react/commit/0baa5a7f6a009e6a7c77cd380f9b9ad93fdfd7cd) Thanks [@mattcosta7](https://github.com/mattcosta7)! - use isomorphic layout effects only + + + ## 35.29.0 ### Minor Changes diff --git a/contributor-docs/versioning.md b/contributor-docs/versioning.md index adbee120bc7..61725b7f939 100644 --- a/contributor-docs/versioning.md +++ b/contributor-docs/versioning.md @@ -11,6 +11,8 @@ - [The type of a prop is broadened](#the-type-of-a-prop-is-broadened) - [The type of a prop is narrowed](#the-type-of-a-prop-is-narrowed) - [The `display` property used for the container of `children` is changed](#the-display-property-used-for-the-container-of-children-is-changed) + - [A component includes a landmark role](#a-component-includes-a-landmark-role) + - [A component no longer includes a landmark role](#a-component-no-longer-includes-a-landmark-role) @@ -40,22 +42,24 @@ For a full list of releases, visit our [releases](https://github.com/primer/reac ## Changes -| Category | Type of change | semver bump | -| :-------- | :-------------------------------------------------------------------------------------------------------------------------------------------- | :------------------ | -| Component | A component is added | `minor` | -| | A component is deprecated | `minor` | -| | A component is removed | `major` | -| Props | A prop is added | `minor` | -| | [The type of a prop is broadened](#the-type-of-a-prop-is-broadened) | `minor` | -| | [The type of a prop is narrowed](#the-type-of-a-prop-is-narrowed) | `major` | -| | A prop is deprecated | `minor` | -| | A prop is removed | `major` | -| Package | A dependency is added | `minor` | -| | A dependency is removed and it does not affect the public API of the package | `minor` | -| | A dependency is removed and it does affect the public API of the package | `major` | -| | The version of a dependency is increased to a newer minor or patch version | `minor` | -| | The version of a dependency is increased to a newer major version | `major` | -| CSS | [The `display` property used for the container of `children` is changed](#the-display-property-used-for-the-container-of-children-is-changed) | potentially `major` | +| Category | Type of change | semver bump | +| :------------ | :-------------------------------------------------------------------------------------------------------------------------------------------- | :------------------ | +| Component | A component is added | `minor` | +| | A component is deprecated | `minor` | +| | A component is removed | `major` | +| Props | A prop is added | `minor` | +| | [The type of a prop is broadened](#the-type-of-a-prop-is-broadened) | `minor` | +| | [The type of a prop is narrowed](#the-type-of-a-prop-is-narrowed) | `major` | +| | A prop is deprecated | `minor` | +| | A prop is removed | `major` | +| Package | A dependency is added | `minor` | +| | A dependency is removed and it does not affect the public API of the package | `minor` | +| | A dependency is removed and it does affect the public API of the package | `major` | +| | The version of a dependency is increased to a newer minor or patch version | `minor` | +| | The version of a dependency is increased to a newer major version | `major` | +| CSS | [The `display` property used for the container of `children` is changed](#the-display-property-used-for-the-container-of-children-is-changed) | potentially `major` | +| Accessibility | [A component includes a landmark role](#a-component-includes-a-landmark-role) | potentially `major` | +| | [A component no longer includes a landmark role](#a-component-no-longer-includes-a-landmark-role) | potentially `major` | ## Reference @@ -123,3 +127,39 @@ markup: In this situation, changing the layout of the `button` to `flex` would collapse the whitespace present between the text "Save" and "changes" and would be considered a breaking change. + +### A component includes a landmark role + +semver bump: potentially **major** + +The addition of certain [landmark](https://w3c.github.io/aria/#dfn-landmark) regions may be considered a breaking change. For example, if a component includes the `main` landmark role and another `main` element already exists then the product would violate the [`landmark-no-duplicate-main`](https://dequeuniversity.com/rules/axe/4.8/landmark-no-duplicate-main?product=RuleDescription) rule that is a part of axe. + +The addition of other landmark roles may be permissible in a `minor` release if +and only if the component is uniquely identifiable from other landmarks of the +same role. This is typically done through an explicit label on the landmark or +through an element which labels the landmark. + +| Role | semver bump | Description | +| :------------ | :------------------ | :----------------------------------------------------------------------------------------- | +| banner | potentially `major` | `major` if used as global site header, `minor` if used in sectioning elements | +| complementary | `minor` | | +| contentinfo | `major` | The implicit role of `