From 45b331fb2b1f7b9dbdef70707a89f21db712c679 Mon Sep 17 00:00:00 2001 From: Jon Rohan Date: Mon, 10 Apr 2023 22:51:48 +0000 Subject: [PATCH 01/20] Rename component StyledOcticon to Octicon --- codemods/__tests__/removeSystemProps.js | 12 ++++----- codemods/removeSystemProps.js | 2 +- docs/content/Flash.mdx | 2 +- docs/content/Header.mdx | 2 +- .../{StyledOcticon.mdx => Octicon.mdx} | 12 ++++----- docs/content/Timeline.mdx | 20 +++++++------- docs/content/TreeView.mdx | 6 ++--- docs/content/deprecated/SideNav.md | 10 +++---- .../src/@primer/gatsby-theme-doctocat/nav.yml | 4 +-- docs/src/component-checklist.js | 8 +++--- docs/src/component-statuses.js | 4 +-- examples/nextjs/package-lock.json | 20 +++++++------- generated/components.json | 18 ++++++------- src/CircleBadge/CircleBadge.docs.json | 8 +++--- src/CircleBadge/CircleBadge.tsx | 4 +-- src/Dialog/Dialog.tsx | 4 +-- src/Header/Header.stories.tsx | 6 ++--- src/NavList/NavList.tsx | 4 +-- ...ledOcticon.docs.json => Octicon.docs.json} | 4 +-- src/Octicon.tsx | 18 +++++++++++++ src/StateLabel/StateLabel.tsx | 4 +-- src/StateLabel/__tests__/StateLabel.test.tsx | 2 +- src/StyledOcticon.tsx | 19 +++----------- src/Timeline/Timeline.features.stories.tsx | 14 +++++----- src/Timeline/Timeline.stories.tsx | 14 +++++----- src/TreeView/TreeView.features.stories.tsx | 20 +++++++------- src/TreeView/TreeView.stories.tsx | 8 +++--- .../UnderlineNav2.examples.stories.tsx | 4 +-- src/__tests__/Octicon.test.tsx | 25 ++++++++++++++++++ src/__tests__/Octicon.types.test.tsx | 12 +++++++++ .../__snapshots__/Octicon.test.tsx.snap | 26 +++++++++++++++++++ .../__snapshots__/StyledOcticon.test.tsx.snap | 25 ++++++++++++++++++ .../__snapshots__/exports.test.ts.snap | 1 + .../DropdownMenu/DropdownButton.tsx | 4 +-- src/deprecated/SelectMenu/SelectMenuItem.tsx | 4 +-- src/index.ts | 2 ++ 36 files changed, 224 insertions(+), 128 deletions(-) rename docs/content/{StyledOcticon.mdx => Octicon.mdx} (61%) rename src/{StyledOcticon.docs.json => Octicon.docs.json} (97%) create mode 100644 src/Octicon.tsx create mode 100644 src/__tests__/Octicon.test.tsx create mode 100644 src/__tests__/Octicon.types.test.tsx create mode 100644 src/__tests__/__snapshots__/Octicon.test.tsx.snap diff --git a/codemods/__tests__/removeSystemProps.js b/codemods/__tests__/removeSystemProps.js index ef37944d92c..e2a33e9f69d 100644 --- a/codemods/__tests__/removeSystemProps.js +++ b/codemods/__tests__/removeSystemProps.js @@ -29,28 +29,28 @@ defineInlineTest( removeSystemProps, {}, ` -import {Button, StyledOcticon} from '@primer/components' +import {Button, Octicon} from '@primer/components' import {CheckIcon, ClippyIcon} from '@primer/octicons-react' const ClipboardCopy = ({value}) => `.trim(), ` -import {Button, StyledOcticon} from '@primer/components' +import {Button, Octicon} from '@primer/components' import {CheckIcon, ClippyIcon} from '@primer/octicons-react' const ClipboardCopy = ({value}) => ( )`.trim(), diff --git a/codemods/removeSystemProps.js b/codemods/removeSystemProps.js index b5b0f203027..f829a124668 100644 --- a/codemods/removeSystemProps.js +++ b/codemods/removeSystemProps.js @@ -171,7 +171,7 @@ const stylePropsMap = { SideNav: [...COMMON], Spinner: [...COMMON], StateLabel: [...COMMON], - StyledOcticon: [...COMMON], + Octicon: [...COMMON], SubNav: [...COMMON, ...FLEX], TabNav: [...COMMON], TabNavLink: [...COMMON, ...TYPOGRAPHY], diff --git a/docs/content/Flash.mdx b/docs/content/Flash.mdx index 35044beb961..76010d4f3da 100644 --- a/docs/content/Flash.mdx +++ b/docs/content/Flash.mdx @@ -32,7 +32,7 @@ Flash components with icons inside of them will automatically set the correct co ```jsx live - + Success! ``` diff --git a/docs/content/Header.mdx b/docs/content/Header.mdx index e076039f1b0..51b6166e298 100644 --- a/docs/content/Header.mdx +++ b/docs/content/Header.mdx @@ -18,7 +18,7 @@ All items directly under the Header component should be a `Header.Item` componen
- + GitHub diff --git a/docs/content/StyledOcticon.mdx b/docs/content/Octicon.mdx similarity index 61% rename from docs/content/StyledOcticon.mdx rename to docs/content/Octicon.mdx index 5f89a19d220..37f065bbb24 100644 --- a/docs/content/StyledOcticon.mdx +++ b/docs/content/Octicon.mdx @@ -1,19 +1,19 @@ --- -description: Use StyledOcticon to render an Octicon as a component. -title: StyledOcticon +description: Use Octicon to render an Octicon as a component. +title: Octicon status: Alpha -source: https://github.com/primer/react/blob/main/src/StyledOcticon.tsx +source: https://github.com/primer/react/blob/main/src/Octicon.tsx componentId: styled_octicon --- -import data from '../../src/StyledOcticon.docs.json' +import data from '../../src/Octicon.docs.json' ## Example ```jsx live <> - - + + ``` diff --git a/docs/content/Timeline.mdx b/docs/content/Timeline.mdx index 69c4474858a..5e89d046d92 100644 --- a/docs/content/Timeline.mdx +++ b/docs/content/Timeline.mdx @@ -16,7 +16,7 @@ The Timeline.Item component is used to display items on a vertical timeline, con - + @@ -41,7 +41,7 @@ The default Timeline.Badge color is dark text on a light grey background. - + Default badge color @@ -51,25 +51,25 @@ The default Timeline.Badge color is dark text on a light grey background. ### Adding color to a Badge To have color variants, use the `bg` prop on the `Timeline.Badge`. If an icon is being used, set the `color` prop -of the child `StyledOcticon` if necessary. +of the child `Octicon` if necessary. ```jsx live - + Background used when closed events occur - + Background when opened or passed events occur - + Background used when pull requests are merged @@ -84,13 +84,13 @@ Timeline has a condensed prop that will reduce the vertical padding and remove t - + This is the message of a condensed TimelineItem - + This is the message of a condensed TimelineItem @@ -105,14 +105,14 @@ To create a visual break in the timeline, use Timeline.Break. This adds a horizo - + Background used when closed events occur - + Background when opened or passed events occur diff --git a/docs/content/TreeView.mdx b/docs/content/TreeView.mdx index 2c0ba15a7bf..464f7888967 100644 --- a/docs/content/TreeView.mdx +++ b/docs/content/TreeView.mdx @@ -34,7 +34,7 @@ import {TreeView} from '@primer/react' Avatar.tsx - + @@ -43,7 +43,7 @@ import {TreeView} from '@primer/react' Button.tsx - + @@ -54,7 +54,7 @@ import {TreeView} from '@primer/react' package.json - + diff --git a/docs/content/deprecated/SideNav.md b/docs/content/deprecated/SideNav.md index 4cf852fe97e..96977974ac8 100644 --- a/docs/content/deprecated/SideNav.md +++ b/docs/content/deprecated/SideNav.md @@ -69,12 +69,12 @@ Add the `variant='full'` prop to a `SideNav.Link` to spread child elements acros With an avatar - + With an Octicon With a status icon - + With a label @@ -142,11 +142,11 @@ It can also appear nested, as a sub navigation. Use margin/padding [System Props ```jsx live - + Account - + Profile @@ -163,7 +163,7 @@ It can also appear nested, as a sub navigation. Use margin/padding [System Props - + Emails diff --git a/docs/src/@primer/gatsby-theme-doctocat/nav.yml b/docs/src/@primer/gatsby-theme-doctocat/nav.yml index da1d837ce2b..34a4ed99699 100644 --- a/docs/src/@primer/gatsby-theme-doctocat/nav.yml +++ b/docs/src/@primer/gatsby-theme-doctocat/nav.yml @@ -128,8 +128,8 @@ url: /SplitPageLayout - title: StateLabel url: /StateLabel - - title: StyledOcticon - url: /StyledOcticon + - title: Octicon + url: /Octicon - title: SubNav url: /SubNav - title: ToggleSwitch diff --git a/docs/src/component-checklist.js b/docs/src/component-checklist.js index 1e72d10f349..757efb30f64 100644 --- a/docs/src/component-checklist.js +++ b/docs/src/component-checklist.js @@ -1,4 +1,4 @@ -import {Box, StyledOcticon, Link, Text} from '@primer/react' +import {Box, Octicon, Link, Text} from '@primer/react' import {H3} from '@primer/gatsby-theme-doctocat/src/components/heading' import {CheckCircleFillIcon, CircleIcon, SkipIcon} from '@primer/octicons-react' import React from 'react' @@ -88,11 +88,11 @@ Checklist.Item = ({checked, children}) => { {checked ? ( - + ) : checked === null ? ( - + ) : ( - + )} diff --git a/docs/src/component-statuses.js b/docs/src/component-statuses.js index a6cad737efb..42c431c6072 100644 --- a/docs/src/component-statuses.js +++ b/docs/src/component-statuses.js @@ -1,5 +1,5 @@ import componentMetadata from '@primer/component-metadata' -import {Link, Label, StyledOcticon} from '@primer/react' +import {Link, Label, Octicon} from '@primer/react' import {AccessibilityInsetIcon} from '@primer/octicons-react' import StatusLabel from '@primer/gatsby-theme-doctocat/src/components/status-label' import Table from '@primer/gatsby-theme-doctocat/src/components/table' @@ -79,7 +79,7 @@ export function ComponentStatuses() { borderColor: 'transparent', }} > - + Reviewed ) : ( diff --git a/examples/nextjs/package-lock.json b/examples/nextjs/package-lock.json index 55c4c98ea6d..dd26c5a936f 100644 --- a/examples/nextjs/package-lock.json +++ b/examples/nextjs/package-lock.json @@ -28,7 +28,7 @@ "@lit-labs/react": "1.1.1", "@primer/behaviors": "1.3.3", "@primer/octicons-react": "^18.0.0", - "@primer/primitives": "7.11.3", + "@primer/primitives": "7.11.5", "@react-aria/ssr": "^3.1.0", "@styled-system/css": "^5.1.5", "@styled-system/props": "^5.1.5", @@ -66,7 +66,7 @@ "@rollup/plugin-node-resolve": "15.0.1", "@rollup/plugin-replace": "5.0.2", "@rollup/plugin-terser": "0.4.0", - "@rollup/plugin-typescript": "11.0.0", + "@rollup/plugin-typescript": "11.1.0", "@rollup/plugin-virtual": "3.0.1", "@size-limit/preset-big-lib": "8.2.4", "@storybook/addon-a11y": "6.5.16", @@ -89,7 +89,7 @@ "@testing-library/user-event": "^14.3.0", "@types/chroma-js": "2.1.4", "@types/jest": "29.4.0", - "@types/jest-axe": "3.5.3", + "@types/jest-axe": "3.5.5", "@types/lodash.groupby": "4.6.7", "@types/lodash.isempty": "4.4.7", "@types/lodash.isobject": "3.0.7", @@ -108,7 +108,7 @@ "babel-plugin-macros": "3.1.0", "babel-plugin-open-source": "1.3.4", "babel-plugin-preval": "5.1.0", - "babel-plugin-styled-components": "2.0.2", + "babel-plugin-styled-components": "2.1.1", "babel-plugin-transform-commonjs": "1.1.6", "babel-plugin-transform-replace-expressions": "0.2.0", "babel-polyfill": "6.26.0", @@ -126,7 +126,7 @@ "eslint-plugin-mdx": "2.0.5", "eslint-plugin-playwright": "0.12.0", "eslint-plugin-prettier": "4.2.1", - "eslint-plugin-primer-react": "2.0.2", + "eslint-plugin-primer-react": "2.0.3", "eslint-plugin-react": "7.32.2", "eslint-plugin-react-hooks": "4.6.0", "eslint-plugin-storybook": "0.6.11", @@ -1392,14 +1392,14 @@ "@playwright/test": "1.32.0", "@primer/behaviors": "1.3.3", "@primer/octicons-react": "^18.0.0", - "@primer/primitives": "7.11.3", + "@primer/primitives": "7.11.5", "@react-aria/ssr": "^3.1.0", "@rollup/plugin-babel": "6.0.3", "@rollup/plugin-commonjs": "24.0.1", "@rollup/plugin-node-resolve": "15.0.1", "@rollup/plugin-replace": "5.0.2", "@rollup/plugin-terser": "0.4.0", - "@rollup/plugin-typescript": "11.0.0", + "@rollup/plugin-typescript": "11.1.0", "@rollup/plugin-virtual": "3.0.1", "@size-limit/preset-big-lib": "8.2.4", "@storybook/addon-a11y": "6.5.16", @@ -1425,7 +1425,7 @@ "@testing-library/user-event": "^14.3.0", "@types/chroma-js": "2.1.4", "@types/jest": "29.4.0", - "@types/jest-axe": "3.5.3", + "@types/jest-axe": "3.5.5", "@types/lodash.groupby": "4.6.7", "@types/lodash.isempty": "4.4.7", "@types/lodash.isobject": "3.0.7", @@ -1448,7 +1448,7 @@ "babel-plugin-macros": "3.1.0", "babel-plugin-open-source": "1.3.4", "babel-plugin-preval": "5.1.0", - "babel-plugin-styled-components": "2.0.2", + "babel-plugin-styled-components": "2.1.1", "babel-plugin-transform-commonjs": "1.1.6", "babel-plugin-transform-replace-expressions": "0.2.0", "babel-polyfill": "6.26.0", @@ -1469,7 +1469,7 @@ "eslint-plugin-mdx": "2.0.5", "eslint-plugin-playwright": "0.12.0", "eslint-plugin-prettier": "4.2.1", - "eslint-plugin-primer-react": "2.0.2", + "eslint-plugin-primer-react": "2.0.3", "eslint-plugin-react": "7.32.2", "eslint-plugin-react-hooks": "4.6.0", "eslint-plugin-storybook": "0.6.11", diff --git a/generated/components.json b/generated/components.json index 258ef082452..c981c95343f 100644 --- a/generated/components.json +++ b/generated/components.json @@ -264,7 +264,7 @@ }, "styled_octicon": { "id": "styled_octicon", - "name": "StyledOcticon", + "name": "Octicon", "status": "alpha", "a11yReviewed": false, "stories": [], @@ -1658,12 +1658,12 @@ { "name": "as", "type": "React.ElementType", - "defaultValue": "StyledOcticon" + "defaultValue": "Octicon" } ], "passthrough": { - "element": "StyledOcticon", - "url": "/StyledOcticon" + "element": "Octicon", + "url": "/Octicon" } } ] @@ -2216,7 +2216,7 @@ "stories": [ { "id": "components-header--default", - "code": "() => (\n
\n \n \n \n GitHub\n \n \n Menu\n \n \n \n
\n)" + "code": "() => (\n
\n \n \n \n GitHub\n \n \n Menu\n \n \n \n
\n)" } ], "props": [ @@ -4368,7 +4368,7 @@ "stories": [ { "id": "components-timeline--default", - "code": "() => (\n \n \n \n \n \n This is a message\n \n \n \n \n \n This is a message\n \n \n \n \n \n This is a message\n \n \n)" + "code": "() => (\n \n \n \n \n \n This is a message\n \n \n \n \n \n This is a message\n \n \n \n \n \n This is a message\n \n \n)" } ], "props": [ @@ -4670,7 +4670,7 @@ "stories": [ { "id": "components-treeview--default", - "code": "() => (\n \n)" + "code": "() => (\n \n)" }, { "id": "components-treeview-features--files", @@ -4678,7 +4678,7 @@ }, { "id": "components-treeview-features--files-changed", - "code": "() => {\n return (\n \n )\n}" + "code": "() => {\n return (\n \n )\n}" }, { "id": "components-treeview-features--async-success", @@ -5174,4 +5174,4 @@ "subcomponents": [] } } -} \ No newline at end of file +} diff --git a/src/CircleBadge/CircleBadge.docs.json b/src/CircleBadge/CircleBadge.docs.json index d809da785b5..c09edb015fb 100644 --- a/src/CircleBadge/CircleBadge.docs.json +++ b/src/CircleBadge/CircleBadge.docs.json @@ -44,13 +44,13 @@ { "name": "as", "type": "React.ElementType", - "defaultValue": "StyledOcticon" + "defaultValue": "Octicon" } ], "passthrough": { - "element": "StyledOcticon", - "url": "/StyledOcticon" + "element": "Octicon", + "url": "/Octicon" } } ] -} \ No newline at end of file +} diff --git a/src/CircleBadge/CircleBadge.tsx b/src/CircleBadge/CircleBadge.tsx index 48ead2f6ef9..3712272ab1e 100644 --- a/src/CircleBadge/CircleBadge.tsx +++ b/src/CircleBadge/CircleBadge.tsx @@ -1,6 +1,6 @@ import styled from 'styled-components' import {get} from '../constants' -import StyledOcticon from '../StyledOcticon' +import Octicon from '../Octicon' import sx, {SxProp} from '../sx' import isNumeric from '../utils/isNumeric' import {ComponentProps} from '../utils/types' @@ -36,7 +36,7 @@ const CircleBadge = styled.div` ${sx}; ` -const CircleBadgeIcon = styled(StyledOcticon)` +const CircleBadgeIcon = styled(Octicon)` height: auto; max-width: 60%; max-height: 55%; diff --git a/src/Dialog/Dialog.tsx b/src/Dialog/Dialog.tsx index be9fa186567..76bd4095738 100644 --- a/src/Dialog/Dialog.tsx +++ b/src/Dialog/Dialog.tsx @@ -6,7 +6,7 @@ import {get} from '../constants' import {useOnEscapePress, useProvidedRefOrCreate} from '../hooks' import {useFocusTrap} from '../hooks/useFocusTrap' import sx, {SxProp} from '../sx' -import StyledOcticon from '../StyledOcticon' +import Octicon from '../Octicon' import {XIcon} from '@primer/octicons-react' import {useFocusZone} from '../hooks/useFocusZone' import {FocusKeys} from '@primer/behaviors' @@ -417,7 +417,7 @@ const DialogCloseButton = styled(Button)` const CloseButton: React.FC void}>> = ({onClose}) => { return ( - + ) } diff --git a/src/Header/Header.stories.tsx b/src/Header/Header.stories.tsx index 374db8ea2a6..2b35502be42 100644 --- a/src/Header/Header.stories.tsx +++ b/src/Header/Header.stories.tsx @@ -4,7 +4,7 @@ import {MarkGithubIcon} from '@primer/octicons-react' import Header from './Header' import Avatar from '../Avatar' -import StyledOcticon from '../StyledOcticon' +import Octicon from '../Octicon' export default { title: 'Components/Header', @@ -15,7 +15,7 @@ export const Default = () => (
- + GitHub @@ -30,7 +30,7 @@ export const Playground: ComponentStory = args => (
- + GitHub diff --git a/src/NavList/NavList.tsx b/src/NavList/NavList.tsx index 8849f17a672..73279553337 100644 --- a/src/NavList/NavList.tsx +++ b/src/NavList/NavList.tsx @@ -9,7 +9,7 @@ import { ActionListTrailingVisualProps, } from '../ActionList' import Box from '../Box' -import StyledOcticon from '../StyledOcticon' +import Octicon from '../Octicon' import sx, {merge, SxProp} from '../sx' import {defaultSxProp} from '../utils/defaultSxProp' import {useId} from '../hooks/useId' @@ -143,7 +143,7 @@ function ItemWithSubNav({children, subNav, sx: sxProp = defaultSxProp}: ItemWith {children} {/* What happens if the user provides a TrailingVisual? */} - +} + +const Octicon = styled(Icon)` + ${({color, sx: sxProp}) => sx({sx: {color, ...sxProp}})} +` + +export type OcticonProps = ComponentProps +export default Octicon diff --git a/src/StateLabel/StateLabel.tsx b/src/StateLabel/StateLabel.tsx index 31940eaaf3e..2d0df20d552 100644 --- a/src/StateLabel/StateLabel.tsx +++ b/src/StateLabel/StateLabel.tsx @@ -11,7 +11,7 @@ import React from 'react' import styled from 'styled-components' import {variant} from 'styled-system' import {get} from '../constants' -import StyledOcticon from '../StyledOcticon' +import Octicon from '../Octicon' import sx, {SxProp} from '../sx' import {ComponentProps} from '../utils/types' @@ -105,7 +105,7 @@ function StateLabel({children, status, variant: variantProp = 'normal', ...rest} return ( {/* eslint-disable-next-line @typescript-eslint/no-unnecessary-condition */} - {status && } + {status && } {children} ) diff --git a/src/StateLabel/__tests__/StateLabel.test.tsx b/src/StateLabel/__tests__/StateLabel.test.tsx index 537bd291b80..d88e33608ed 100644 --- a/src/StateLabel/__tests__/StateLabel.test.tsx +++ b/src/StateLabel/__tests__/StateLabel.test.tsx @@ -9,7 +9,7 @@ describe('StateLabel', () => { Component: StateLabel, toRender: () => Open, options: { - // Rendering a StyledOcticon seems to break getComputedStyles, which + // Rendering a Octicon seems to break getComputedStyles, which // the sx prop implementation test uses to make sure the prop is working correctly. // Despite my best efforts, I cannot figure out why this is happening. So, // unfortunately, we will simply skip this test. diff --git a/src/StyledOcticon.tsx b/src/StyledOcticon.tsx index 40625f23df1..1011bbd3fc0 100644 --- a/src/StyledOcticon.tsx +++ b/src/StyledOcticon.tsx @@ -1,18 +1,5 @@ -import {IconProps} from '@primer/octicons-react' -import React from 'react' -import styled from 'styled-components' -import sx, {SxProp} from './sx' -import {ComponentProps} from './utils/types' +// Leaving an export here for backwards compatibility +import {default as StyledOcticon} from './Octicon' -type OcticonProps = {icon: React.ElementType; color?: string} & IconProps - -function Octicon({icon: IconComponent, ...rest}: OcticonProps) { - return -} - -const StyledOcticon = styled(Octicon)` - ${({color, sx: sxProp}) => sx({sx: {color, ...sxProp}})} -` - -export type StyledOcticonProps = ComponentProps export default StyledOcticon +export type {OcticonProps as StyledOcticonProps} from './Octicon' diff --git a/src/Timeline/Timeline.features.stories.tsx b/src/Timeline/Timeline.features.stories.tsx index 2b88ba7a87d..ead5e5d3f90 100644 --- a/src/Timeline/Timeline.features.stories.tsx +++ b/src/Timeline/Timeline.features.stories.tsx @@ -2,7 +2,7 @@ import React from 'react' import {Meta} from '@storybook/react' import {ComponentProps} from '../utils/types' import Timeline from './Timeline' -import StyledOcticon from '../StyledOcticon' +import Octicon from '../Octicon' import {GitBranchIcon, GitCommitIcon, GitMergeIcon} from '@primer/octicons-react' import Link from '../Link' @@ -21,7 +21,7 @@ export const ClipSidebar = () => ( - + This is a message @@ -32,13 +32,13 @@ export const CondensedItems = () => ( - + This is a message - + This is a message @@ -49,14 +49,14 @@ export const TimelineBreak = () => ( - + This is a message - + This is a message @@ -67,7 +67,7 @@ export const WithInlineLinks = () => ( - + diff --git a/src/Timeline/Timeline.stories.tsx b/src/Timeline/Timeline.stories.tsx index 61b1466e425..27346cc0478 100644 --- a/src/Timeline/Timeline.stories.tsx +++ b/src/Timeline/Timeline.stories.tsx @@ -2,7 +2,7 @@ import React from 'react' import {Meta, Story} from '@storybook/react' import {ComponentProps} from '../utils/types' import Timeline from './Timeline' -import StyledOcticon from '../StyledOcticon' +import Octicon from '../Octicon' import {GitCommitIcon} from '@primer/octicons-react' export default { @@ -20,19 +20,19 @@ export const Default = () => ( - + This is a message - + This is a message - + This is a message @@ -43,19 +43,19 @@ export const Playground: Story> = args => ( - + This is a message - + This is a message - + This is a message diff --git a/src/TreeView/TreeView.features.stories.tsx b/src/TreeView/TreeView.features.stories.tsx index 19ca6b8f362..aec221bd7ae 100644 --- a/src/TreeView/TreeView.features.stories.tsx +++ b/src/TreeView/TreeView.features.stories.tsx @@ -3,7 +3,7 @@ import {Meta, Story} from '@storybook/react' import React from 'react' import Box from '../Box' import {Button} from '../Button' -import StyledOcticon from '../StyledOcticon' +import Octicon from '../Octicon' import {SubTreeState, TreeView} from './TreeView' const meta: Meta = { @@ -114,7 +114,7 @@ export const FilesChanged: Story = () => { Avatar.tsx - + @@ -129,7 +129,7 @@ export const FilesChanged: Story = () => { Button.tsx - + @@ -138,7 +138,7 @@ export const FilesChanged: Story = () => { Button.test.tsx - + @@ -149,7 +149,7 @@ export const FilesChanged: Story = () => { ReallyLongFileNameThatShouldBeTruncated.tsx - + @@ -166,7 +166,7 @@ export const FilesChanged: Story = () => { index.html - + @@ -175,7 +175,7 @@ export const FilesChanged: Story = () => { favicon.ico - + @@ -806,7 +806,7 @@ export const WithoutIndentation: Story = () => ( Avatar.tsx - + @@ -815,7 +815,7 @@ export const WithoutIndentation: Story = () => ( Button.tsx - + @@ -824,7 +824,7 @@ export const WithoutIndentation: Story = () => ( package.json - + diff --git a/src/TreeView/TreeView.stories.tsx b/src/TreeView/TreeView.stories.tsx index 70d67a95413..fe6c83a1aa2 100644 --- a/src/TreeView/TreeView.stories.tsx +++ b/src/TreeView/TreeView.stories.tsx @@ -2,7 +2,7 @@ import React from 'react' import {DiffAddedIcon, DiffModifiedIcon, FileIcon} from '@primer/octicons-react' import {Meta, Story} from '@storybook/react' import Box from '../Box' -import StyledOcticon from '../StyledOcticon' +import Octicon from '../Octicon' import {TreeView} from './TreeView' const meta: Meta = { @@ -34,7 +34,7 @@ export const Default: Story = () => ( Avatar.tsx - + @@ -43,7 +43,7 @@ export const Default: Story = () => ( Button.tsx - + @@ -54,7 +54,7 @@ export const Default: Story = () => ( package.json - + diff --git a/src/UnderlineNav2/UnderlineNav2.examples.stories.tsx b/src/UnderlineNav2/UnderlineNav2.examples.stories.tsx index 3a2221a4599..293642c0664 100644 --- a/src/UnderlineNav2/UnderlineNav2.examples.stories.tsx +++ b/src/UnderlineNav2/UnderlineNav2.examples.stories.tsx @@ -22,7 +22,7 @@ import { } from '@primer/octicons-react' import {Meta} from '@storybook/react' import {UnderlineNav} from './index' -import {Avatar, StyledOcticon, Button, Box, Heading, Link, Text, StateLabel, BranchName} from '..' +import {Avatar, Octicon, Button, Box, Heading, Link, Text, StateLabel, BranchName} from '..' export default { title: 'Drafts/Components/UnderlineNav/Examples', @@ -131,7 +131,7 @@ export const ProfilePage = () => { - + 47 Followers diff --git a/src/__tests__/Octicon.test.tsx b/src/__tests__/Octicon.test.tsx new file mode 100644 index 00000000000..52a1d7476ec --- /dev/null +++ b/src/__tests__/Octicon.test.tsx @@ -0,0 +1,25 @@ +import React from 'react' +import {XIcon} from '@primer/octicons-react' +import {Octicon} from '..' +import {behavesAsComponent, checkExports} from '../utils/testing' +import {render as HTMLRender} from '@testing-library/react' +import {axe, toHaveNoViolations} from 'jest-axe' + +expect.extend(toHaveNoViolations) + +describe('Octicon', () => { + behavesAsComponent({ + Component: Octicon, + toRender: () => , + }) + + checkExports('Octicon', { + default: Octicon, + }) + + it('should have no axe violations', async () => { + const {container} = HTMLRender() + const results = await axe(container) + expect(results).toHaveNoViolations() + }) +}) diff --git a/src/__tests__/Octicon.types.test.tsx b/src/__tests__/Octicon.types.test.tsx new file mode 100644 index 00000000000..4fe6dfaf29e --- /dev/null +++ b/src/__tests__/Octicon.types.test.tsx @@ -0,0 +1,12 @@ +import {MoonIcon} from '@primer/octicons-react' +import React from 'react' +import Octicon from '../Octicon' + +export function shouldAcceptCallWithNoProps() { + return +} + +export function shouldNotAcceptSystemProps() { + // @ts-expect-error system props should not be accepted + return +} diff --git a/src/__tests__/__snapshots__/Octicon.test.tsx.snap b/src/__tests__/__snapshots__/Octicon.test.tsx.snap new file mode 100644 index 00000000000..ef74ea46657 --- /dev/null +++ b/src/__tests__/__snapshots__/Octicon.test.tsx.snap @@ -0,0 +1,26 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Octicon renders consistently 1`] = ` + +`; diff --git a/src/__tests__/__snapshots__/StyledOcticon.test.tsx.snap b/src/__tests__/__snapshots__/StyledOcticon.test.tsx.snap index 4d6e9d3c198..304bac0d048 100644 --- a/src/__tests__/__snapshots__/StyledOcticon.test.tsx.snap +++ b/src/__tests__/__snapshots__/StyledOcticon.test.tsx.snap @@ -1,5 +1,30 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`Octicon renders consistently 1`] = ` + +`; + exports[`StyledOcticon renders consistently 1`] = ` M4J z&}OKc8)snl(RJ%nisw?KSUFo*6h@K!SG*L{oL;Rx6H%1ozWaVTQSbYgjwcPWV4r)y z3jFVPOW8Jq-i#efl1kzSp^*p<{v(ChFKUNQou1ECD~1wGK>LAb@J7|8YCP<}B`45I zO(pubwu95Z$Q3q`2X)-RPfGi;AUhj^jSU|*x8H4IJtI;W#56l$)N`AK06XNVz4gfi z$(W|-f6sCrJqTDFB@c9DyNl1~iN;IplSNhB3^y7{F(W~=0W4^V_8>N$RQEV^0IV$o z@seTP{V!F?`%eA<`uUtdDS&)u_0-C=2k}kZgvr0OeUR`$;8F2X_-L@X!GgnD4d0s} zfc--+zmx*d@iZn>xa0@q`MJ?u!crl2arNreYP_`jf3GKv+yHz85HqMl2HFa%7l@Rw za^RJw*RBCrEtc9(D+k+VqSCFm_+&4lWB@cC$8? z7ftTqM_hoeokj5;26o29fT3{{$xtl>8_CXIxNu=%hs5px+r8j{(~Gzi@Z!A{Iu!d2 zOR$0KIZ%wM<6*bIYwA;cGtlniId)g|FrC{~t*37mpAl`2_eZ><1>V yMe;$%4G1dUy7Kk!R||Z#z*h@=wZQ*#3&?IS64#7Uw$q@jeAUR@u;SNSzyBLOknnW? literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/Popover.test.ts-snapshots/Popover-Default-light-linux.png b/.playwright/snapshots/components/Popover.test.ts-snapshots/Popover-Default-light-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..cabb36e5169402fc626a33bdd547a86e397717ce GIT binary patch literal 13953 zcmeHtX;hQf8g8t$oYpGsvBe4kwIUpk0tx~$MoX2Z2&jk(2vM1oAt}U!A%xi4%4w0o zpdf^hS_R6i41o|Jwki;T1c}Tc5y`+15+H;SGTr@o?z(H8d)Kp@JI5kZ`^yo z``z#RJkPs-IqC1SrTJKK)hYgt1K3~J?*gI!o zurFbVZ;qZxDUnVl-?6~zR8z^$W1kJ09Xt8mdx$Tsc3uDMcDVQLufCIii~jY{(f4oX z{OkAAo8qs1{i)Tpldq^hm;S^@eEnsI4a1#dxoe;ACvP@3sBg}@WqQjfV?`WKvgg}d#Kg+d*xV3JWAGW;-X!g+R_?%jr)8{kdD9_9Ug1(yDYOLsf@ zpNPVotg-~Mb7jI%1KsCGPPQvnS#%I{*4nSApt!hrf5$f}vBihie+K5e=!MQnb*T-Z z^^rUo&Z>Vb(p}P|YlqI<{R7;pyKnT{FCXTYKdkynd}-I?S8pay3kLE&%&!0s!uCgk zk@(%B9qCEVkH~Ld7M7#&q?K^?QB* z+q~nb@sVv<L*XKPQNLkhs_kMceRjs`pVB`^sLwh4^p|Cf^^jbAi%xdqoH zGp!BE;M9vW{kT7Uwjh*@Z|Cr`U5xvaIy6z$2{bfq2ir^afOm$en{G>f&fsRHorrGiBV`qb}iZ+a;G0YXu z@&la4IMV?hMI9>l1JzqY9QW0Fd`U((ht=to=)j;LQe-z;S}aOa^^Qrx2ZV|oPuWAr zC^?7c+!3Vp^>wYburNwdOY@}$eIVL5k0$xrGaC|h+rv{1_9|tC`WwSNaD(!EXM^5) zEZK0wYx#>;P4Pt))E%V@xKUTAwNR9<`D4q24J@~0V}^};M#M;s+m-&0Ln0_8Da(~b zZrG4~Y#nn+{P7qrb0rk}{ct$?X^B?HHO-A7ohWtK<3p6R)_7c0*3iUmuJa`d?n$RZ zV_lh)B;w4cJ~4E@E(sVyR27$z-#jvL0BTV~oX_-_l?v|HNW3riKd|{#AaaMaCJs^)U|Q3Gtqhz5D6U{!Ula zF&d}YjObT0FA?I-FY>H*ANL|>Wuzr`c5=7wIDGNQ&D<}FbjBW5jnVzzk+k!VyA}PD zt9?&%wXXZ>dG?|4wBT^OPN{vpV(IjO*4dl(9m!+y_0#OeLx&Ct|I8G7@p0r`2$CfQ zi()fg|8;`m=452?2Ic53A{>Q>MvqNz|=cel$ zV>s*|j4TUGY(pMK^`1>#rAsi2_kAATzl4f6W~e%MrjMT5;gueV8;g?Ec%_`I>yX{t znYfZ{+LHLxuSK}FEr309FrtAIj(-@@ougim*Y~n2N`_n6D&pc(UfP8D)uDzc+W2LK zR{fG0IWsT;U!8Z9yH0{T^riC926Z&K96LWuH~f&f{M3{Ef3Y# zkQteiRCPmv^{iq~Dyx zBT2#<44Wez!!+ndX#Gm20h@t)xrx50#gMGdY3Jr{nZdn6(aljLp?Z6GPw0c=dl025 zZz`e76gOPoO|u$m;&iv9SfI5-EH`G^^*rw0c~@|Oa4e)b_AV8f6g)RSZx$1KWC{&k>~ETivY$?o+K7 zQpfDMF=d}CUV9tItSx?uATjj|hK4u4c3`9}x$Gr@4wtcZLvB-~xqQUi+q)~5ng{2p zyRBHMlF}ka&S6_`bemUmbF-z!DOSzLm^z9Vc-M6Dr1eT0iEx|5t0L9@Iy9POJ~o*o zlsXdcW!ZValX+=@(d-h<@84ya*m~jMuqWNypfJ_QafQ#L+f#=HDTBppB+;n^0k7o6?kjg6FQj{QZ~-GJWZmg{L(Zt5m;n=#3nFh)7*3Dq&r9&e5-wA$g0i!b*hm)_=hsrU-*>EpQ;`7a-IKO`E0NLB{z z2v35WQcHw3Zp}XD5me(U;uRsZ^?!latddj~)p5z$tkGdZIQ{NHwJGH}+cjeswgVkf(Zb z13_Bg<9A);JBfmVMAc>}H-Q3jiJC`$EobNAS7+!)x*x=FEc_(M_{Y%PD3x3MGO)aM zr0qx~70skrshLc}Zb^w@`eS1BH^3;9k(8<`)7+~G2?^u0go#$^jc(b4YoHrT9EDx- zx8l<51DD=B>snwMqSM0KaKWz^Ho`0e0EnnzyG#0{?cA+~#MBWx%kfv{gg0f#0Sz)o*qQi-&^L1OsVinrgneZ16i0aVr z^rf=)#lNyOR+c@|uLd-vp%FlM`vo=HDGqEMPVxlWB75=GHKNmU>)>o`B z^^Jz*;<(5c8W{>HI7#Jq;GMj3HI^y=KsaFMns}bl(ts#-ct=5iUq8?CpsWKeEBlCB z?#FqAmub$>jA4BubC4Nh;|Qt!@sG#Kci`lNvD6XIhN*RAKbP|{r;+1H-BWPhL*Vv3 z(|TSdeYxAn5*O*bHkYQJ5EyQ^wY8;Rsw`_@bz$m7Ub8<&~^%f?FuOaLMNfdG1LlbX- zm;Umxg~vb4&`p0Dgef~y*Y3MYdm@sCT_rKXo)|~$c$0QXh93kWfrr%$>}T>Cvh5F* zd_TB%_T>W~i}c0&`&*<9smkV&q*eNM;mmGhPBa-s0!b==I>61<*h~8@NC>QJR|H<$ ztWU(Z@1HW9<5+k$j9Ht-jCQC*Yx(}H4i!A_)7{6NT{|pcYr=MK<0oIsE8wnhC?UO~ zRrU9KqkAXNx&1lr=}@?~n`B_)8c>{4&$m%pZqS~C(A|v>w)QkLJKC1E%Bok9dq#A! z;u;2f{Oy8F77zl`>POur6ioD1c+;%>UzQC+CfV{s_RX(I*)A{0l2?KLFJAgslmd^E zjL)O{_SLr+d*UYcoD0i9OiKvkG~iBloip9RkCW?pX&TGr#oa_U6okw&4CMXbE5S*u zJxT1~n8>2CLbgr?zXwJnUiKy4evs?2-`uTl=vdA zmez-2WH_>TNQw$UQ9s~QfR?h7UOqfwB$P111CP4%=(wjO5tZ*rZ9Ni*PpPW=wCtOKMA=&)k6&E z)zA>3i)-7y)l2$^lqTtf7~P{!J^^W;3ViQANV3t~`#VEX}i<~JIhoasx%C&#pR`k24ul)<^1k@R6gN8o~zmg5n9PLaE zhC47Y(8`~A8Id%4yF2p9>*j{b%nf7d)e8o(y3IcKHbV zTaG)`5qqY5M2~jovNmnkAJUyQFL@jJA+L{atfl#ZR-y(>=Y_AmbNfK2^xVR~!@RZu z0va8NL{e)rPu-pCcJ0GNONa|(5EqoLQw#xn!5jVJ@4ov>9XVe1h|}E5GI(uFDIwghL;GSU zuIK2E)$R$*6TL>b;>doXbm6U7=63%mbw`A!&zA9UAl6MQIBaxXrvu<)>u zefIsYhdvO=4Qny}YkXCsfR7iKGEkhMbK%8H+pLAaC4zs8_z-4r{2bQK*|r<0Ke38= zay0X-j|C=Pxo(C&+q*g!ItiFOkhg*W|7Zpa<;-@&o549YLsnO?Fw|1)7~>D_HS7EZ zHJy*=OZ{k$z=x}&@XFfb*`{IO)|PP0p_>q#1ER(wR%dso!e0sKy1qL?!CVX`px-;WRSp5~&ep!c9Udts zQ5I=&B%vjM7yJ}OZG20Ap7p#FP#7vJsH}4%acQRd@i>Aj!eMzVCf|yTYB-gl@9jfYq7bhJ#M5fb!N(^0nBpW_b`N#>`o+rnh=NTiJ|s_7M;~48|0I@7oTO8xET;iWR$2}Q9J5h-?^GbqK{0qT;*Et zQ_Z^zJOJXNh^A?cv4)`28a_jf7zAKA_|nfJM{UPKe4{e2eSJJGRsZvLKoss8vR(Ln zs}rbvtJF6v8^`ZoU%xi@sxr|Gc|Nu>ebyHl&pS@4d8A#Q9W3*mp2m&@y8}+r^Vs&?kmMW(AfDhbLq`p!?!1|RDy#&r(IRqO-QrBz+P;Kr)fgba`zRo{$>q28UiXk3FTi!ie8$ysS z2L`zB_C_;y!`*bRAe%NNOjtA9SAOMXbW;$dy@3_wb#-xL-a(a()EZm z3ytSct+NF?6G#6XyQEn#ZSjnHaiy2}gPx-iD8SFa+0>-Y^9saku2WI_G{P)HId{mtDX`<>2miegHf1vt0#*PDus=SErr?ADi3E9>hyaJ~9GqzX#$ zPmZc59vHjmDX{CDVgPBc-~h4cJvS2SQg|UP)!MK4PQuN2SAiR7E4bP4&s0T!%OGRq zqih3VHVb)TetaA-Z~BtC-W4O}@2mss+;!%O&M~F=XsV39-3ymWAb8Ks%@voRJRydN zH{8f}$&Uk^uplIs<+1cC&`*pv^pCD9=gGshagHcnt92u8VSEqhgk}JCA&h+}Ms!efnHD*HzKM0}CF?mBlVI!ycB9m9H4=t&e6g z>5+!0-kOf#Vl}%Z_r*^iZd0(`<@#>U#_I;Bqkzs$#ev8HeQ&;|<80chcCpnB*eVHl zzaq=muD2JEEhyjKi^%Qu7mV6ME7C8kxFl(A)^!PA5e@KQ>U6dXX2LvK46%&b=3(uq zs5W#YT69+0ySlx~A;Sg70TaTt^jGOYcJ??BKQ$RUuQU`E1{B_PqffS!Z!ESjmq zO_!LvU+bx3r0<4z&b;9zO2VK<6eCQXCtli&?9@$e^ID8y1i&$1{Q09 z*Zv~aD$Vn)%utI%E3(ObHYL}-D@~u9ZP%}xxvI3A6|cA)Ay}zEHdwNNUr~c3o2qU_QvwhWd$#G#FXZH?W?^9ext4Ns!1GcWtN*HO|*Gy zY0=O*MI+VVKu)0hm8LYzZaySeL2P$}5r@!iP>u-h;f=JQJ`hz9?&eFpq;Ir^y>{f5 zBnvlQoKge}L>Z-(ffYf7vpdd&;U~9bTWVg1$v`GXb?A(TOuT8;X{xa1kc570)yA!E zO=(ll3r!2*`e*q=bqskJl*ixZd~33Cr5!_iZgV@J0k?;SkrS06m4fTB)BUt6+4}UO z*jInN97;1oh17an{QfP{0xPRJ$79|7Eh@P&e4erX=PbMmLaEL1^_@d^_69<504&xs z62sc>u@t3qRhn`ZS=+(CIkdN;G~BP$K?JwR-!!Ju3)~*M&E)N_66p19|9%j3d3`)b z@W=66=`^_Q^C?tW>tkeL4LdWiR7<*PABOHLLpjq&?FW@9ROPnc7(QcvoijF6y1$pOL|~16MJYcz<*TZn`31gU~B2*!&j5aPf!YWI7XM( zb#~Ib)vuaj#~gsl@7KL`fm?>D5L+0*&c6@dEq*Qq3Tj&4D4^BXKql}^yB5$}T+r`1 zTv6V6-wQK0=kQk0_SoZVOHT1%NZh-ROhU(g)mhN_) z!C(a{(VGA{zwDtF299BK2@XI@*UsGHCOvIt_8WH+!F-h#d#;Y#*LUd0-%E(;x>e*V zX}64F6aThuPnh+cos9e0inT4kvxtnc7;mi!N~pF%^q#HtnrZ|y9;rR_-jRds!wM-V z4>oJxyvZ8;{aBV2qCUK%LFN`Gv4M9Sp5{~XqL@wbq{x*&Ub-qu6wAW=fHE3(zJ@mb zq~w}5adzN7VOVg53)GpYX}^}9#{yStcX?ApzODqr-;}CZcs!OWF~_WZ>Qhly=M`70 z8Pe)oMjp~=&InV3F>K%h5ZaD>3Sf7?2gnj*$TKD(-hu&kkj+}&l@BwP~cd6 zkb@{>Q!pcx7SYW(A{oe}E)}J#Pn%GaZp_a07gnr|sx4%Du>ehJ9tQHL`Rz`EMrhD4 zSFD6w`uWu`?F4X->tdUk4gdIyjPAH=6?{o8g5xG3dv8akxdH+6)a*bfp)FZnu+exF zo(t5MBB!`vo8kvR%>)y^*{FiI@#Ie?MVh*FZ*RhMw*^tl0?4ez)Y6`*P1=#hRf3$_ zG69h!+l0ujGuY>L~TK%7A~s2HGK`e_DXV$(olq%*D%4!OIFE z=p-afE13Z#kL4a}(!>IBZFHfpG)(o2_{vb#**?(zrnl|yDY)JrXMC-?1JmEDzjwz<@4o<|k1S`()oG60Lr?a+?LRaREAws$^y1;zqUtn0iFT>H%g z*q?Ie!ac0eImKVbyTfLN_m19-prlv4GeFfp>*{>w&mhrN|0l(C-7aOT454 z_=ID0Umqa#7*<(fOk=+@Li60jcY>Bcva0V~4*`^C>9!_*qCBB1+l>0*Hk;^G>DUf< zMmo?4C?K@xIaGVt6CbdTfNLTc^!LuVX#|8x}iz>h->FMcP~QG$9;BsT>8p1?mTH!gNd~Lq z9;(X)NYt2N*30BLNRT0CWn2cm`?r(S=PGMh)Y8`fZTbI4ETGZ>*z6MQF{GXXN?Nh0 zLHZtyY5@<1Ef&Rb+nfQ(M#&C(1%jhLdARwlB>OjDgmkeRR+;Qk*XJy`*tHF9- z-~^~T^DUrq|AI@Hi0tYMetXj~n(fb^)sn$BG7|?7bgkR4vOHio zkR6_APLz1qPP!$>%MQZM_dvs+8LadM05_b=~`2KaK0U7+~w`QtN-O; z>HIYO1yfVgL3)IyDQ?28xfTct-!9S*R@B*nCfUze+(BUHg7Dw*nB4cDd=0Y8qNQJn zhtsr;U;nM5#=vv(+`a^u5%$T70qg!AVVC#U(6)?s|L-jD k&I0c&@XiANbqj1rHXCxun>V)yVHbut=KoFI*B5{MA3-aE_5c6? literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/Popover.test.ts-snapshots/Popover-Default-light-tritanopia-linux.png b/.playwright/snapshots/components/Popover.test.ts-snapshots/Popover-Default-light-tritanopia-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..b3ba0d6ae8031770120e1b9f0b2f0b651f5a86e2 GIT binary patch literal 13964 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∋v$%R~YiH0AVNSAIt%d?L`Waa5buzCg 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%0DTMw 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%0DTMw z`~C)??=aXu!Dz#O9JKZjl_F|Knqy5R69&768i6J*RHmZ~lW>%#+q-7w=I){fOh6br zuMiTf#k*s=hP?xQc(X}YTUKI$bxY?@N}bcbxWBjvnn`(i((%~x%2-(;Xikp$VcS&8 zk|A-MD9L1~#6x+7@=sX1c8mAIrf*J66V!wTtrlJ1IU5z;A*q+ZWAe}? zlq@fAzo^_aPtPHQay$It{)y=oz#;m8`ivz%1!xJ1-KCy}<8F6d$i%*@wrFlAigitX53ZV5G7u2=|8>jOGKoP3O) z9h|N?)4aZrB}x*#H4BgIy=Ah8YAhEv(rIUV8AB-T5yY5=XAgD3q|>t9IKcF6=<%WS z=dVFO=wTGtM7IaZy{nB~tGY<{;>VWq0pYY}&=lQfIgGuaq0;SU&&}yW&~Ov=cu}ad zXL04;E(z>=zgp01_}Zq#!R2S4^>o=|B`B0TNU^7S#;Q-}l0hfo>$b%8?uuM%h%#nH zd7^U3V0J{}f4PVhkyc#XX=87%+~x!u;DHo6el4_{41Yso5uV`3zSF^l^9v5eY%3!c47UQTVBonjjvssKC&6s zo^lj~JQWyY#)MJTkM0WA!SPG8ZZ(VH?zir)hz~>+G6%O{=G{z$Gd`|Rab5Rv0V8YA0#5LQ( z2REMyl2NmdM2EpdC1nI=a|S2z@31T*r$i|v@DPKTIMJxNcyUQP&+N-{Fx7LC`~+xT zea(>Sf z>nqGBsuk$!YGEN5>8TW^QH}E>n=c~*#}CccAmf8Wsv5Y-J64`1Y11F;pf*hd^NAZ@T2SV%w~deKJ%a_ zxcQ2F2=XLW2PfhRHuv(mTJz&Ct-0tDChC)QkTYiu^mItUd?*ty5sY z1%jorKmIrg+#@g*1O}!+${4lW{B5gefY;<`a8d;n)eAE(p`n%YH-NE=NWk!VT}me0 zfp^a=1Fan}UgiFOd{m)OfO=EZ&`?$BEI&UyG7@?wICybsiIezGSkT8{gy_-^05BdU zX$FI!6BoDq<|{8R(@~TQ=&B0_F0jN)19SpF>(SADn_#9n+6uixA3fuq2ewvVfulow zeZ2s*^qLa{d5epm^Q(&hrrX%qgmg*-|9540N)z)w34~qO>Y0uzP5>m`(EIAYdt~YQ zxxBnDJ$(e#Th3E}z%DL*{`|wb&Y~h=b%O%~_W&&hklzl6x@6n8?uK0UENd`GbS{it zkSPT-6VRJ+3j<%(hV_RpeFr<=4_3f8*FGj1y6_kck1jowgRI)UC8Ar%z!$ z`bYKJe}<;V01T8wj8%bAq&D_&2eShB=Rk)791nnc?5FXwcR$RR{dAl!Y|HzwMLg=` z;{}8DeiLKEPs^H{E15U6U;OVWwy?gFYA!CyNf*|0@ZX2~YHt1m#Pwfk66~+r`Ij5c z`)f)5T9SXknbE(}@~^b~D=q(3Cb<84aQfZ_?NY+u6hB=5>Jem7{Pp{< o2>ca+zasEg1pcQ-;1O(EKjcO6m5w%m@-UaWmE#h5RzzVr7D63 znIUlk%B;*`NKh&vOhHB=0Yo4n3<;8ukokMI=X`5@>s#NC@5ec3y=SfdfUwEV&ffQP zKi7R-*L~mm$=!MTr(b>wgTc1Doc!@;7)(b3eqev!4E}TbfLRoH*@XGo`3G24{~iGh zwio8|MW>Hg}PZqw>FFdQ5 zmzPk|#I?9QKU(PfwZ+5IrmeTEAeTV6f@8>rc zGj#&T|FjsxwrcouH(Sw;D0(WKlJGN8B z`4PO?1f2n!GUZJlSlkr!%6MVZ!z-d);+P%luxIZ+lfZs@7J5tGcqB@<3&+)lq_p^0+4d-wAB zrbD&pzTQ?E2Am1Y^8Cf{x~y*P+qR$2_~ib!eY;QHr87G%1G%I7UXW6|ySwWm#w=Fg zaVI^4gQt>a*BcB!xjujI;g+C-F_tXKQup3ET62Hl5V!Sk4BcXJ)1^N2!lp|_4OJGI znVA<2vvy$ky)Is%Ug7YOhV^e?W@zw$m2rXz+wI%8M>%a?)djDD!8Sj?^iA!tCkAu| zPAR1;wU=H$ZZOojmU8^gPVi7l@b~rk)Q4LhW|ozO+qWmr_r7~|M_v30EbHrqO<<+J z|HTlj?57}F|0)O9?Y>)_daVy9`j=}BlQw2lQY@pdA1)dkoh2+MjE9b;8Xzqg3{A6L z{>;EJy}mc^XJZw)Xk(XiD8hOc)s5d@$ceOoy>0VqT!+C_=zP1V#6^Ce+wtSa6RTQd zH*edML!~H&;)H_^V}TeqzjT>V)Qev}rpc!88OC?--i>nH4qJ@|D{B|8q4DQ=`Pv-g z%hU7&NTga4X&rJ>${`_-PInf2P$@=+YsnzMuniM4+Lj>N>w#y7#scwC<&z zeex9%DSNv;_t^-}ZsO7t)gp5SuhKY0c{YkUi<%?tV(Hiyb@~STA;|q^c8WOo4 zL`4P^8YFU7V(bzc8mjBK&<>rgFJ3(+7yr(&iqxw8q$qS@yj6m#i7RU-jE4-liTR&3 z&i}I2^4j!R&{a=QC_K~t7`G2!g;lQ$rWvGiLW91QvA2KxaZRk2pdT+A-@<|DFiTG9B@9-I;D{Z(s8K>KXF>&*YQIjQsw9=8(CSePYE@ zHM(V`q33gNRBm9~IXAM6S>#Ew1jRtn#gn2rUVcpfuO`&q>zj09H6QPKN>Jt*vx@U0 z^IR<%j((A}Pzp|w%O%JH1Z})L2i}|D*o6zO9}(wPu*NP8+{LZt7_YNuLwd{`Pm#HZ zi$9X*e&3hgtEcB=6CWQ>QXSu^g4?2sBxj1H_ ze3_5PE=-t^>yQvzckevllJMp-6Iwd`c-bFjzQgy9CU2hq<4Jn>xaiGnTAwalc<=V@ z+m45MFSdb|S1#Aixn&&B66v(3yd>jcS-V%@b!>a7`UH9Im5XH<*gf)I65&Ad=Iy6E zJw2tPzn|o7gfB8h#HMz3C*~m$*R#^33Pg^jLa` zrrK(S%}YEvpUTEEuvf@)gEJkN@uKYgE>$fvHzVsu&IuSA1&${u5eqy>-?EX~B%+Kn z&AYi2)1}tqX7^Yy9FrTy4}AXl=Yom)hz8|gf(to=m~`>P-7hl}Rwm|oelhZP`A&OF zoO^l2pecOi*)blQN<~v~2TTf+VtaP)oovCfcQq<6lIKj24*T~-x0o9oiR&_NoXQJf z<=evA8SKv!VH3lTQjD_vqTBX2auZ#JG@0f2+E&y_36*XHui2}6&Lr9{>U4!Dp%iwOwz zAh!rxO#wufR#mw(i0ZY@-7z7{JAyNeQE$R~j9H_}oAt0TaCYXjHyXr0vS;x+G8MA`Z5n1x}br*8x zIp2c@@c3{aqIS*IvIL|!^l=I?@gf-@mc1Lf;L6KS#%E1i_#nb3-Q3)YJ@P5Wf;W$j zHOC3a^D7DDsBbLr%gNKjmja}Qr&$y=~X6p*9mm<)bp zu*Lajd!L-R>&u(fff@Beu{_JBI1SdK(~Vibe7s#BNldcPC%S0XMkhyF;ze1;xek~U z<;=coOG{qf0hJ>%elKNcaS69BCL0H|B)9=m@v{$Yu5CHjT649P$K&-D$nkJEW+`BWuIh;d0Ee4rJOHFR$F_fR_3_+LZ+la&B#y zh4}rZ>v{(O7x6TqT)Eg2Ae`>0$aVetSwv%WC4KsdGuxQen_Ic>IX+z|lCMkjhph3^ zWwXH6!{Ej%)4aXBMq-aO=GJEYswu=y-Pa;`3~??y=|DtvTf(ScOxx*vJ10G)>IykT z>KC)e#?FrSdxtJ6T*#;5tLDFrCxa_(P!UXQcs~-AhEN*3APC3#brnBe;|!O24n1*B z_rEsto8YWpzG-#S*Wl0{EEHyR9NoAqOE^C^JpA-nimuPIprhoc&N9Ouo7pWmxHKX> zeDHZNGwTnLri%I%Y*qAp&hYyD1WKrMC5N0b!(^e4+pWxDl~<7VCzn^t|#e^dB)??JDdi`u!Vs~rDbK^AWO_$S4!F( z%+rz5Yey26bM~blv2uxJcHK9>fS6&K_+<$giivWFXkfHzSqUb)zx0nky0|n9QZjat zNFY!MQkt=Av>6ug0^Sr}CJK4Q3+&X08o?dAGE)%y?Lw+*7FKn(|AwLZ+aUT!M*W+)%+W%2Cp!3Wh zuX@hJ$O5pT`ClE29oGg@wg^dkbvEmsWN6fD6A{((Wv12P_1gTH*4)~D1Y9o_x0gDR zB!&pBXNh}Xn~a-b>>%S}Fe4-0p^cLXuIYwOR%mI#HvJ%=&S+?Y_} zE;bm}#VceY>c`u+BA$A0f}Qk#wB;d;X^1&((K1&9@-(cZ5Zm2tT21zgraLGJ!HnLV z*NWQp78+mWpo}VMj618zJTQ7JeCO?xHw5yuXR5- z80FN-h|CU1=sSpn?`J!TPfMpT)eVMxWFROdwS(QJ{1{7>d3Bo<6y?WvEW6Q28O>j^ zbSL(8HEFVQM;3bBcC>3N+lez8412Z*>`>Uo070ajX1|Tvj9wfr)ptsaI~Nc?k|f1Y zds6kSW7YADn5Flypx=U6PO#NSaADJI?D~i|`u)3C@^0@0cKZz-%vd3IzFn;cRT)mA zBkcTF=VSH0H!ZTDrF>qvUj}QX5gIEmX}K@NKXa9fM{Y&OtLDhh{Qr9yepIfP$^ie z^_&1FzNP+~1Xh=OHJBOJwm#aU(AjKOAH_7l_ImCxX?StAHL88H4kz(%u(t%jvnP6Y z$F$x@Q*a01qE^pxk<6#u!|u(MT7-1CvjHJ)0()t? zrp>$B3j>k;fF~#BU!)lIyJ=-9%XFr&r?su7#%c>mi>J+x`mMd~(Bn(tCwPE-x-!!Y z{GXW_~B7V7J_2_x`vI_LmVb;%xXVe)+mPNfEU(}Dd~ni zu|ng^?wEwhs4TV7@de|x&OOra z^wL<*E_C=h@t$UQ^w%@m>|A06q1h0$^;onl=RwgXX*I5W9Flt78px+@Upju1?VosA zh<{5@ZN|pwBG-ODd-iPWtgR^1ns_x#DDP>*ZM=4lRo}G_VHPH+veRpUxZtg6)zhiC zjYp}tE2nRwVqNUs1SK1@&`9Mtq}@Q2ua@iEbFXwjM^rVJPc~lC`{Eu7C0T;LMM!$9 zDZmIFe4^?{e5Kk~KInN!O(rw6ZO{c9Cc?{&S=o%WdG3{=yO8etAl3-|4uC(6A(dx7 zYG?icjDoOlP0Ov;q#SY43ii^vgS;?d%7Kkg`fKb2F_lsyn`=My9~P%NO5PqD2Spq6 z?v_c|!mbn^6Nz{pN~NkK4=P&MPRVD!N(o7y#Ij?m)lq41%|_Nk<---Fuq8(K@Z0PD z*IxWK9>I3P45oYZK75fJ+oh*_*@0;FB#$g1oc3h=Ss?`G06i)tfC#s8uL>xqE6=QxBbW6fY?CV#%(3SP0-7_f$SxyPl z`>>NZZ+EAax=5!>OQ8sNDuNLEesu=7vOZ?DynDLqnOfS@s=(Jp*m*QjR9c zFHyRD-@M_?<9R$MhCw*NmGX*YiHfz4gTgU zoW>Z#Cee-4IfuR?k>vCKq{;Yk65|3+IF8P`tgIw8+oH4+2$~wC&)^&jxB6lWM!C|+ z$56FNJ$vAy8Vn?A@}pZ1W}pfRPytsi6uT4ZL-A2j0n!P4wLk7vCT%^-Zw(OpdBsu{ zyRwm+r=#b%N~Q0Fwyt2R4Nr_4K7)Jr-ehefIGw*-+uvW-cCHVobxH_px9$_?yZ!Uo z0TfW}`Olq=dIU%Uf(VRP=HkPtwEN6QmcO+dNVgS|R3G9nnOMs;fAlggQ=la`2oTVgN= z<)krB59H+H5}!)?Dx!)O26%Y;ja)|1Q3{TiJ1Rb%(===*!WP`n*}^NmwPR>wbVOyG zi$YOZ8K~1*&60^rG=uP?0(^V?Sb#l?T%>{`yH6A6M-J(@Yu5`oI|U9H-?aCD&hkW- z4DRB-k1gpN7sLAUM%LCl^pFp1?D;jO7HsbX?J3ARgmj4qLO#b>{dQA(N_BJP7T9$T zxE_G^uHljReqH!-&ed5aP_PH}53L$ew~7Xy2Lp+VS(VYVV@UiKSA*c9%)|pO?&@*& z8W+P3g~}Q>9vLqM$>HK`$gCJipk@$_&4#P5rIz&T^vH*E<6JIR9# zzRVrKj#bPQ_Z*)pPlHvISGtn7F_y_T_S#@-clYhauz-VL?+*UVo=NUkH-N{a;x#IT zu?y4PUsw+z4`W*E`z0238i993kY>R1^q%b94{y^E-kO@Qz;ZhhSt?| zMB$No%Dg(w)6YBKzNC#Nq47sb8WLE$jUgp7bxnO2a)B&cSAS@jOyHc(wc0=1neJ!h z8W1&VbZD=h)7r`M;NjuAo>Qik+_iO}XMCfms&{kSIN0fJ9PM@0>a$}QfLNibjrR^> zi8V0mqfUV;#5<9;C-;d~>8x)Ra`Gne>ZO~gI*G^!b%;dVY3}YF_s+XI3rw zkFD{K-}#bkY;dHGekNe7D!^Cc$gkY%sA-yA(Mv@l!D^LOMyQ*b8|f6~X#S=?QBuhagpsI4e9z+sX#l^hvai6$_1wSp=EAY1 zS4em&O_Vq^qfWC1?%(i;1)*SKVgfQiT(TTX;KDC*UmR;-te( zVo3TL=@cqJz4F!?#vExKf{8AD3618kgPNB!;*Ht|C4CRcv-q@2aBy%Ko6biEbk<5#CD6%F51qd!u<3x#s+p;nDZc&#w;#P>{~@-RK_squ6RQI>oB_q6RB3>I`R6D4&t9}=?bhyh0j7WL z=tM;5yNn&aboWDy|o#@KrBJCDMlL#(2_b1iRPx222Kr7Sp1n3BUT;Q zDSU*tMwF><6?ani@It#pFl3@u%GhjoxUIK8F7!xzSszp#maj7BnI`JP(0gA-RNS|W zVh}d#?zzV_#Hn-|ErD0Yc2vhDOoe7kgp+W!V!iLIqKcoG#u645l0x-euitr%^Loi&Q?25T$Ojj1bsjVJfC?V+^C!Dzw{~NP%S7`ue&901kjA@c8b@C&K<* zbiwPIr$oqR03r-6?nC4j7Z(E#-Y|{WVt6fR)E8d~D2e@SXIhV(UzoiMmGm8pJPp?* z1D6hzw&H-6yjGx{Rnu;yE?^|qpXMlm+mYdca9FBn2`r|sow8_M{l!r}W`Y@?&xX8< zaZI|Cb#P~@YU9rx*4I`aLbQRZm6V(=IQ(4+CBYY=9cP!&iGg4vudRrPCN0Y~uIGF& z7qvR9^l_~hDgLWHTeB1@H79GH>#UWf*EC(e+6nxfEd+5s5JSM>QV3Mb4?NeF;aM^f z;N4b{Z#06oFi~%=wF$(&X#9eq*ket$$oIDjV!IFekkp!7TXcd()QNmrTueYTzT&Ud zw=sY}cCp7?TsuU}(zRW|{P~%4Sg%fH%*m#y#HIP0`O&?voeeSzvE%!x8c9j*!wW~N zXbO9pgzV}kT>@@z+7ZP9B=p@tQ&ap>%;vwlW7)rO=83jw7C6$y4$G^@tb^J&LtPWV z*1qN!5ZnWSFL(}PK%DywYPs|ywJMb;G`n%aF6eDL=s#T;56QSYG(4OG7zYCK(PYzD z6nSoV$h~JVq9RM@roq5k4v5+wRhuYOY0$t1Ru6Yg+k&EyhzH#ABot&%`b%);{aqBi zG#G9K>p>m`R)UfDKz0Ri4h!Mfeqc)Y(q$_#BsfZ`KRl z0rCYOfV}`cdhimPlR2%5a#fY$SW=fQvUU(3rY-AddGK}Sb<*1P&J$=ue?uK3ZTufSf)g~tT? zrR%^duAeI)Ic)mr0dO@z569Xo(<|2-X}K=ugE~g5WGV)Lw1!YHpgGPhDj)!;sVqPT z8Vt9>&fkFioc!~+qRc@qx4@?sUG)6<)!%N*Kk#d);Pp{5dA$AXU9h(upv%4S2GG%> znwoFLnqygy*#J8~&&(_>FOOI{1H1nD?+>@U4fgi)%g3#Q4u5L;2%t#AqoWPbSi+}2 zf^~adURnyusHb20`{%yHZ*ruzwxAUcd-f3+Fi2Vk4UTh7>|WA6;P;>P^7=5%0DTMw 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∋v$%R~YiH0AVNSAIt%d?L`Waa5buzCg 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 literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/Popover.test.ts-snapshots/Popover-Playground-light-linux.png b/.playwright/snapshots/components/Popover.test.ts-snapshots/Popover-Playground-light-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..cabb36e5169402fc626a33bdd547a86e397717ce GIT binary patch literal 13953 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 literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/Popover.test.ts-snapshots/Popover-Playground-light-tritanopia-linux.png b/.playwright/snapshots/components/Popover.test.ts-snapshots/Popover-Playground-light-tritanopia-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..b3ba0d6ae8031770120e1b9f0b2f0b651f5a86e2 GIT binary patch literal 13964 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∋v$%R~YiH0AVNSAIt%d?L`Waa5buzCg zl1PhBy}CYcZnrX$3!h0EpRL~Q+55}dZX#QdItRkCl&}JXZtKW0bVx+nnIX)K9`|&P zfOY^{o-QfUs2EAKVyif;anxjW-`+GE2qg3#CJS=z9-!Tp4ULZ9Q9EY;u!XkDY_6`h3acr?oO#aVWa{h~|oHIa3Y~tM3iv;kM zb!}!aVODKWUWS;g<&zz1Rqyh1<}SPW=`IU+MBLaWudP*5%zXly56}xz4CKb` z_Xa4)Z>vD0ntfdmLN8BU4%sV)TZ4^c8lisj2}$`LTU}qTpE&<6ii-~xw92z5lc%hK z@~%MDyFAXuBfU&&CSwB%)bPJ08%9*^#J@oH~c(m#uyBBTuTN8 z{$CwpK|2&Xmme&Fj~f7cYtV%L^;eY|^sN~JKucK;8b#)8iOtH6!8g@+fIxm@dj@z{ z51ptQNcT-2Yn%X_bYsMl1+P#pI)@@yfY$N!MD%uH4QO^Q3{lWiO>=DscW-aqHPx?X zR<2CDak_2XBH%NBHE9x^5)@A8gVM32nh({-=`q?s}Qrb^67?E>Ax5w%Rb z9kOW({BUJ`Ve0U>@*T;)hBhn%{ZxLSL%MCIVfxi_JqxSa@`QwJ7s*p&q7bDP6FnHe zezBj}#|z}8whN0mWE2lX|7mQZvfH+4Y+uY(sgtBXX`H)SBoE@3#60l_t;<9(jc~Ph zs6#GDwG-aFYjJ(})xQ_d0t|c~>Ql%beMZMBYD+3pIP_t@=n6@;qa9_hVA^uFzgZ$s zAAGsB9y@P-XvBAo_}TaVpabxqCto^!@c;x0kbRiok+HFwn(okcNM}J0)fBSXZw(u> z0!Dz%n^P`;Z%=WAyCz#)`ufj=)eK0%Om}vS<}CPj15GZCHv8XaVdFN?yf;;@*6W8t z?||6f5y;OT0%m_XA>giAlR)KVC4d|~s?NmSwH1`&t@B~!KtBVi6 z0g(Ab1iiEfW=gyW(%R%u*fua7b&DVB0r|(1q$MB!mY9OGg~z_hJ?PnA_$=%~phH7t z&(^S2d{8cLu=q(Zdn}6C<_&!O2FxcxcIbjhp^R%IPtOOm#1=(>e?YglXl6BlUZhF? zpgVfT-Q685v|N?~nZ|&mIrQjbGf1b}$o4hJpEo`N9=^E#JoZf^kkBt}+YhFtYQx&cbZswR zIGM98?bX}0+~H@zC17gm#`b%lkzOu|3)GA+bh&27&!4|xEX>j`1M=N4C9VOCYu(s> z_J4-P0K?Ad2Mk~s@7@6JZ|YuR6*d20ItEn8q9ThVRCjg-nB<6QT7O@*4`mG51E%M0 zcv>SAufPnKIT#OP3%8A1v^}0v{~!!2*A!1u7u{?APlSC%)6j9}ws%k00 { + test.describe('Default', () => { + for (const theme of themes) { + test.describe(theme, () => { + test('default @vrt', async ({page}) => { + await visit(page, { + id: 'components-popover--default', + globals: { + colorScheme: theme, + }, + }) + + // Default state + expect(await page.screenshot()).toMatchSnapshot(`Popover.Default.${theme}.png`) + }) + + test('axe @aat', async ({page}) => { + await visit(page, { + id: 'components-popover--default', + globals: { + colorScheme: theme, + }, + }) + await expect(page).toHaveNoViolations() + }) + }) + } + }) + + test.describe('Playground', () => { + for (const theme of themes) { + test.describe(theme, () => { + test('default @vrt', async ({page}) => { + await visit(page, { + id: 'components-popover--playground', + globals: { + colorScheme: theme, + }, + }) + + // Default state + expect(await page.screenshot()).toMatchSnapshot(`Popover.Playground.${theme}.png`) + }) + + test('axe @aat', async ({page}) => { + await visit(page, { + id: 'components-popover--playground', + globals: { + colorScheme: theme, + }, + }) + await expect(page).toHaveNoViolations() + }) + }) + } + }) +}) diff --git a/generated/components.json b/generated/components.json index d04854674dc..907dc95d36e 100644 --- a/generated/components.json +++ b/generated/components.json @@ -282,6 +282,50 @@ } ] }, + "styled_octicon": { + "id": "styled_octicon", + "name": "StyledOcticon", + "status": "alpha", + "a11yReviewed": false, + "stories": [], + "props": [ + { + "name": "ariaLabel", + "type": "string", + "defaultValue": "", + "description": "Specifies the aria-label attribute, which is read verbatim by screen readers " + }, + { + "name": "icon", + "type": "Component", + "defaultValue": "", + "description": "Checks the input by default in uncontrolled modeName of the [Octicon component](https://primer.style/octicons/) used in the" + }, + { + "name": "color", + "type": "string", + "defaultValue": "", + "description": "Sets an override color for the Octicon. Compatible with colors from the [Primer color system](https://primer.style/primitives/colors).\"" + }, + { + "name": "size", + "type": "number", + "defaultValue": "16", + "description": "Sets the uniform `width` and `height` of the SVG element" + }, + { + "name": "verticalAlign", + "type": "string", + "defaultValue": "text-bottom", + "description": "Sets the `vertical-align` CSS property" + }, + { + "name": "sx", + "type": "SystemStyleObject" + } + ], + "subcomponents": [] + }, "sub_nav": { "id": "sub_nav", "name": "SubNav", @@ -3189,6 +3233,65 @@ ], "subcomponents": [] }, + "popover": { + "id": "popover", + "name": "Popover", + "status": "alpha", + "a11yReviewed": false, + "stories": [ + { + "id": "components-popover--default", + "code": "() => (\n \n \n \n Popover heading\n \n Message about popovers\n \n \n \n)" + } + ], + "props": [ + { + "name": "as", + "type": "string", + "defaultValue": "div", + "description": "Sets the underlying HTML tag for the component" + }, + { + "name": "caret", + "type": "| 'top' | 'bottom' | 'left' | 'right' | 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right' | 'left-bottom' | 'left-top' | 'right-bottom' | 'right-top' ", + "defaultValue": "'top'", + "description": "Controls the position of the caret" + }, + { + "name": "open", + "type": "boolean", + "defaultValue": "false", + "description": "Controls the visibility of the popover." + }, + { + "name": "relative", + "type": "boolean", + "defaultValue": "false", + "description": "Set to true to render the popover using relative positioning. " + }, + { + "name": "sx", + "type": "SystemStyleObject" + } + ], + "subcomponents": [ + { + "name": "Popover.Content", + "props": [ + { + "name": "as", + "type": "string", + "defaultValue": "div", + "description": "Sets the underlying HTML tag for the component" + }, + { + "name": "sx", + "type": "SystemStyleObject" + } + ] + } + ] + }, "portal": { "id": "portal", "name": "Portal", @@ -5179,4 +5282,4 @@ "subcomponents": [] } } -} \ No newline at end of file +} diff --git a/script/generate-e2e-tests.js b/script/generate-e2e-tests.js index af9a62407b8..5f0252a213c 100644 --- a/script/generate-e2e-tests.js +++ b/script/generate-e2e-tests.js @@ -794,6 +794,21 @@ const components = new Map([ ], }, ], + [ + 'Popover', + { + stories: [ + { + id: 'components-popover--default', + name: 'Default', + }, + { + id: 'components-popover--playground', + name: 'Playground', + }, + ], + }, + ], [ 'ProgressBar', { diff --git a/src/Popover.docs.json b/src/Popover/Popover.docs.json similarity index 100% rename from src/Popover.docs.json rename to src/Popover/Popover.docs.json diff --git a/src/Popover/Popover.stories.tsx b/src/Popover/Popover.stories.tsx new file mode 100644 index 00000000000..1e4fda61660 --- /dev/null +++ b/src/Popover/Popover.stories.tsx @@ -0,0 +1,69 @@ +import React from 'react' +import {Meta, ComponentStory} from '@storybook/react' +import Heading from '../Heading' +import Popover from './Popover' +import Text from '../Text' +import {Button} from '../Button' + +export default { + title: 'Components/Popover', + component: Popover, +} as Meta + +export const Default = () => ( + + + Popover heading + Message about popovers + + + +) + +export const Playground: ComponentStory = args => ( + + + Popover heading + Message about popovers + + + +) + +Playground.args = { + caret: 'top', + open: true, + relative: true, +} + +Playground.argTypes = { + caret: { + control: { + type: 'radio', + }, + options: [ + 'top', + 'bottom', + 'left', + 'right', + 'bottom-left', + 'bottom-right', + 'top-left', + 'top-right', + 'left-bottom', + 'left-top', + 'right-bottom', + 'right-top', + ], + }, + open: { + control: { + type: 'boolean', + }, + }, + relative: { + control: { + type: 'boolean', + }, + }, +} diff --git a/src/Popover.tsx b/src/Popover/Popover.tsx similarity index 97% rename from src/Popover.tsx rename to src/Popover/Popover.tsx index 4fcc53d8524..3048627c793 100644 --- a/src/Popover.tsx +++ b/src/Popover/Popover.tsx @@ -1,8 +1,8 @@ import classnames from 'classnames' import styled from 'styled-components' -import {get} from './constants' -import sx, {SxProp} from './sx' -import {ComponentProps} from './utils/types' +import {get} from '../constants' +import sx, {SxProp} from '../sx' +import {ComponentProps} from '../utils/types' type CaretPosition = | 'top' diff --git a/src/Popover/index.ts b/src/Popover/index.ts new file mode 100644 index 00000000000..43a648fdd86 --- /dev/null +++ b/src/Popover/index.ts @@ -0,0 +1 @@ +export {default, PopoverProps, PopoverContentProps} from './Popover' From ccf9704621ff68393fcd541f943fdf28e91f159a Mon Sep 17 00:00:00 2001 From: Jeremy Neal Date: Tue, 11 Apr 2023 10:09:00 -0400 Subject: [PATCH 08/20] refactor(ButtonGroup): move files to folder. (#3117) * Reorganize ButtonGroup component and stories. * Update generated/components.json * Add e2e tests. * test(vrt): update snapshots * refactor(CircleBadge): move files into folder, add e2e tests. (#3118) * Reorganize CircleBadge, add e2e tests. * Update generated/components.json * test(vrt): update snapshots * Update docs reference. --------- Co-authored-by: radglob * replace createRef with useRef (#3124) * replace createRef with useRef * changeset * missed null * refactor(FilterList): add files to folder, add storybook and e2e tests. (#3122) * Reorganize FilterList files into folder, add storybook and e2e tests. * Update generated/components.json * test(vrt): update snapshots --------- Co-authored-by: radglob * Refactor(FilteredSearch): move files to folder, add storybook and e2e tests. (#3125) * Move files to folder, add storybook and e2e tests. * Add aria-label to TextInput, fix docs reference. * Update generated/components.json * test(vrt): update snapshots * replace createRef with useRef (#3124) * replace createRef with useRef * changeset * missed null * refactor(FilterList): add files to folder, add storybook and e2e tests. (#3122) * Reorganize FilterList files into folder, add storybook and e2e tests. * Update generated/components.json * test(vrt): update snapshots --------- Co-authored-by: radglob * Fix generated components. --------- Co-authored-by: radglob Co-authored-by: Matthew Costabile * Refactor(LabelGroup): add files to folder, add storybook and e2e tests. (#3131) * Move files to folder, add storybook and e2e tests. * Update generated/components.json * test(vrt): update snapshots --------- Co-authored-by: radglob * test(e2e): update ActionMenu e2e test to remove custom contrast rules (#3130) * test(e2e): update ActionMenu e2e test to remove custom contrast rules * test(vrt): update snapshots * test: remove multiple sections test * test(e2e): restore rule exception for ActionMenu --------- Co-authored-by: Josh Black * NavList SSR: use useIsomorphicLayoutEffect instead of useLayoutEffect (#3127) * use useIsomorphicLayoutEffect * Create .changeset/fast-panthers-refuse.md --------- Co-authored-by: Josh Black * Bump @primer/primitives to `7.11.5` (#3120) * npm install @primer/primitives@7.11.5 * Updating`theme-preval` snapshots * Re-run ``` npm run build npm run test -- -u ``` So that /themePreval.test.ts.snap also gets the new timestamp * Update `theme-preval` snapshots docs * Create .changeset/old-falcons-learn.md * test(vrt): update snapshots --------- Co-authored-by: simurai * Update RelativeTime stories (#3136) * Update RelativeTime stories * Update generated/components.json --------- Co-authored-by: colebemis * chore(deps-dev): bump @types/jest-axe from 3.5.3 to 3.5.5 (#3141) Bumps [@types/jest-axe](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jest-axe) from 3.5.3 to 3.5.5. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jest-axe) --- updated-dependencies: - dependency-name: "@types/jest-axe" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @rollup/plugin-typescript from 11.0.0 to 11.1.0 (#3138) Bumps [@rollup/plugin-typescript](https://github.com/rollup/plugins/tree/HEAD/packages/typescript) from 11.0.0 to 11.1.0. - [Release notes](https://github.com/rollup/plugins/releases) - [Changelog](https://github.com/rollup/plugins/blob/master/packages/typescript/CHANGELOG.md) - [Commits](https://github.com/rollup/plugins/commits/commonjs-v11.1.0/packages/typescript) --- updated-dependencies: - dependency-name: "@rollup/plugin-typescript" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump eslint-plugin-primer-react from 2.0.2 to 2.0.3 (#3140) * chore(deps-dev): bump eslint-plugin-primer-react from 2.0.2 to 2.0.3 Bumps [eslint-plugin-primer-react](https://github.com/primer/eslint-plugin-primer-react) from 2.0.2 to 2.0.3. - [Release notes](https://github.com/primer/eslint-plugin-primer-react/releases) - [Changelog](https://github.com/primer/eslint-plugin-primer-react/blob/main/CHANGELOG.md) - [Commits](https://github.com/primer/eslint-plugin-primer-react/compare/v2.0.2...v2.0.3) --- updated-dependencies: - dependency-name: eslint-plugin-primer-react dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * chore(eslint): remove unnecessary disable --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Josh Black * chore(deps-dev): bump babel-plugin-styled-components from 2.0.2 to 2.1.1 (#3139) * chore(deps-dev): bump babel-plugin-styled-components from 2.0.2 to 2.1.1 Bumps [babel-plugin-styled-components](https://github.com/styled-components/babel-plugin-styled-components) from 2.0.2 to 2.1.1. - [Release notes](https://github.com/styled-components/babel-plugin-styled-components/releases) - [Commits](https://github.com/styled-components/babel-plugin-styled-components/compare/v2.0.2...v2.1.1) --- updated-dependencies: - dependency-name: babel-plugin-styled-components dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * test(snapshots): update snapshots --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Josh Black * chore(project): update project to use Node.js v18 LTS (#3133) * chore(project): update project to use Node.js v18 LTS * chore: add legacy openssl option for docs builds * chore: update devcontainer image --------- Co-authored-by: Josh Black * Use SSR-compatible slot implementation in CheckboxGroup/RadioGroup (#3146) * Update slots for checkbox group and radio group * Update useSlot return type * Update exports test * Create .changeset/young-queens-notice.md * Update comment indentation * Add segments to progressbar (#3114) * Allow ProgressBar to either be given child segments or just a progress value. * Update ProgressBar docs. * Fix progress bar tests. * Create dry-weeks-compete.md * Fix errors from CI. * Rename ProgressBar.Segment to ProgressBar.Item. * Pass backgroundColor instead of bg to get away from system props, simplify children check in ProgressBar. * Updated snapshots. * Updated snapshots using --no-cache flag. * Update generated/components.json --------- Signed-off-by: dependabot[bot] Co-authored-by: radglob Co-authored-by: Matthew Costabile Co-authored-by: Josh Black Co-authored-by: Josh Black Co-authored-by: Siddharth Kshetrapal Co-authored-by: simurai Co-authored-by: simurai Co-authored-by: Cole Bemis Co-authored-by: colebemis Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- ...tonGroup-Default-dark-colorblind-linux.png | Bin 0 -> 7980 bytes .../ButtonGroup-Default-dark-dimmed-linux.png | Bin 0 -> 8023 bytes ...Group-Default-dark-high-contrast-linux.png | Bin 0 -> 8034 bytes .../ButtonGroup-Default-dark-linux.png | Bin 0 -> 7980 bytes ...tonGroup-Default-dark-tritanopia-linux.png | Bin 0 -> 7980 bytes ...onGroup-Default-light-colorblind-linux.png | Bin 0 -> 8016 bytes ...roup-Default-light-high-contrast-linux.png | Bin 0 -> 8068 bytes .../ButtonGroup-Default-light-linux.png | Bin 0 -> 8020 bytes ...onGroup-Default-light-tritanopia-linux.png | Bin 0 -> 8016 bytes ...oup-Icon-Buttons-dark-colorblind-linux.png | Bin 0 -> 5378 bytes ...onGroup-Icon-Buttons-dark-dimmed-linux.png | Bin 0 -> 5394 bytes ...-Icon-Buttons-dark-high-contrast-linux.png | Bin 0 -> 5477 bytes .../ButtonGroup-Icon-Buttons-dark-linux.png | Bin 0 -> 5378 bytes ...oup-Icon-Buttons-dark-tritanopia-linux.png | Bin 0 -> 5378 bytes ...up-Icon-Buttons-light-colorblind-linux.png | Bin 0 -> 5478 bytes ...Icon-Buttons-light-high-contrast-linux.png | Bin 0 -> 5518 bytes .../ButtonGroup-Icon-Buttons-light-linux.png | Bin 0 -> 5474 bytes ...up-Icon-Buttons-light-tritanopia-linux.png | Bin 0 -> 5478 bytes ...Group-Playground-dark-colorblind-linux.png | Bin 0 -> 7980 bytes ...ttonGroup-Playground-dark-dimmed-linux.png | Bin 0 -> 8023 bytes ...up-Playground-dark-high-contrast-linux.png | Bin 0 -> 8034 bytes .../ButtonGroup-Playground-dark-linux.png | Bin 0 -> 7980 bytes ...Group-Playground-dark-tritanopia-linux.png | Bin 0 -> 7980 bytes ...roup-Playground-light-colorblind-linux.png | Bin 0 -> 8016 bytes ...p-Playground-light-high-contrast-linux.png | Bin 0 -> 8068 bytes .../ButtonGroup-Playground-light-linux.png | Bin 0 -> 8020 bytes ...roup-Playground-light-tritanopia-linux.png | Bin 0 -> 8016 bytes docs/content/ButtonGroup.mdx | 2 +- e2e/components/ButtonGroup.test.ts | 89 ++++++++++++++++++ generated/components.json | 41 ++++---- script/generate-e2e-tests.js | 19 ++++ src/{ => ButtonGroup}/ButtonGroup.docs.json | 0 .../ButtonGroup.features.stories.tsx | 17 ++++ .../ButtonGroup.stories.tsx | 12 +-- src/{ => ButtonGroup}/ButtonGroup.tsx | 6 +- src/ButtonGroup/index.ts | 1 + 36 files changed, 155 insertions(+), 32 deletions(-) create mode 100644 .playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Default-dark-colorblind-linux.png create mode 100644 .playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Default-dark-dimmed-linux.png create mode 100644 .playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Default-dark-high-contrast-linux.png create mode 100644 .playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Default-dark-linux.png create mode 100644 .playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Default-dark-tritanopia-linux.png create mode 100644 .playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Default-light-colorblind-linux.png create mode 100644 .playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Default-light-high-contrast-linux.png create mode 100644 .playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Default-light-linux.png create mode 100644 .playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Default-light-tritanopia-linux.png create mode 100644 .playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Icon-Buttons-dark-colorblind-linux.png create mode 100644 .playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Icon-Buttons-dark-dimmed-linux.png create mode 100644 .playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Icon-Buttons-dark-high-contrast-linux.png create mode 100644 .playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Icon-Buttons-dark-linux.png create mode 100644 .playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Icon-Buttons-dark-tritanopia-linux.png create mode 100644 .playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Icon-Buttons-light-colorblind-linux.png create mode 100644 .playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Icon-Buttons-light-high-contrast-linux.png create mode 100644 .playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Icon-Buttons-light-linux.png create mode 100644 .playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Icon-Buttons-light-tritanopia-linux.png create mode 100644 .playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Playground-dark-colorblind-linux.png create mode 100644 .playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Playground-dark-dimmed-linux.png create mode 100644 .playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Playground-dark-high-contrast-linux.png create mode 100644 .playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Playground-dark-linux.png create mode 100644 .playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Playground-dark-tritanopia-linux.png create mode 100644 .playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Playground-light-colorblind-linux.png create mode 100644 .playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Playground-light-high-contrast-linux.png create mode 100644 .playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Playground-light-linux.png create mode 100644 .playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Playground-light-tritanopia-linux.png create mode 100644 e2e/components/ButtonGroup.test.ts rename src/{ => ButtonGroup}/ButtonGroup.docs.json (100%) create mode 100644 src/ButtonGroup/ButtonGroup.features.stories.tsx rename src/{stories => ButtonGroup}/ButtonGroup.stories.tsx (74%) rename src/{ => ButtonGroup}/ButtonGroup.tsx (88%) create mode 100644 src/ButtonGroup/index.ts diff --git a/.playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Default-dark-colorblind-linux.png b/.playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Default-dark-colorblind-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..71edee0078ff0ccf6a41caec98583c6026b5d695 GIT binary patch literal 7980 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 literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Default-dark-linux.png b/.playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Default-dark-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..71edee0078ff0ccf6a41caec98583c6026b5d695 GIT binary patch literal 7980 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 literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Default-light-linux.png b/.playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Default-light-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..6476c4281c900125a6876a89860d614f7fa4c4cd GIT binary patch literal 8020 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 literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Default-light-tritanopia-linux.png b/.playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Default-light-tritanopia-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..7e2308c1f6060ec77af95994ce61d25729d6a82f GIT binary patch literal 8016 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 L^>bP0l+XkK&zyX+ literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Icon-Buttons-dark-dimmed-linux.png b/.playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Icon-Buttons-dark-dimmed-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..1b05ebd875ed0ec9ecc041f8521eaa41b8a99e56 GIT binary patch literal 5394 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3><7gkuEizTp-0*9OUlAu2UBV%n8u;c4lV=V~Q-)Cf51ZNV3eIicx69_apWVMFAFF^iF=(>ymIKi{Y#sT5 zlw%W!*TiBABw08?Dma9I&SMZzdBMoQpx|+VnSsG!!UA>%h6V*DNZ}%s|hi}>AM~`k7*4FObI^+JbuT{3|)~`Q)^ytqSGBQ2x`+vS& z=MGe#(0|wRh5xhe|NCd&7e9Uabm9AZIdjg4@0Mc)deOG@`GWc9#UB^-C;h9RcKUzM z&qoK>9S6EJ!5^rrKkfMAw5_*}=xDCKnk93#uiO?Ch1IXlIoi+ltDltqto}^Z-h20a z{{clm*zR-22;a9hFYJH+>HfI;`22TOJU~?*H!CmHfB5h)!sf$Ib0B|5?_73JOcYcj zM~iG;@#gb(|C4HfD*5NxSN_Vesr>cE`ux6suTFpbzW?vnz3=~;&AulM)M%Ew+VTH% z`~NT5#UI!L75;gA^z+A0M?b%}`Ty_!`{eiKH^1BiD%+45&HHQn-mi6^zTB+%`RM15 z$MSXizwQOb_<~cC7>OWbb^43@&t9+JSHdX^)O_dCx#oMRrC?{)6=8T17*OG>ug>sM zn>|A{)o5nV)vT?r4S|Yp1ef#uTK)8?#SA}lL+?|-_zXXNI<_BZ=Ye^=(Q+8kpD_JYD@<);T3K0RVD1iW&d_ literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Icon-Buttons-dark-high-contrast-linux.png b/.playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Icon-Buttons-dark-high-contrast-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..95fa59bdd8b047063dba2e8c6dac3728638d07c1 GIT binary patch literal 5477 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3><7gkuEizTp-0*9OUlAuc9xM$_u15d8*=viy1zxGnBBS*)Un;fwv7h^s4bu`U)dZQ$w zv-E=NRk6$!7h*4aCTI05iOsy~$>e$2>g0+E>(+XzoSA8P=UnOAbDMwsue&|_^PZgO z8yhRifi^Q}-kEE}$-|kPs8~YDG+RpFXyUS`_ zY_z2K|FXQ8%Kv+L=L0Qe;NO&+c>K}buX3MWEbe~%Q&_*}ZE^AAPu1`HqRsPq&fERZ zk@{V`cK*LN&mWub|Mj%({7j!`#~+=WoBaOY@nf&*{~Mp%_w`uYc^07if6qLn`~Cd< zibS7h&yUZ)Z)d$OKKAC88TWm%v&)a2QkU=NKK=aIos>G6`giJ^<2ZpjbaU=H*1tHh zabs;>-k#cTYctoK<+m9c7Z)f>B6zIYmi>}Fj@t3WwirM$&d*+)-pH3eC zFV)^}Yy8?2ChP6J`}o?~=F2yFpE^6+{Mfp?)oFV{u^xS8S96`w%o^qSGyhvCx$N--N7yN-8{z`K$C-18r+)e?F}mD1wrHGVVI=-?q){ z*|TTMfT5LASGQ(eofRS^udk1ny&rkUvNtwJOuW1=J3Jf_lK<|OPdomdPj=ohJ?9CB6r|ZQ@#MgZMS@G>h@#P!p4?j#yetd0zeqVjeP8(=EF8dU;$NtZ|?a8@s z&;7W#`S|fm>+aq^k^V~k^XKIA_i7*iKL4lS&c3}?|Gpf*f4)i;==5zHa=ER=-uu1Y z;OySlyS&fNcG|SE{*x(2Ym?<)EatbD_|0##?_qIRxV`N4b?bV{&;3vR^ZC?oX**C( zl1o_y&QUph_ZL#0zevuIqZ)`Qwnjr~G?b`S1&*er(X=$0mVh-MxoybN3^ba7Ml;Z8 z1|qHJIa+FrmKvj_#%QTAT53>#RBzzQ)))2N|MpM(Tcp1Qn6eo>UHx3vIVCg!0L{a= A*Z=?k literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Icon-Buttons-dark-linux.png b/.playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Icon-Buttons-dark-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..64932a7e6f7d572dcf9daffbf40bbbc4340a8e14 GIT binary patch literal 5378 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3><7gkuEizTp-0*9OUlAuM6XtqH{%| z(ZF@H_cRl)=w_2n^Qw6h5C635(?9vY;M0?rpYH-~UZA3Wx)0#Y18Ku0hL zsJsA*DR^99W?*obuz;O`p+UisA1LA2BnKp$SZskL3sD*_JIig0&^ey8Q|9x}nmKdl z%6@ur-_-Kd6vJ(|-$tyzp1d`x_x0u$U9elqwZ{BSG#Q5|7(|OyiZ~6WM3V)dY zhaV%@N`()1BRhNN{Q+WCW9P~9d$T6_&xXib! z*YEcLmHs*VdVSn}Ng)1tHT(X)TI;$$58uzP`BuwkD-AS|@9hf5|J&d1|9_UX0;Dc{ z`t--IUVRE*A0PMc@#ORWY}@DY0+qFwU0JaIef0bA_4j*LuRi_p`uly>zjA;QD?agH zI{Qlci}#=3-rlaa5ST(5`hngkkCX)}uCcM-iIG~q@%?&RX00~)q+*%pOdqx6-FN3z zfvl8UvA4NyZ(RS&FHg!}%ib-ql70R4*OhFb%m;_JvR|&Rz6y+8iz9lP;?Ko_>0~Zc z)8FQQRi^jy@AZHF{Mq@<DM*V>xEhr;ir-9LwAD`>8EZ?7W~@e_(+n5~-J2NX}iO8fa2zjRxyzuu`i698F83X=yYq zQP6@M%|N3WXfy+jW+2k~ouj43XsIz;YK)c|qooG*$Mi@pTmQ2aoY*PIEG`2YkYez3 L^>bP0l+XkK&zyX+ literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Icon-Buttons-dark-tritanopia-linux.png b/.playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Icon-Buttons-dark-tritanopia-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..64932a7e6f7d572dcf9daffbf40bbbc4340a8e14 GIT binary patch literal 5378 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3><7gkuEizTp-0*9OUlAuM6XtqH{%| z(ZF@H_cRl)=w_2n^Qw6h5C635(?9vY;M0?rpYH-~UZA3Wx)0#Y18Ku0hL zsJsA*DR^99W?*obuz;O`p+UisA1LA2BnKp$SZskL3sD*_JIig0&^ey8Q|9x}nmKdl z%6@ur-_-Kd6vJ(|-$tyzp1d`x_x0u$U9elqwZ{BSG#Q5|7(|OyiZ~6WM3V)dY zhaV%@N`()1BRhNN{Q+WCW9P~9d$T6_&xXib! z*YEcLmHs*VdVSn}Ng)1tHT(X)TI;$$58uzP`BuwkD-AS|@9hf5|J&d1|9_UX0;Dc{ z`t--IUVRE*A0PMc@#ORWY}@DY0+qFwU0JaIef0bA_4j*LuRi_p`uly>zjA;QD?agH zI{Qlci}#=3-rlaa5ST(5`hngkkCX)}uCcM-iIG~q@%?&RX00~)q+*%pOdqx6-FN3z zfvl8UvA4NyZ(RS&FHg!}%ib-ql70R4*OhFb%m;_JvR|&Rz6y+8iz9lP;?Ko_>0~Zc z)8FQQRi^jy@AZHF{Mq@<DM*V>xEhr;ir-9LwAD`>8EZ?7W~@e_(+n5~-J2NX}iO8fa2zjRxyzuu`i698F83X=yYq zQP6@M%|N3WXfy+jW+2k~ouj43XsIz;YK)c|qooG*$Mi@pTmQ2aoY*PIEG`2YkYez3 L^>bP0l+XkK&zyX+ literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Icon-Buttons-light-colorblind-linux.png b/.playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Icon-Buttons-light-colorblind-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..9ee657932930b501f1ee4b5593ed4b8e35c0ef80 GIT binary patch literal 5478 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3><7gkuEizTp-0*9OUlAu>{`lnN)rP*8&GP@s>y#O#?u_ZXz1{!#&DHCBHiyUGJm~|p<%d~!<-F&!?>+hT ztE%SL&F9JUj_=rEA+N5k{y3v@OYh%*tM~u;n*Uhb{{PK#yXRHAFp7wUofAAkAs4P?M)oBm3<$5rY6FUn1`4gLK6kMFJiek^ON z)cm?{8GpX0+uu4E1JqY>t@r-I`1Sh7ZTbuA>g<-iTs@;c^6Y1c%O?GsH-9!fW^?WJ z>Du)y3=9VvcNJb(ucv?f=g)BeXZ%NP>P5eH>)qyfBC5X_~P^aZ+k&WX2}~{P|P%lt0P6wg|)GK)xYPK zA9t6p|8(Z-Z+^KxAg+6Rt6hGNeck8R@wLx4&riR-8K^PgcA3flB!-DbKD=HbIimS7+$Hf zmTipCf%uL6)iKBVsv;w^*=NnlJa6WhJ^u2f;(j(zd%=P{nJ?wNLD>#y>VN0@k`j}+`nSIy zckln7T=Vfs)||QXdnZqxyfJ29%=5Rtmra0nMy$V{Ja5^@U)lB&?(Xit&b8K4PZ~Gf(50-QvO`0=Lrr)}JpLtyE({~oOws%j0 zlh(YotbZkvW8&lcm;2A(w`KV~{pqI*UtiPpe+G2(jooY6Ksj!MwEp$(cOd^MP%Q_N zoMlHf5L2*?hSF##QLB<1O-rL`X*4YXt37gCnWGtKGy{!hpwSFOTHkcE)EF%_MoW#+ mQe(8#p#HcYy~@@L`x$?Ty|v7ETGI$j$PAvYelF{r5}E*8t-7ZG literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Icon-Buttons-light-high-contrast-linux.png b/.playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Icon-Buttons-light-high-contrast-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..9a6174ae0dfc8a8e63a0f741d0d7d14b72d7b536 GIT binary patch literal 5518 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3><7gkuEizTp-0*9OUlAufS16b~P|gVEsJQXK zQ9#N(-21ct8iiV(PQh(wuSL&ym@DU0R%TPNsyE}t$-eh*UYGun-8cWd%>6Sp^_z|6 zpMTB_wAmvv_8SwBK5$tW=qd&Ql^2W*3<@3>fN~BK7O*ogG$=Uo10@`rk&$9v@t{&-e;s2L(d-?m-Z?_g^K7KUg z?6+h0{`LQvzxU%|^JD7u|DHIctzEaKXY1Chg@1p&KYm}%Mq>Z(xA}Z2dO*kg**VCehk#azZS+5sv(4PhOs{V?DDWCoZmHM+4apNqnSR(zF1aIwg<|{{%gkw`lzZ4^X;qiYQD7hPumMhM@w{U zUu@sL{rL3wx}9M26jEP;e!lnZ+qe0)`?u}1T$h_y_xR@T@O3@g z>py)np8r>+dmb;)yza6Ej{6H=UfLelP@Y>{T=W0R%8mQ>{p)?c{F=Y*=bQgeE=mWc zkOPZkGcMS_jDDXzdviZE2awSJ*K`Q(pZuh)wM!>YtecJj%To7q6s1s*^t|9KX6Wo2ccV7$No zN75Xd!Wx9+eXGCEb`(B7rc~y6^VTlIdqD1{>p-0kCfq8&@c)PV^JA|hlC!h38DE>+ zxp7Nswf6sCZ-CMpcz*N!+PZaX;n(Kx$C`hCKmPRe^y7Q0zt1~u{S_E9clMX($JBlQ z^yBs4-;ZChzwZSqOgwv`#^e9uBO)UuSFc|E_{2oz zeKUc%FX5$_6eyb=IC$f`EGXAKctAqtBRRK@Y9OXe8x5t=P@-1-IGUD5)6!^K0#<7gkuEizTp-0*9OUlAu4)oN`gyQIW+8GniR*@;TwAKo!}jprQg&RX_z-Y$hxHz z;i4F5{+Ki5)r=ng?lrfTIGFUEm9{^BF1>Ky`P1RYpMTGpwJZ~86NBdGT73|`$Ig)- zNI5pi0m&v7TOi58Sp_6Hgn-Ut5Kwu+$iSfBaen~8NFt@wV|`tg?% zQ#so@tGZv4zn2+^1NFs~y)1tbo}Qj8m3${g?|9m0rDylUE}I-nGwyv_WO;1Hu~%5C8tYn`0+G`|QI%TEIYU_^;m{{s`o5F#)8Y&Uo+m|6sd( zul>K5=YPim&1MMtCii82{l}*jpT4UjM1T?pUJD~>d~r&zz4pUH_s5_0_tm`o^_QLh zI1ukIeY@G;UUL7>uj}vqcoTl}TMkg;jcs$;{vMbA|7|Jrhj;cB7Vqxlg8~*;CQ*8!RmUG*$`Cq92-uFNy_x6{U|9SX*|Lvb316F+E!$>JxE|CAScO9e{6vpD}$CLNQ z*yZ?^k21XRKDKL57I@Wvc{Q2WIH`n*n*Zuu!5&u6s=jFEl z&39#d%x9lH_UK7P%zopr0D&d66aWAK literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Icon-Buttons-light-tritanopia-linux.png b/.playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Icon-Buttons-light-tritanopia-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..9ee657932930b501f1ee4b5593ed4b8e35c0ef80 GIT binary patch literal 5478 zcmeAS@N?(olHy`uVBq!ia0y~yVEzKc3><7gkuEizTp-0*9OUlAu>{`lnN)rP*8&GP@s>y#O#?u_ZXz1{!#&DHCBHiyUGJm~|p<%d~!<-F&!?>+hT ztE%SL&F9JUj_=rEA+N5k{y3v@OYh%*tM~u;n*Uhb{{PK#yXRHAFp7wUofAAkAs4P?M)oBm3<$5rY6FUn1`4gLK6kMFJiek^ON z)cm?{8GpX0+uu4E1JqY>t@r-I`1Sh7ZTbuA>g<-iTs@;c^6Y1c%O?GsH-9!fW^?WJ z>Du)y3=9VvcNJb(ucv?f=g)BeXZ%NP>P5eH>)qyfBC5X_~P^aZ+k&WX2}~{P|P%lt0P6wg|)GK)xYPK zA9t6p|8(Z-Z+^KxAg+6Rt6hGNeck8R@wLx4&riR-8K^PgcA3flB!-DbKD=HbIimS7+$Hf zmTipCf%uL6)iKBVsv;w^*=NnlJa6WhJ^u2f;(j(zd%=P{nJ?wNLD>#y>VN0@k`j}+`nSIy zckln7T=Vfs)||QXdnZqxyfJ29%=5Rtmra0nMy$V{Ja5^@U)lB&?(Xit&b8K4PZ~Gf(50-QvO`0=Lrr)}JpLtyE({~oOws%j0 zlh(YotbZkvW8&lcm;2A(w`KV~{pqI*UtiPpe+G2(jooY6Ksj!MwEp$(cOd^MP%Q_N zoMlHf5L2*?hSF##QLB<1O-rL`X*4YXt37gCnWGtKGy{!hpwSFOTHkcE)EF%_MoW#+ mQe(8#p#HcYy~@@L`x$?Ty|v7ETGI$j$PAvYelF{r5}E*8t-7ZG literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Playground-dark-colorblind-linux.png b/.playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Playground-dark-colorblind-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..71edee0078ff0ccf6a41caec98583c6026b5d695 GIT binary patch literal 7980 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 literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Playground-dark-linux.png b/.playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Playground-dark-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..71edee0078ff0ccf6a41caec98583c6026b5d695 GIT binary patch literal 7980 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 literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Playground-light-linux.png b/.playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Playground-light-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..6476c4281c900125a6876a89860d614f7fa4c4cd GIT binary patch literal 8020 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 literal 0 HcmV?d00001 diff --git a/.playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Playground-light-tritanopia-linux.png b/.playwright/snapshots/components/ButtonGroup.test.ts-snapshots/ButtonGroup-Playground-light-tritanopia-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..7e2308c1f6060ec77af95994ce61d25729d6a82f GIT binary patch literal 8016 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 { + test.describe('Default', () => { + for (const theme of themes) { + test.describe(theme, () => { + test('default @vrt', async ({page}) => { + await visit(page, { + id: 'components-buttongroup--default', + globals: { + colorScheme: theme, + }, + }) + + // Default state + expect(await page.screenshot()).toMatchSnapshot(`ButtonGroup.Default.${theme}.png`) + }) + + test('axe @aat', async ({page}) => { + await visit(page, { + id: 'components-buttongroup--default', + globals: { + colorScheme: theme, + }, + }) + await expect(page).toHaveNoViolations() + }) + }) + } + }) + + test.describe('Playground', () => { + for (const theme of themes) { + test.describe(theme, () => { + test('default @vrt', async ({page}) => { + await visit(page, { + id: 'components-buttongroup--playground', + globals: { + colorScheme: theme, + }, + }) + + // Default state + expect(await page.screenshot()).toMatchSnapshot(`ButtonGroup.Playground.${theme}.png`) + }) + + test('axe @aat', async ({page}) => { + await visit(page, { + id: 'components-buttongroup--playground', + globals: { + colorScheme: theme, + }, + }) + await expect(page).toHaveNoViolations() + }) + }) + } + }) + + test.describe('Icon Buttons', () => { + for (const theme of themes) { + test.describe(theme, () => { + test('default @vrt', async ({page}) => { + await visit(page, { + id: 'components-buttongroup-features--icon-buttons', + globals: { + colorScheme: theme, + }, + }) + + // Default state + expect(await page.screenshot()).toMatchSnapshot(`ButtonGroup.Icon Buttons.${theme}.png`) + }) + + test('axe @aat', async ({page}) => { + await visit(page, { + id: 'components-buttongroup-features--icon-buttons', + globals: { + colorScheme: theme, + }, + }) + await expect(page).toHaveNoViolations() + }) + }) + } + }) +}) diff --git a/generated/components.json b/generated/components.json index 907dc95d36e..af463c68e8a 100644 --- a/generated/components.json +++ b/generated/components.json @@ -1,24 +1,6 @@ { "schemaVersion": 2, "components": { - "button_group": { - "id": "button_group", - "name": "ButtonGroup", - "status": "alpha", - "a11yReviewed": false, - "stories": [], - "props": [ - { - "name": "sx", - "type": "SystemStyleObject" - }, - { - "name": "ref", - "type": "React.RefObject" - } - ], - "subcomponents": [] - }, "dialog": { "id": "dialog", "name": "Dialog", @@ -1448,6 +1430,29 @@ ], "subcomponents": [] }, + "button_group": { + "id": "button_group", + "name": "ButtonGroup", + "status": "alpha", + "a11yReviewed": false, + "stories": [ + { + "id": "components-buttongroup--default", + "code": "() => (\n \n \n \n \n \n)" + } + ], + "props": [ + { + "name": "sx", + "type": "SystemStyleObject" + }, + { + "name": "ref", + "type": "React.RefObject" + } + ], + "subcomponents": [] + }, "checkbox": { "id": "checkbox", "name": "Checkbox", diff --git a/script/generate-e2e-tests.js b/script/generate-e2e-tests.js index 5f0252a213c..4c16f9408b0 100644 --- a/script/generate-e2e-tests.js +++ b/script/generate-e2e-tests.js @@ -245,6 +245,25 @@ const components = new Map([ ], }, ], + [ + 'ButtonGroup', + { + stories: [ + { + id: 'components-buttongroup--default', + name: 'Default', + }, + { + id: 'components-buttongroup--playground', + name: 'Playground', + }, + { + id: 'components-buttongroup-features--icon-buttons', + name: 'Icon Buttons', + }, + ], + }, + ], [ 'Breadcrumbs', { diff --git a/src/ButtonGroup.docs.json b/src/ButtonGroup/ButtonGroup.docs.json similarity index 100% rename from src/ButtonGroup.docs.json rename to src/ButtonGroup/ButtonGroup.docs.json diff --git a/src/ButtonGroup/ButtonGroup.features.stories.tsx b/src/ButtonGroup/ButtonGroup.features.stories.tsx new file mode 100644 index 00000000000..43e57953da7 --- /dev/null +++ b/src/ButtonGroup/ButtonGroup.features.stories.tsx @@ -0,0 +1,17 @@ +import React from 'react' +import {ComponentMeta} from '@storybook/react' +import ButtonGroup from './ButtonGroup' +import {IconButton} from '../Button' +import {PlusIcon, DashIcon} from '@primer/octicons-react' + +export default { + title: 'Components/ButtonGroup/Features', + component: ButtonGroup, +} as ComponentMeta + +export const IconButtons = () => ( + + + + +) diff --git a/src/stories/ButtonGroup.stories.tsx b/src/ButtonGroup/ButtonGroup.stories.tsx similarity index 74% rename from src/stories/ButtonGroup.stories.tsx rename to src/ButtonGroup/ButtonGroup.stories.tsx index 2107a948f7e..3c7c520adc6 100644 --- a/src/stories/ButtonGroup.stories.tsx +++ b/src/ButtonGroup/ButtonGroup.stories.tsx @@ -1,8 +1,7 @@ import React from 'react' import {Story, Meta} from '@storybook/react' -import ButtonGroup from '../ButtonGroup' -import {Button, ButtonProps, IconButton} from '../Button' -import {PlusIcon, DashIcon} from '@primer/octicons-react' +import ButtonGroup from './ButtonGroup' +import {Button, ButtonProps} from '../Button' export default { title: 'Components/ButtonGroup', @@ -48,10 +47,3 @@ Playground.argTypes = { }, }, } - -export const IconButtons = () => ( - - - - -) diff --git a/src/ButtonGroup.tsx b/src/ButtonGroup/ButtonGroup.tsx similarity index 88% rename from src/ButtonGroup.tsx rename to src/ButtonGroup/ButtonGroup.tsx index 33a3d43c2e4..93762b8574a 100644 --- a/src/ButtonGroup.tsx +++ b/src/ButtonGroup/ButtonGroup.tsx @@ -1,7 +1,7 @@ import styled from 'styled-components' -import {get} from './constants' -import sx from './sx' -import {ComponentProps} from './utils/types' +import {get} from '../constants' +import sx from '../sx' +import {ComponentProps} from '../utils/types' const ButtonGroup = styled.div` display: inline-flex; diff --git a/src/ButtonGroup/index.ts b/src/ButtonGroup/index.ts new file mode 100644 index 00000000000..33777d2c3bf --- /dev/null +++ b/src/ButtonGroup/index.ts @@ -0,0 +1 @@ +export {default, ButtonGroupProps} from './ButtonGroup' From 332caf3d057f8ed1e0f3df8bfde3312c1a364058 Mon Sep 17 00:00:00 2001 From: Josh Black Date: Tue, 11 Apr 2023 09:51:03 -0500 Subject: [PATCH 09/20] docs(project): move code of conduct under .github (#3145) Co-authored-by: Josh Black --- {contributor-docs => .github}/CODE_OF_CONDUCT.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {contributor-docs => .github}/CODE_OF_CONDUCT.md (100%) diff --git a/contributor-docs/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md similarity index 100% rename from contributor-docs/CODE_OF_CONDUCT.md rename to .github/CODE_OF_CONDUCT.md From 41ace87f3158894edf9901c59509cfe6269e6174 Mon Sep 17 00:00:00 2001 From: Josh Black Date: Tue, 11 Apr 2023 10:01:18 -0500 Subject: [PATCH 10/20] Add npm workspaces structure to primer/react (#3074) * test(axe): default `color-contrast` check to false * chore: update generate script to not conditionally disable contrast checks * Create adr-015-npm-workspaces.md * docs: update adr * Update adr-015-npm-workspaces.md --------- Co-authored-by: Josh Black --- .../adrs/adr-015-npm-workspaces.md | 85 +++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 contributor-docs/adrs/adr-015-npm-workspaces.md diff --git a/contributor-docs/adrs/adr-015-npm-workspaces.md b/contributor-docs/adrs/adr-015-npm-workspaces.md new file mode 100644 index 00000000000..c45fd6aee6c --- /dev/null +++ b/contributor-docs/adrs/adr-015-npm-workspaces.md @@ -0,0 +1,85 @@ +# ADR 015: NPM Workspaces + +## Status + +| Stage | Status | +| -------- | ------ | +| Approved | ✅ | +| Adopted | 🚧 | + +## Context + +> tl;dr +> +> We have workspaces within the project but no official way of connecting them or managing dependencies from the top-level. Similarly, scripts that grow in size or complexity have no dedicated home or ability to manage dependencies outside of the top-level workspace. + +The `primer/react` repo is composed of several workspaces that use `npm` to manage dependencies. In order to install these dependencies, a contributor needs to visit each directory and run `npm install`. The project also has a convenience script for this task, invoked through `npm run setup`, that goes through this process for contributors. + +These distinct workspaces may sometimes depend on each other. For example, the `docs` workspace depends on the `@primer/react` package which is defined at the top-level of the project. Similarly, examples in the `examples/*` folders may also depend on `@primer/react`. Currently these dependencies are expressed either through relative paths, file dependencies in `package.json`, or symlinks through `npm link`. + +There is also a collection of scripts under the `script` directory that exist in the project that involve varying levels of complexity and depth. + +## Looking forward + +As the project grows, we may look into supporting additional workspaces within the project in the form of experimental components or internal workspaces for projects the team is working on. We may also want a tighter integration between workspaces with respect to the `@primer/react` dependency so contributors don't have to worry about resolving or linking to the correct package during development. + +## Decision + +Setup the project to use [`npm` workspaces](https://docs.npmjs.com/cli/v7/using-npm/workspaces). This will require changing the project to have a top-level `package.json` file which will use `workspaces` to reference child workspaces. The layout for the project would then be: + +``` +- root + # Root package.json, defines workspaces + - package.json + + # Workspaces + - docs + - packages + - react + - * + - examples + - nextjs + - consumer-test + - * + + # Top-level scripts + - script + + # Testing & Development + - .storybook + - .playwright + + # Repo config + - .github + - .vscode +``` + +The following items will be installed and ran at the root-level: + +- Linting + - `eslint` + - `markdownlint` +- Testing + - Jest + - Playwright +- Development + - Storybook +- Type checking + - TypeScript + +Certain configuration items, like for TypeScript or Babel, may need configuration defined at the top-level and extended by child workspaces. + +The current `@primer/react` package will move to the `packages/react` package. Workspaces that depend on `@primer/react` should reference the version of that package. + +### Impact + +- Scripts need to be updated +- GitHub Action paths need to be updated +- TypeScript refactor for base config +- Changeset support +- Performance from installing node modules for entire workspace +- Find workarounds in cases where legacy-peer-deps is required as an option + +### Looking forward + +- Exploration into https://nx.dev/ for build tooling as npm workspaces does not support topological script ordering From 36e123520ad8e0da3ed2eb426f40a73bd7ad7078 Mon Sep 17 00:00:00 2001 From: jonrohan Date: Tue, 11 Apr 2023 16:54:56 +0000 Subject: [PATCH 11/20] Update generated/components.json --- generated/components.json | 46 +-------------------------------------- 1 file changed, 1 insertion(+), 45 deletions(-) diff --git a/generated/components.json b/generated/components.json index de492457a99..c6ae3a0cda8 100644 --- a/generated/components.json +++ b/generated/components.json @@ -210,50 +210,6 @@ ], "subcomponents": [] }, - "styled_octicon": { - "id": "styled_octicon", - "name": "StyledOcticon", - "status": "alpha", - "a11yReviewed": false, - "stories": [], - "props": [ - { - "name": "ariaLabel", - "type": "string", - "defaultValue": "", - "description": "Specifies the aria-label attribute, which is read verbatim by screen readers " - }, - { - "name": "icon", - "type": "Component", - "defaultValue": "", - "description": "Checks the input by default in uncontrolled modeName of the [Octicon component](https://primer.style/octicons/) used in the" - }, - { - "name": "color", - "type": "string", - "defaultValue": "", - "description": "Sets an override color for the Octicon. Compatible with colors from the [Primer color system](https://primer.style/primitives/colors).\"" - }, - { - "name": "size", - "type": "number", - "defaultValue": "16", - "description": "Sets the uniform `width` and `height` of the SVG element" - }, - { - "name": "verticalAlign", - "type": "string", - "defaultValue": "text-bottom", - "description": "Sets the `vertical-align` CSS property" - }, - { - "name": "sx", - "type": "SystemStyleObject" - } - ], - "subcomponents": [] - }, "sub_nav": { "id": "sub_nav", "name": "SubNav", @@ -5233,4 +5189,4 @@ "subcomponents": [] } } -} +} \ No newline at end of file From bc227a7948a06f6514d45530cb14070522ad315d Mon Sep 17 00:00:00 2001 From: Jon Rohan Date: Tue, 11 Apr 2023 16:56:43 +0000 Subject: [PATCH 12/20] change styled_octicon key --- docs/content/Octicon.mdx | 2 +- generated/components.json | 6 +++--- src/Octicon.docs.json | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/content/Octicon.mdx b/docs/content/Octicon.mdx index 37f065bbb24..99b0eac35ce 100644 --- a/docs/content/Octicon.mdx +++ b/docs/content/Octicon.mdx @@ -3,7 +3,7 @@ description: Use Octicon to render an Octicon as a component. title: Octicon status: Alpha source: https://github.com/primer/react/blob/main/src/Octicon.tsx -componentId: styled_octicon +componentId: octicon --- import data from '../../src/Octicon.docs.json' diff --git a/generated/components.json b/generated/components.json index c6ae3a0cda8..f16bb195683 100644 --- a/generated/components.json +++ b/generated/components.json @@ -55,8 +55,8 @@ } ] }, - "styled_octicon": { - "id": "styled_octicon", + "octicon": { + "id": "octicon", "name": "Octicon", "status": "alpha", "a11yReviewed": false, @@ -5189,4 +5189,4 @@ "subcomponents": [] } } -} \ No newline at end of file +} diff --git a/src/Octicon.docs.json b/src/Octicon.docs.json index 61f6a514f64..c01607f79d3 100644 --- a/src/Octicon.docs.json +++ b/src/Octicon.docs.json @@ -1,5 +1,5 @@ { - "id": "styled_octicon", + "id": "octicon", "name": "Octicon", "status": "alpha", "a11yReviewed": false, From 56f324f1f15e8c7dd60e25ffeb035ae3247d78b6 Mon Sep 17 00:00:00 2001 From: jonrohan Date: Tue, 11 Apr 2023 16:58:44 +0000 Subject: [PATCH 13/20] Update generated/components.json --- generated/components.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generated/components.json b/generated/components.json index f16bb195683..4988fc6bc00 100644 --- a/generated/components.json +++ b/generated/components.json @@ -5189,4 +5189,4 @@ "subcomponents": [] } } -} +} \ No newline at end of file From 386ecfc390b2c4f86cde67c585330328cbf8f863 Mon Sep 17 00:00:00 2001 From: jonrohan Date: Thu, 13 Apr 2023 16:05:38 +0000 Subject: [PATCH 14/20] Update generated/components.json --- generated/components.json | 44 --------------------------------------- 1 file changed, 44 deletions(-) diff --git a/generated/components.json b/generated/components.json index c74ea571e49..92287b89fe8 100644 --- a/generated/components.json +++ b/generated/components.json @@ -210,50 +210,6 @@ ], "subcomponents": [] }, - "styled_octicon": { - "id": "styled_octicon", - "name": "StyledOcticon", - "status": "alpha", - "a11yReviewed": false, - "stories": [], - "props": [ - { - "name": "ariaLabel", - "type": "string", - "defaultValue": "", - "description": "Specifies the aria-label attribute, which is read verbatim by screen readers " - }, - { - "name": "icon", - "type": "Component", - "defaultValue": "", - "description": "Checks the input by default in uncontrolled modeName of the [Octicon component](https://primer.style/octicons/) used in the" - }, - { - "name": "color", - "type": "string", - "defaultValue": "", - "description": "Sets an override color for the Octicon. Compatible with colors from the [Primer color system](https://primer.style/primitives/colors).\"" - }, - { - "name": "size", - "type": "number", - "defaultValue": "16", - "description": "Sets the uniform `width` and `height` of the SVG element" - }, - { - "name": "verticalAlign", - "type": "string", - "defaultValue": "text-bottom", - "description": "Sets the `vertical-align` CSS property" - }, - { - "name": "sx", - "type": "SystemStyleObject" - } - ], - "subcomponents": [] - }, "text": { "id": "text", "name": "Text", From 6a170a1a1a8875377093e50c8a974087fffa3d3a Mon Sep 17 00:00:00 2001 From: jonrohan Date: Tue, 18 Apr 2023 19:25:11 +0000 Subject: [PATCH 15/20] Update generated/components.json --- generated/components.json | 130 -------------------------------------- 1 file changed, 130 deletions(-) diff --git a/generated/components.json b/generated/components.json index 228d1a7bead..d118c8c2382 100644 --- a/generated/components.json +++ b/generated/components.json @@ -99,136 +99,6 @@ ], "subcomponents": [] }, - "overlay": { - "id": "overlay", - "name": "Overlay", - "status": "alpha", - "a11yReviewed": false, - "stories": [], - "props": [ - { - "name": "returnFocusRef", - "type": "React.RefObject", - "defaultValue": "", - "required": true, - "description": "Ref for the element to focus when the `Overlay` is closed." - }, - { - "name": "onClickOutside", - "type": "function", - "defaultValue": "", - "required": true, - "description": "Function to call when clicking outside of the `Overlay`. Typically this function sets the `Overlay` visibility state to `false`." - }, - { - "name": "onEscape", - "type": "function", - "defaultValue": "", - "required": true, - "description": "Function to call when user presses `Escape`. Typically this function sets the `Overlay` visibility state to `false`." - }, - { - "name": "ignoreClickRefs", - "type": "React.RefObject []", - "defaultValue": "", - "description": "An array of ref objects to ignore clicks on in the onOutsideClick behavior. This is often used to ignore clicking on the element that toggles the open/closed state for the Overlay to prevent the Overlay from being toggled twice." - }, - { - "name": "initialFocusRef", - "type": "React.RefObject", - "defaultValue": "", - "description": "Ref for the element to focus when the `Overlay` is opened. If nothing is provided, the first focusable element in the `Overlay` body is focused." - }, - { - "name": "width", - "type": "| 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge' | 'auto'", - "defaultValue": "'auto'", - "description": "Sets the width of the `Overlay`, pick from our set list of widths, or pass `auto` to automatically set the width based on the content of the `Overlay`. `small` corresponds to `256px`, `medium` corresponds to `320px`, `large` corresponds to `480px`, `xlarge` corresponds to `640px`, `xxlarge` corresponds to `960px`." - }, - { - "name": "height", - "type": "| 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'auto'", - "defaultValue": "'auto'", - "description": "Sets the height of the `Overlay`, pick from our set list of heights, or pass `auto` to automatically set the height based on the content of the `Overlay`. `xsmall` corresponds to `192px`, `small` corresponds to `256px`, `medium` corresponds to `320px`, `large` corresponds to `432px`, `xlarge` corresponds to `600px`." - }, - { - "name": "maxHeight", - "type": "| 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge'", - "defaultValue": "", - "description": "Sets the maximum height of the `Overlay`, pick from our set list of heights. `xsmall` corresponds to `192px`, `small` corresponds to `256px`, `medium` corresponds to `320px`, `large` corresponds to `432px`, `xlarge` corresponds to `600px`." - }, - { - "name": "visibility", - "type": "| 'visible' | 'hidden'", - "defaultValue": "'visible'", - "description": "Sets the visibility of the `Overlay`." - }, - { - "name": "anchorSide", - "type": "| 'inside-top' | 'inside-bottom' | 'inside-left' | 'inside-right' | 'inside-center' | 'outside-top' | 'outside-bottom' | 'outside-left' | 'outside-right'", - "defaultValue": "", - "description": "If provided, the Overlay will slide into position from the side of the anchor with a brief animation" - }, - { - "name": "top", - "type": "number", - "defaultValue": "0", - "description": "The top CSS property of the Overlay — affects the vertical position." - }, - { - "name": "left", - "type": "number", - "defaultValue": "0", - "description": "The left CSS property of the Overlay — affects the horizontal position." - }, - { - "name": "right", - "type": "number", - "description": "The right CSS property of the Overlay — affects the horizontal position." - }, - { - "name": "bottom", - "type": "number", - "description": "The bottom CSS property of the Overlay — affects the vertical position." - }, - { - "name": "position", - "type": "| 'static' | 'relative' | 'absolute' | 'fixed' | 'sticky'", - "defaultValue": "absolute", - "description": "The position CSS property of the Overlay — sets how the Overlay is positioned relative to its Portal" - }, - { - "name": "portalContainerName", - "type": "string", - "defaultValue": "", - "description": "If defined, Overlays will be rendered in the named portal. See also `Portal`." - }, - { - "name": "sx", - "type": "SystemStyleObject" - } - ], - "subcomponents": [] - }, - "text": { - "id": "text", - "name": "Text", - "status": "alpha", - "a11yReviewed": true, - "stories": [], - "props": [ - { - "name": "as", - "defaultValue": "'span'", - "type": "React.ElementType" - }, - { - "name": "sx", - "type": "SystemStyleObject" - } - ], - "subcomponents": [] - }, "tooltip": { "id": "tooltip", "name": "Tooltip", From d05ecff3e671f1144858858aeaf7af3c7969eab5 Mon Sep 17 00:00:00 2001 From: Jon Rohan Date: Mon, 24 Apr 2023 21:12:58 +0000 Subject: [PATCH 16/20] Octicon folder --- src/Octicon/Octicon.docs.json | 44 +++++++++++++++++++ src/{ => Octicon}/Octicon.tsx | 0 .../StyledOcticon.stories.tsx | 12 ++--- src/Octicon/index.ts | 1 + 4 files changed, 51 insertions(+), 6 deletions(-) create mode 100644 src/Octicon/Octicon.docs.json rename src/{ => Octicon}/Octicon.tsx (100%) rename src/{StyledOcticon => Octicon}/StyledOcticon.stories.tsx (68%) create mode 100644 src/Octicon/index.ts diff --git a/src/Octicon/Octicon.docs.json b/src/Octicon/Octicon.docs.json new file mode 100644 index 00000000000..c01607f79d3 --- /dev/null +++ b/src/Octicon/Octicon.docs.json @@ -0,0 +1,44 @@ +{ + "id": "octicon", + "name": "Octicon", + "status": "alpha", + "a11yReviewed": false, + "stories": [], + "props": [ + { + "name": "ariaLabel", + "type": "string", + "defaultValue": "", + "description": "Specifies the aria-label attribute, which is read verbatim by screen readers " + }, + { + "name": "icon", + "type": "Component", + "defaultValue": "", + "description": "Checks the input by default in uncontrolled modeName of the [Octicon component](https://primer.style/octicons/) used in the" + }, + { + "name": "color", + "type": "string", + "defaultValue": "", + "description": "Sets an override color for the Octicon. Compatible with colors from the [Primer color system](https://primer.style/primitives/colors).\"" + }, + { + "name": "size", + "type": "number", + "defaultValue": "16", + "description": "Sets the uniform `width` and `height` of the SVG element" + }, + { + "name": "verticalAlign", + "type": "string", + "defaultValue": "text-bottom", + "description": "Sets the `vertical-align` CSS property" + }, + { + "name": "sx", + "type": "SystemStyleObject" + } + ], + "subcomponents": [] +} diff --git a/src/Octicon.tsx b/src/Octicon/Octicon.tsx similarity index 100% rename from src/Octicon.tsx rename to src/Octicon/Octicon.tsx diff --git a/src/StyledOcticon/StyledOcticon.stories.tsx b/src/Octicon/StyledOcticon.stories.tsx similarity index 68% rename from src/StyledOcticon/StyledOcticon.stories.tsx rename to src/Octicon/StyledOcticon.stories.tsx index 6a283932c34..56e19d1ea81 100644 --- a/src/StyledOcticon/StyledOcticon.stories.tsx +++ b/src/Octicon/StyledOcticon.stories.tsx @@ -1,16 +1,16 @@ import React from 'react' import {Meta, ComponentStory} from '@storybook/react' -import StyledOcticon from './StyledOcticon' +import Octicon from './Octicon' import {HeartFillIcon} from '@primer/octicons-react' export default { - title: 'Components/StyledOcticon', - component: StyledOcticon, -} as Meta + title: 'Components/Octicon', + component: Octicon, +} as Meta -export const Default = () => +export const Default = () => -export const Playground: ComponentStory = args => +export const Playground: ComponentStory = args => Playground.args = { ariaLabel: 'Heart', diff --git a/src/Octicon/index.ts b/src/Octicon/index.ts new file mode 100644 index 00000000000..287bafbcdc7 --- /dev/null +++ b/src/Octicon/index.ts @@ -0,0 +1 @@ +export {default, OcticonProps} from './Octicon' From 9e3d5b3d2274ff36f95695ac2ddc717a89ccb368 Mon Sep 17 00:00:00 2001 From: Jon Rohan Date: Mon, 24 Apr 2023 21:16:35 +0000 Subject: [PATCH 17/20] Fix package-lock --- examples/nextjs/package-lock.json | 4 ---- 1 file changed, 4 deletions(-) diff --git a/examples/nextjs/package-lock.json b/examples/nextjs/package-lock.json index 09e5ffc6b0b..e00ebb25013 100644 --- a/examples/nextjs/package-lock.json +++ b/examples/nextjs/package-lock.json @@ -1393,11 +1393,7 @@ "@playwright/test": "1.32.0", "@primer/behaviors": "1.3.3", "@primer/octicons-react": "^18.0.0", -<<<<<<< HEAD - "@primer/primitives": "7.11.5", -======= "@primer/primitives": "7.11.7", ->>>>>>> main "@react-aria/ssr": "^3.1.0", "@rollup/plugin-babel": "6.0.3", "@rollup/plugin-commonjs": "24.0.1", From c0f5283810ff885f583d1fe617422b876659e434 Mon Sep 17 00:00:00 2001 From: Jon Rohan Date: Mon, 24 Apr 2023 21:18:11 +0000 Subject: [PATCH 18/20] Fix imports --- src/Octicon/Octicon.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Octicon/Octicon.tsx b/src/Octicon/Octicon.tsx index 263561b201c..8eaa7d37a39 100644 --- a/src/Octicon/Octicon.tsx +++ b/src/Octicon/Octicon.tsx @@ -1,8 +1,8 @@ import {IconProps} from '@primer/octicons-react' import React from 'react' import styled from 'styled-components' -import sx, {SxProp} from './sx' -import {ComponentProps} from './utils/types' +import sx, {SxProp} from '../sx' +import {ComponentProps} from '../utils/types' type StyledOcticonProps = {icon: React.ElementType; color?: string} & IconProps From 59772ebb80752465fa7d355e57e4adfe91fb8f73 Mon Sep 17 00:00:00 2001 From: Jon Rohan Date: Mon, 24 Apr 2023 21:23:17 +0000 Subject: [PATCH 19/20] update path --- src/ActionList/shared.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ActionList/shared.ts b/src/ActionList/shared.ts index ca99d5ec5fa..ff77e7975b8 100644 --- a/src/ActionList/shared.ts +++ b/src/ActionList/shared.ts @@ -2,7 +2,7 @@ import React from 'react' import {AriaRole} from '../utils/types' import {SxProp} from '../sx' -import createSlots from '../utils/create-slots' +import createSlots from '../deprecated/utils/create-slots' export type ActionListItemProps = { /** From 32e9a7394b581e30c8d5810c16d72f4900a8348d Mon Sep 17 00:00:00 2001 From: jonrohan Date: Mon, 24 Apr 2023 21:24:47 +0000 Subject: [PATCH 20/20] Update generated/components.json --- generated/components.json | 139 ++++++++++++-------------------------- 1 file changed, 45 insertions(+), 94 deletions(-) diff --git a/generated/components.json b/generated/components.json index 79e8801efa1..e9533f0db06 100644 --- a/generated/components.json +++ b/generated/components.json @@ -55,50 +55,6 @@ } ] }, - "octicon": { - "id": "octicon", - "name": "Octicon", - "status": "alpha", - "a11yReviewed": false, - "stories": [], - "props": [ - { - "name": "ariaLabel", - "type": "string", - "defaultValue": "", - "description": "Specifies the aria-label attribute, which is read verbatim by screen readers " - }, - { - "name": "icon", - "type": "Component", - "defaultValue": "", - "description": "Checks the input by default in uncontrolled modeName of the [Octicon component](https://primer.style/octicons/) used in the" - }, - { - "name": "color", - "type": "string", - "defaultValue": "", - "description": "Sets an override color for the Octicon. Compatible with colors from the [Primer color system](https://primer.style/primitives/colors).\"" - }, - { - "name": "size", - "type": "number", - "defaultValue": "16", - "description": "Sets the uniform `width` and `height` of the SVG element" - }, - { - "name": "verticalAlign", - "type": "string", - "defaultValue": "text-bottom", - "description": "Sets the `vertical-align` CSS property" - }, - { - "name": "sx", - "type": "SystemStyleObject" - } - ], - "subcomponents": [] - }, "tooltip": { "id": "tooltip", "name": "Tooltip", @@ -2254,6 +2210,50 @@ } ] }, + "octicon": { + "id": "octicon", + "name": "Octicon", + "status": "alpha", + "a11yReviewed": false, + "stories": [], + "props": [ + { + "name": "ariaLabel", + "type": "string", + "defaultValue": "", + "description": "Specifies the aria-label attribute, which is read verbatim by screen readers " + }, + { + "name": "icon", + "type": "Component", + "defaultValue": "", + "description": "Checks the input by default in uncontrolled modeName of the [Octicon component](https://primer.style/octicons/) used in the" + }, + { + "name": "color", + "type": "string", + "defaultValue": "", + "description": "Sets an override color for the Octicon. Compatible with colors from the [Primer color system](https://primer.style/primitives/colors).\"" + }, + { + "name": "size", + "type": "number", + "defaultValue": "16", + "description": "Sets the uniform `width` and `height` of the SVG element" + }, + { + "name": "verticalAlign", + "type": "string", + "defaultValue": "text-bottom", + "description": "Sets the `vertical-align` CSS property" + }, + { + "name": "sx", + "type": "SystemStyleObject" + } + ], + "subcomponents": [] + }, "overlay": { "id": "overlay", "name": "Overlay", @@ -3892,55 +3892,6 @@ ], "subcomponents": [] }, - "styled_octicon": { - "id": "styled_octicon", - "name": "StyledOcticon", - "status": "alpha", - "a11yReviewed": false, - "stories": [ - { - "id": "components-styledocticon--default", - "code": "() => " - } - ], - "props": [ - { - "name": "ariaLabel", - "type": "string", - "defaultValue": "", - "description": "Specifies the aria-label attribute, which is read verbatim by screen readers " - }, - { - "name": "icon", - "type": "Component", - "defaultValue": "", - "description": "Checks the input by default in uncontrolled modeName of the [Octicon component](https://primer.style/octicons/) used in the" - }, - { - "name": "color", - "type": "string", - "defaultValue": "", - "description": "Sets an override color for the Octicon. Compatible with colors from the [Primer color system](https://primer.style/primitives/colors).\"" - }, - { - "name": "size", - "type": "number", - "defaultValue": "16", - "description": "Sets the uniform `width` and `height` of the SVG element" - }, - { - "name": "verticalAlign", - "type": "string", - "defaultValue": "text-bottom", - "description": "Sets the `vertical-align` CSS property" - }, - { - "name": "sx", - "type": "SystemStyleObject" - } - ], - "subcomponents": [] - }, "sub_nav": { "id": "sub_nav", "name": "SubNav", @@ -5245,4 +5196,4 @@ "subcomponents": [] } } -} +} \ No newline at end of file