diff --git a/.changeset/dull-books-fry.md b/.changeset/dull-books-fry.md new file mode 100644 index 00000000000..27ec456cb83 --- /dev/null +++ b/.changeset/dull-books-fry.md @@ -0,0 +1,5 @@ +--- +'@primer/styled-react': patch +--- + +Update exports from @primer/styled-react to be marked as deprecated diff --git a/packages/styled-react/src/__tests__/deprecated-exports.test.ts b/packages/styled-react/src/__tests__/deprecated-exports.test.ts new file mode 100644 index 00000000000..eff24a3f1b6 --- /dev/null +++ b/packages/styled-react/src/__tests__/deprecated-exports.test.ts @@ -0,0 +1,46 @@ +import {describe, test, expect} from 'vitest' +import ts from 'typescript' +import path from 'node:path' + +const entrypoints: Array< + [name: string, filepath: string, exports: Array<[name: string, deprecatedTag: boolean, deprecatedComment: boolean]>] +> = [ + ['@primer/styled-react', path.resolve(import.meta.dirname, '../index.tsx'), []], + ['@primer/styled-react/deprecated', path.resolve(import.meta.dirname, '../deprecated.tsx'), []], + ['@primer/styled-react/experimental', path.resolve(import.meta.dirname, '../experimental.tsx'), []], +] + +const program = ts.createProgram( + entrypoints.map(entrypoint => entrypoint[1]), + { + target: ts.ScriptTarget.Latest, + module: ts.ModuleKind.ESNext, + }, +) + +for (const [, filepath, exports] of entrypoints) { + const sourceFile = program.getSourceFile(filepath) + + ts.forEachChild(sourceFile!, node => { + if (ts.isExportDeclaration(node) && node.exportClause && ts.isNamedExports(node.exportClause)) { + for (const element of node.exportClause.elements) { + const jsDocTags = ts.getJSDocTags(element) + const deprecatedTag = jsDocTags.find(tag => tag.tagName.text === 'deprecated') + + exports.push([element.name.text, !!deprecatedTag, deprecatedTag ? deprecatedTag.comment !== undefined : false]) + } + } + }) +} + +describe.each(entrypoints)('%s', (_name, _filepath, exports) => { + describe.each(exports)('%s export', (_exportName, deprecatedTag, deprecatedComment) => { + test('deprecated', () => { + expect(deprecatedTag).toBe(true) + }) + + test('has deprecation comment', () => { + expect(deprecatedComment).toBe(true) + }) + }) +}) diff --git a/packages/styled-react/src/deprecated.tsx b/packages/styled-react/src/deprecated.tsx index 0d06314dd35..cc8644cd8f7 100644 --- a/packages/styled-react/src/deprecated.tsx +++ b/packages/styled-react/src/deprecated.tsx @@ -1,10 +1,93 @@ -export {TabNav, type TabNavProps, type TabNavLinkProps} from './components/deprecated/TabNav' -export {Dialog, type DialogProps, type DialogHeaderProps} from './components/deprecated/DialogV1' -export {Octicon, type OcticonProps} from './components/deprecated/Octicon' -export {Tooltip, type TooltipProps} from './components/deprecated/Tooltip' export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + TabNav, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + type TabNavProps, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + type TabNavLinkProps, +} from './components/deprecated/TabNav' + +export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + Dialog, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + type DialogProps, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + type DialogHeaderProps, +} from './components/deprecated/DialogV1' + +export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + Octicon, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + type OcticonProps, +} from './components/deprecated/Octicon' + +export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + Tooltip, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + type TooltipProps, +} from './components/deprecated/Tooltip' + +export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ ActionList, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ type ActionListProps, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ type ActionListItemProps, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ type ActionListGroupProps, } from './components/deprecated/ActionList' diff --git a/packages/styled-react/src/experimental.tsx b/packages/styled-react/src/experimental.tsx index c69f394f245..36257031c67 100644 --- a/packages/styled-react/src/experimental.tsx +++ b/packages/styled-react/src/experimental.tsx @@ -1,30 +1,147 @@ -export {Dialog, type DialogProps} from './components/Dialog' export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + Dialog, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + type DialogProps, +} from './components/Dialog' + +export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ PageHeader, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ type PageHeaderProps, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ type PageHeaderActionsProps, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ type PageHeaderTitleProps, } from './components/PageHeader' -export {Tooltip, type TooltipProps} from './components/Tooltip' +export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + Tooltip, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + type TooltipProps, +} from './components/Tooltip' export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ UnderlinePanels, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ type UnderlinePanelsProps, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ type UnderlinePanelsTabProps, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ type UnderlinePanelsPanelProps, } from './components/UnderlinePanels' export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ Table, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ type DataTableContainerProps, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ type TableProps, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ type TableHeadProps, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ type TableBodyProps, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ type TableRowProps, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ type TableHeaderProps, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ type TableCellProps, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ type TableTitleProps, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ type TableSubtitleProps, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ type TableActionsProps, } from './components/DataTable' diff --git a/packages/styled-react/src/index.tsx b/packages/styled-react/src/index.tsx index d94641a180f..6a2205e2508 100644 --- a/packages/styled-react/src/index.tsx +++ b/packages/styled-react/src/index.tsx @@ -1,82 +1,738 @@ 'use client' -export {Box, type BoxProps} from './components/Box' -export {Details} from '@primer/react' -export {ProgressBar} from '@primer/react' +export { + /** + * @deprecated This component is no longer supported. Prefer using CSS Modules + * instead. + */ + Box, + + /** + * @deprecated This component is no longer supported. Prefer using CSS Modules + * instead. + */ + type BoxProps, +} from './components/Box' + +export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + Details, +} from '@primer/react' + +export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + ProgressBar, +} from '@primer/react' // theming depends on styled-components -export {ThemeProvider, useTheme, useColorSchemeVar, type ThemeProviderProps} from './components/ThemeProvider' -export {BaseStyles, type BaseStylesProps} from './components/BaseStyles' -export {theme} from '@primer/react' +export { + /** + * @deprecated Theming in JavaScript is no longer supported. Prefer using + * `@primer/primitives` and CSS Modules instead. + */ + ThemeProvider, + + /** + * @deprecated Theming in JavaScript is no longer supported. Prefer using + * `@primer/primitives` and CSS Modules instead. + */ + useTheme, + + /** + * @deprecated Theming in JavaScript is no longer supported. Prefer using + * `@primer/primitives` and CSS Modules instead. + */ + useColorSchemeVar, -export {get as themeGet} from './theme-get' + /** + * @deprecated Theming in JavaScript is no longer supported. Prefer using + * `@primer/primitives` and CSS Modules instead. + */ + type ThemeProviderProps, +} from './components/ThemeProvider' export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + BaseStyles, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + type BaseStylesProps, +} from './components/BaseStyles' + +export { + /** + * @deprecated Theming in JavaScript is no longer supported. Prefer using + * `@primer/primitives` and CSS Modules instead. + */ + theme, +} from '@primer/react' + +export { + /** + * @deprecated Theming in JavaScript is no longer supported. Prefer using + * `@primer/primitives` and CSS Modules instead. + */ + get as themeGet, +} from './theme-get' + +export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ ActionList, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ type ActionListProps, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ type ActionListItemProps, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ type ActionListLinkItemProps, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ type ActionListGroupProps, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ type ActionListDividerProps, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ type ActionListLeadingVisualProps, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ type ActionListTrailingVisualProps, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ type ActionListTrailingActionProps, } from './components/ActionList' -export {ActionMenu} from './components/ActionMenu' -export {Autocomplete, type AutocompleteOverlayProps} from './components/Autocomplete' -export {Avatar, type AvatarProps} from './components/Avatar' -export {Breadcrumbs, Breadcrumb, type BreadcrumbsProps, type BreadcrumbsItemProps} from './components/Breadcrumbs' -export {ButtonComponent as Button, type ButtonComponentProps as ButtonProps} from './components/Button' -export {Checkbox, type CheckboxProps} from './components/Checkbox' -export {CheckboxGroup, type CheckboxGroupProps} from './components/CheckboxGroup' -export {CircleBadge} from './components/CircleBadge' -export {CounterLabel, type CounterLabelProps} from './components/CounterLabel' -export {Dialog, type DialogProps} from './components/Dialog' -export {Flash} from './components/Flash' -export {FormControl, type FormControlProps} from './components/FormControl' -export {Header, type HeaderProps} from './components/Header' -export {Heading} from './components/Heading' -export {IconButton, type IconButtonProps} from './components/IconButton' -export {Label, type LabelProps} from './components/Label' -export {Link, type LinkProps} from './components/Link' -export {LinkButton, type LinkButtonProps} from './components/LinkButton' -export {NavList, type NavListProps} from './components/NavList' -export {Overlay} from './components/Overlay' + +export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + ActionMenu, +} from './components/ActionMenu' + +export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + Autocomplete, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + type AutocompleteOverlayProps, +} from './components/Autocomplete' + +export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + Avatar, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + type AvatarProps, +} from './components/Avatar' + +export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + Breadcrumbs, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + Breadcrumb, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + type BreadcrumbsProps, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + type BreadcrumbsItemProps, +} from './components/Breadcrumbs' + +export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + ButtonComponent as Button, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + type ButtonComponentProps as ButtonProps, +} from './components/Button' + +export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + Checkbox, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + type CheckboxProps, +} from './components/Checkbox' + +export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + CheckboxGroup, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + type CheckboxGroupProps, +} from './components/CheckboxGroup' + +export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + CircleBadge, +} from './components/CircleBadge' + +export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + CounterLabel, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + type CounterLabelProps, +} from './components/CounterLabel' + +export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + Dialog, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + type DialogProps, +} from './components/Dialog' + +export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + Flash, +} from './components/Flash' + +export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + FormControl, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + type FormControlProps, +} from './components/FormControl' + +export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + Header, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + type HeaderProps, +} from './components/Header' + +export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + Heading, +} from './components/Heading' + +export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + IconButton, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + type IconButtonProps, +} from './components/IconButton' + +export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + Label, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + type LabelProps, +} from './components/Label' + +export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + Link, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + type LinkProps, +} from './components/Link' + +export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + LinkButton, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + type LinkButtonProps, +} from './components/LinkButton' + +export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + NavList, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + type NavListProps, +} from './components/NavList' + +export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + Overlay, +} from './components/Overlay' + export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ PageHeader, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ type PageHeaderProps, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ type PageHeaderActionsProps, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ type PageHeaderTitleProps, } from './components/PageHeader' -export {RadioGroup, type RadioGroupProps} from './components/RadioGroup' -export {RelativeTime, type RelativeTimeProps} from './components/RelativeTime' + +export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + RadioGroup, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + type RadioGroupProps, +} from './components/RadioGroup' + +export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + RelativeTime, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + type RelativeTimeProps, +} from './components/RelativeTime' + export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ SegmentedControl, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ type SegmentedControlProps, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ type SegmentedControlButtonProps, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ type SegmentedControlIconButtonProps, } from './components/SegmentedControl' -export {Select, type SelectProps} from './components/Select' -export {Spinner, type SpinnerProps} from './components/Spinner' -export {StateLabel, type StateLabelProps} from './components/StateLabel' -export {SubNav, type SubNavProps, type SubNavLinkProps} from './components/SubNav' -export {Text, type TextProps} from './components/Text' -export {Textarea, type TextareaProps} from './components/Textarea' -export {TextInput, type TextInputProps, type TextInputActionProps} from './components/TextInput' + +export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + Select, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + type SelectProps, +} from './components/Select' + +export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + Spinner, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + type SpinnerProps, +} from './components/Spinner' + +export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + StateLabel, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + type StateLabelProps, +} from './components/StateLabel' + +export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + SubNav, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + type SubNavProps, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + type SubNavLinkProps, +} from './components/SubNav' + +export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + Text, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + type TextProps, +} from './components/Text' + +export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + Textarea, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + type TextareaProps, +} from './components/Textarea' + +export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + TextInput, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + type TextInputProps, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + type TextInputActionProps, +} from './components/TextInput' + export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ Timeline, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ type TimelineProps, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ type TimelineItemProps, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ type TimelineBadgeProps, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ type TimelineBodyProps, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ type TimelineBreakProps, } from './components/Timeline' -export {ToggleSwitch, type ToggleSwitchProps} from './components/ToggleSwitch' -export {Tooltip, type TooltipProps} from './components/Tooltip' -export {Token, type TokenProps} from './components/Token' -export {Truncate, type TruncateProps} from './components/Truncate' -export {UnderlineNav, type UnderlineNavProps, type UnderlineNavItemProps} from './components/UnderlineNav' -export {merge, sx, type SxProp} from './sx' +export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + ToggleSwitch, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + type ToggleSwitchProps, +} from './components/ToggleSwitch' -export {type BetterSystemStyleObject} from './sx' +export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + Tooltip, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + type TooltipProps, +} from './components/Tooltip' + +export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + Token, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + type TokenProps, +} from './components/Token' + +export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + Truncate, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + type TruncateProps, +} from './components/Truncate' + +export { + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + UnderlineNav, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + type UnderlineNavProps, + + /** + * @deprecated Usage of the `sx` prop with this component is no longer + * supported. Use the component from `@primer/react` with CSS Modules instead. + */ + type UnderlineNavItemProps, +} from './components/UnderlineNav' + +export { + /** + * @deprecated Theming in JavaScript is no longer supported. Prefer using + * `@primer/primitives` and CSS Modules instead. + */ + merge, + + /** + * @deprecated Styling with the `sx` prop is no longer supported. Use CSS + * Modules instead + */ + sx, + + /** + * @deprecated Styling with the `sx` prop is no longer supported. Use CSS + * Modules instead + */ + type SxProp, +} from './sx' + +export { + /** + * @deprecated Styling with the `sx` prop is no longer supported. Use CSS + * Modules instead + */ + type BetterSystemStyleObject, +} from './sx'