From de542e680f5e9df1b8becfc5c803f58263b280c0 Mon Sep 17 00:00:00 2001 From: Josh Black Date: Mon, 16 Sep 2024 15:44:03 -0500 Subject: [PATCH 1/7] feat: add wildcard imports as exports --- packages/react/src/FeatureFlags/index.ts | 1 + packages/react/src/Token/index.ts | 2 ++ .../src/__tests__/__snapshots__/exports.test.ts.snap | 10 ++++++++++ packages/react/src/deprecated/ActionList/index.ts | 2 +- packages/react/src/deprecated/index.ts | 7 ++++++- packages/react/src/experimental/index.ts | 2 +- packages/react/src/index.ts | 8 +++++--- 7 files changed, 26 insertions(+), 6 deletions(-) diff --git a/packages/react/src/FeatureFlags/index.ts b/packages/react/src/FeatureFlags/index.ts index 6e364de8102..5a04cce6524 100644 --- a/packages/react/src/FeatureFlags/index.ts +++ b/packages/react/src/FeatureFlags/index.ts @@ -1,3 +1,4 @@ export {FeatureFlags} from './FeatureFlags' export type {FeatureFlagsProps} from './FeatureFlags' export {useFeatureFlag} from './useFeatureFlag' +export {DefaultFeatureFlags} from './DefaultFeatureFlags' diff --git a/packages/react/src/Token/index.ts b/packages/react/src/Token/index.ts index 570bda99851..380c0100579 100644 --- a/packages/react/src/Token/index.ts +++ b/packages/react/src/Token/index.ts @@ -1,4 +1,6 @@ +export type {TokenSizeKeys} from './TokenBase' export {default} from './Token' export type {TokenProps} from './Token' export {default as IssueLabelToken} from './IssueLabelToken' +export type {IssueLabelTokenProps} from './IssueLabelToken' export {default as AvatarToken} from './AvatarToken' diff --git a/packages/react/src/__tests__/__snapshots__/exports.test.ts.snap b/packages/react/src/__tests__/__snapshots__/exports.test.ts.snap index 0aacd8ccf60..7dd8d301086 100644 --- a/packages/react/src/__tests__/__snapshots__/exports.test.ts.snap +++ b/packages/react/src/__tests__/__snapshots__/exports.test.ts.snap @@ -32,6 +32,8 @@ exports[`@primer/react should not update exports without a semver change 1`] = ` "AvatarToken", "BaseStyles", "type BaseStylesProps", + "type BetterCssProperties", + "type BetterSystemStyleObject", "Box", "type BoxProps", "BranchName", @@ -80,7 +82,9 @@ exports[`@primer/react should not update exports without a semver change 1`] = ` "IconButton", "type IconButtonProps", "IssueLabelToken", + "type IssueLabelTokenProps", "Label", + "type LabelColorOptions", "LabelGroup", "type LabelGroupProps", "type LabelProps", @@ -198,10 +202,12 @@ exports[`@primer/react should not update exports without a semver change 1`] = ` "useFocusTrap", "useFocusZone", "useFormControlForwardedProps", + "useIsomorphicLayoutEffect", "useOnEscapePress", "useOnOutsideClick", "useOpenAndCloseFocus", "useOverlay", + "useProvidedRefOrCreate", "useRefObjectAsForwardedRef", "useResizeObserver", "useResponsiveValue", @@ -213,6 +219,9 @@ exports[`@primer/react should not update exports without a semver change 1`] = ` exports[`@primer/react/deprecated should not update exports without a semver change 1`] = ` [ "ActionList", + "type ActionListGroupedListProps", + "type ActionListGroupProps", + "type ActionListItemProps", "type ActionListProps", "ActionMenu", "type ActionMenuProps", @@ -275,6 +284,7 @@ exports[`@primer/react/experimental should not update exports without a semver c "default", "default", "default", + "DefaultFeatureFlags", "Dialog", "type DialogButtonProps", "type DialogHeaderProps", diff --git a/packages/react/src/deprecated/ActionList/index.ts b/packages/react/src/deprecated/ActionList/index.ts index ae0bb410f65..60bacad8aaf 100644 --- a/packages/react/src/deprecated/ActionList/index.ts +++ b/packages/react/src/deprecated/ActionList/index.ts @@ -2,7 +2,7 @@ import {List} from './List' import {Group} from './Group' import {Item} from './Item' import {Divider} from './Divider' -export type {ListProps as ActionListProps} from './List' +export type {ListProps as ActionListProps, GroupedListProps} from './List' export type {GroupProps} from './Group' export type {ItemProps} from './Item' diff --git a/packages/react/src/deprecated/index.ts b/packages/react/src/deprecated/index.ts index 55f68741837..c1855693331 100644 --- a/packages/react/src/deprecated/index.ts +++ b/packages/react/src/deprecated/index.ts @@ -11,7 +11,12 @@ // Deprecated in v35.0.0 on March 9, 2022 // TODO: We can remove these 6 months after release: September 10, 2022 export {ActionList} from './ActionList' -export type {ActionListProps} from './ActionList' +export type { + ActionListProps, + ItemProps as ActionListItemProps, + GroupProps as ActionListGroupProps, + GroupedListProps as ActionListGroupedListProps, +} from './ActionList' export {ActionMenu} from './ActionMenu' export type {ActionMenuProps} from './ActionMenu' // (copied over from src/index) not exporting new DropdownMenu types yet due to conflict with Dropdown types above diff --git a/packages/react/src/experimental/index.ts b/packages/react/src/experimental/index.ts index 12a8a1a5b13..17a23c78479 100644 --- a/packages/react/src/experimental/index.ts +++ b/packages/react/src/experimental/index.ts @@ -83,7 +83,7 @@ export {UnderlinePanels} from './UnderlinePanels' export type {UnderlinePanelsProps, UnderlinePanelsTabProps, UnderlinePanelsPanelProps} from './UnderlinePanels' export {SkeletonBox, SkeletonText, SkeletonAvatar} from './Skeleton' -export {FeatureFlags} from '../FeatureFlags' +export {FeatureFlags, DefaultFeatureFlags} from '../FeatureFlags' export type {FeatureFlagsProps} from '../FeatureFlags' export {FilteredActionList} from '../FilteredActionList' diff --git a/packages/react/src/index.ts b/packages/react/src/index.ts index 24a4987c98a..87b20ec4eca 100644 --- a/packages/react/src/index.ts +++ b/packages/react/src/index.ts @@ -44,6 +44,8 @@ export type {FocusZoneHookSettings} from './hooks/useFocusZone' export {useRefObjectAsForwardedRef} from './hooks/useRefObjectAsForwardedRef' export {useResizeObserver} from './hooks/useResizeObserver' export {useResponsiveValue} from './hooks/useResponsiveValue' +export {default as useIsomorphicLayoutEffect} from './utils/useIsomorphicLayoutEffect' +export {useProvidedRefOrCreate} from './hooks/useProvidedRefOrCreate' // Utils export {createComponent} from './utils/create-component' @@ -104,7 +106,7 @@ export type {HeaderProps, HeaderItemProps, HeaderLinkProps} from './Header' export {default as Heading} from './Heading' export type {HeadingProps} from './Heading' export {default as Label} from './Label' -export type {LabelProps} from './Label' +export type {LabelProps, LabelColorOptions} from './Label' export {default as LabelGroup} from './LabelGroup' export type {LabelGroupProps} from './LabelGroup' export {default as Link} from './Link' @@ -169,7 +171,7 @@ export type { TimelineItemsProps, } from './Timeline' export {default as Token, IssueLabelToken, AvatarToken} from './Token' -export type {TokenProps} from './Token' +export type {TokenProps, IssueLabelTokenProps} from './Token' export {default as Tooltip} from './Tooltip/Tooltip' export type {TooltipProps} from './Tooltip/Tooltip' export {default as Truncate} from './Truncate' @@ -203,4 +205,4 @@ export {PageHeader} from './PageHeader' export type {PageHeaderProps} from './PageHeader' export {default as sx, merge} from './sx' -export type {SxProp} from './sx' +export type {BetterCssProperties, BetterSystemStyleObject, SxProp} from './sx' From 8ffd71112b5c9227c4373fd6105771bc99525b67 Mon Sep 17 00:00:00 2001 From: Josh Black Date: Mon, 16 Sep 2024 16:32:38 -0500 Subject: [PATCH 2/7] feat: add VisuallyHidden to @primer/react --- packages/react/src/Banner/Banner.tsx | 2 +- packages/react/src/Button/ButtonBase.tsx | 2 +- packages/react/src/DataTable/Pagination.tsx | 2 +- .../FilteredActionListWithDeprecatedActionList.tsx | 2 +- .../FilteredActionListWithModernActionList.tsx | 2 +- packages/react/src/Spinner/Spinner.examples.stories.tsx | 2 +- packages/react/src/Spinner/Spinner.tsx | 2 +- .../components => VisuallyHidden}/VisuallyHidden.tsx | 6 ++++-- packages/react/src/VisuallyHidden/index.ts | 2 ++ .../react/src/__tests__/__snapshots__/exports.test.ts.snap | 2 ++ .../src/experimental/Skeleton/Skeleton.examples.stories.tsx | 2 +- packages/react/src/index.ts | 3 +++ packages/react/src/internal/components/LiveRegion.tsx | 2 +- .../react/src/live-region/Announce.features.stories.tsx | 2 +- .../react/src/live-region/AriaAlert.features.stories.tsx | 2 +- .../react/src/live-region/AriaStatus.features.stories.tsx | 2 +- 16 files changed, 23 insertions(+), 14 deletions(-) rename packages/react/src/{internal/components => VisuallyHidden}/VisuallyHidden.tsx (83%) create mode 100644 packages/react/src/VisuallyHidden/index.ts diff --git a/packages/react/src/Banner/Banner.tsx b/packages/react/src/Banner/Banner.tsx index a60340c459a..c016cb8890b 100644 --- a/packages/react/src/Banner/Banner.tsx +++ b/packages/react/src/Banner/Banner.tsx @@ -4,7 +4,7 @@ import styled from 'styled-components' import {AlertIcon, InfoIcon, StopIcon, CheckCircleIcon, XIcon} from '@primer/octicons-react' import {Button, IconButton} from '../Button' import {get} from '../constants' -import {VisuallyHidden} from '../internal/components/VisuallyHidden' +import {VisuallyHidden} from '../VisuallyHidden' import {useMergedRefs} from '../internal/hooks/useMergedRefs' type BannerVariant = 'critical' | 'info' | 'success' | 'upsell' | 'warning' diff --git a/packages/react/src/Button/ButtonBase.tsx b/packages/react/src/Button/ButtonBase.tsx index 8f1bc8b856c..431c2eb221c 100644 --- a/packages/react/src/Button/ButtonBase.tsx +++ b/packages/react/src/Button/ButtonBase.tsx @@ -10,7 +10,7 @@ import {StyledButton} from './types' import {getVariantStyles, getButtonStyles, getAlignContentSize} from './styles' import {useRefObjectAsForwardedRef} from '../hooks/useRefObjectAsForwardedRef' import {defaultSxProp} from '../utils/defaultSxProp' -import {VisuallyHidden} from '../internal/components/VisuallyHidden' +import {VisuallyHidden} from '../VisuallyHidden' import Spinner from '../Spinner' import CounterLabel from '../CounterLabel' import {useId} from '../hooks' diff --git a/packages/react/src/DataTable/Pagination.tsx b/packages/react/src/DataTable/Pagination.tsx index b3c3dea1b56..938cb4fb3d4 100644 --- a/packages/react/src/DataTable/Pagination.tsx +++ b/packages/react/src/DataTable/Pagination.tsx @@ -4,7 +4,7 @@ import styled from 'styled-components' import {get} from '../constants' import {Button} from '../internal/components/ButtonReset' import {LiveRegion, LiveRegionOutlet, Message} from '../internal/components/LiveRegion' -import {VisuallyHidden} from '../internal/components/VisuallyHidden' +import {VisuallyHidden} from '../VisuallyHidden' import {warning} from '../utils/warning' import type {ResponsiveValue} from '../hooks/useResponsiveValue' import {viewportRanges} from '../hooks/useResponsiveValue' diff --git a/packages/react/src/FilteredActionList/FilteredActionListWithDeprecatedActionList.tsx b/packages/react/src/FilteredActionList/FilteredActionListWithDeprecatedActionList.tsx index 7bec423a15c..0152247f387 100644 --- a/packages/react/src/FilteredActionList/FilteredActionListWithDeprecatedActionList.tsx +++ b/packages/react/src/FilteredActionList/FilteredActionListWithDeprecatedActionList.tsx @@ -15,7 +15,7 @@ import {useId} from '../hooks/useId' import {useProvidedRefOrCreate} from '../hooks/useProvidedRefOrCreate' import {useProvidedStateOrCreate} from '../hooks/useProvidedStateOrCreate' import useScrollFlash from '../hooks/useScrollFlash' -import {VisuallyHidden} from '../internal/components/VisuallyHidden' +import {VisuallyHidden} from '../VisuallyHidden' import type {SxProp} from '../sx' const menuScrollMargins: ScrollIntoViewOptions = {startMargin: 0, endMargin: 8} diff --git a/packages/react/src/FilteredActionList/FilteredActionListWithModernActionList.tsx b/packages/react/src/FilteredActionList/FilteredActionListWithModernActionList.tsx index ae791e63909..2529dfb6667 100644 --- a/packages/react/src/FilteredActionList/FilteredActionListWithModernActionList.tsx +++ b/packages/react/src/FilteredActionList/FilteredActionListWithModernActionList.tsx @@ -15,7 +15,7 @@ import {useId} from '../hooks/useId' import {useProvidedRefOrCreate} from '../hooks/useProvidedRefOrCreate' import {useProvidedStateOrCreate} from '../hooks/useProvidedStateOrCreate' import useScrollFlash from '../hooks/useScrollFlash' -import {VisuallyHidden} from '../internal/components/VisuallyHidden' +import {VisuallyHidden} from '../VisuallyHidden' import type {SxProp} from '../sx' import {isValidElementType} from 'react-is' diff --git a/packages/react/src/Spinner/Spinner.examples.stories.tsx b/packages/react/src/Spinner/Spinner.examples.stories.tsx index a79b8642783..d9da39b83e0 100644 --- a/packages/react/src/Spinner/Spinner.examples.stories.tsx +++ b/packages/react/src/Spinner/Spinner.examples.stories.tsx @@ -2,7 +2,7 @@ import React from 'react' import type {Meta} from '@storybook/react' import Spinner from './Spinner' import {Box, Button} from '..' -import {VisuallyHidden} from '../internal/components/VisuallyHidden' +import {VisuallyHidden} from '../VisuallyHidden' import {AriaStatus} from '../live-region' export default { diff --git a/packages/react/src/Spinner/Spinner.tsx b/packages/react/src/Spinner/Spinner.tsx index 0a2336d69a7..46e55968e50 100644 --- a/packages/react/src/Spinner/Spinner.tsx +++ b/packages/react/src/Spinner/Spinner.tsx @@ -1,7 +1,7 @@ import React from 'react' import styled from 'styled-components' import sx, {type SxProp} from '../sx' -import {VisuallyHidden} from '../internal/components/VisuallyHidden' +import {VisuallyHidden} from '../VisuallyHidden' import type {HTMLDataAttributes} from '../internal/internal-types' import Box from '../Box' import {useId} from '../hooks' diff --git a/packages/react/src/internal/components/VisuallyHidden.tsx b/packages/react/src/VisuallyHidden/VisuallyHidden.tsx similarity index 83% rename from packages/react/src/internal/components/VisuallyHidden.tsx rename to packages/react/src/VisuallyHidden/VisuallyHidden.tsx index f6683aecc5b..546b6d2d812 100644 --- a/packages/react/src/internal/components/VisuallyHidden.tsx +++ b/packages/react/src/VisuallyHidden/VisuallyHidden.tsx @@ -1,6 +1,6 @@ import styled from 'styled-components' -import type {SxProp} from '../../sx' -import sx from '../../sx' +import type {SxProp} from '../sx' +import sx from '../sx' /** * Provides a component that implements the "visually hidden" technique. This is @@ -24,3 +24,5 @@ export const VisuallyHidden = styled.span` ${sx} ` + +export type VisuallyHiddenProps = React.ComponentPropsWithoutRef diff --git a/packages/react/src/VisuallyHidden/index.ts b/packages/react/src/VisuallyHidden/index.ts new file mode 100644 index 00000000000..9febdef85bf --- /dev/null +++ b/packages/react/src/VisuallyHidden/index.ts @@ -0,0 +1,2 @@ +export {VisuallyHidden} from './VisuallyHidden' +export type {VisuallyHiddenProps} from './VisuallyHidden' diff --git a/packages/react/src/__tests__/__snapshots__/exports.test.ts.snap b/packages/react/src/__tests__/__snapshots__/exports.test.ts.snap index 7dd8d301086..2191d6ca415 100644 --- a/packages/react/src/__tests__/__snapshots__/exports.test.ts.snap +++ b/packages/react/src/__tests__/__snapshots__/exports.test.ts.snap @@ -213,6 +213,8 @@ exports[`@primer/react should not update exports without a semver change 1`] = ` "useResponsiveValue", "useSafeTimeout", "useTheme", + "VisuallyHidden", + "type VisuallyHiddenProps", ] `; diff --git a/packages/react/src/experimental/Skeleton/Skeleton.examples.stories.tsx b/packages/react/src/experimental/Skeleton/Skeleton.examples.stories.tsx index 136a26b0a5e..1b2db00d72c 100644 --- a/packages/react/src/experimental/Skeleton/Skeleton.examples.stories.tsx +++ b/packages/react/src/experimental/Skeleton/Skeleton.examples.stories.tsx @@ -4,7 +4,7 @@ import type {ComponentProps} from '../../utils/types' import {SkeletonText} from './SkeletonText' import {Avatar, Box, Button, IconButton, Text} from '../../' import {SkeletonAvatar} from './SkeletonAvatar' -import {VisuallyHidden} from '../../internal/components/VisuallyHidden' +import {VisuallyHidden} from '../../VisuallyHidden' import {KebabHorizontalIcon} from '@primer/octicons-react' export default { diff --git a/packages/react/src/index.ts b/packages/react/src/index.ts index 87b20ec4eca..c4d89da90d9 100644 --- a/packages/react/src/index.ts +++ b/packages/react/src/index.ts @@ -192,6 +192,9 @@ export type { TreeViewErrorDialogProps, } from './TreeView' +export {VisuallyHidden} from './VisuallyHidden' +export type {VisuallyHiddenProps} from './VisuallyHidden' + export {UnderlineNav} from './UnderlineNav' export type {UnderlineNavProps, UnderlineNavItemProps} from './UnderlineNav' diff --git a/packages/react/src/internal/components/LiveRegion.tsx b/packages/react/src/internal/components/LiveRegion.tsx index 1f3a0433ac2..0bf93a6a8fb 100644 --- a/packages/react/src/internal/components/LiveRegion.tsx +++ b/packages/react/src/internal/components/LiveRegion.tsx @@ -1,5 +1,5 @@ import React from 'react' -import {VisuallyHidden} from './VisuallyHidden' +import {VisuallyHidden} from '../../VisuallyHidden' type LiveRegionContext = { announce: (message: string) => void diff --git a/packages/react/src/live-region/Announce.features.stories.tsx b/packages/react/src/live-region/Announce.features.stories.tsx index ea8a9f8831a..153f6f7f05c 100644 --- a/packages/react/src/live-region/Announce.features.stories.tsx +++ b/packages/react/src/live-region/Announce.features.stories.tsx @@ -1,7 +1,7 @@ import type {StoryObj} from '@storybook/react' import React, {useEffect, useState} from 'react' import {Announce} from './Announce' -import {VisuallyHidden} from '../internal/components/VisuallyHidden' +import {VisuallyHidden} from '../VisuallyHidden' export default { title: 'Experimental/Components/Announce/Features', diff --git a/packages/react/src/live-region/AriaAlert.features.stories.tsx b/packages/react/src/live-region/AriaAlert.features.stories.tsx index 10a5108ba01..dbdb41526c9 100644 --- a/packages/react/src/live-region/AriaAlert.features.stories.tsx +++ b/packages/react/src/live-region/AriaAlert.features.stories.tsx @@ -1,7 +1,7 @@ import type {StoryObj} from '@storybook/react' import React from 'react' import {AriaAlert} from './AriaAlert' -import {VisuallyHidden} from '../internal/components/VisuallyHidden' +import {VisuallyHidden} from '../VisuallyHidden' export default { title: 'Experimental/Components/AriaAlert/Features', diff --git a/packages/react/src/live-region/AriaStatus.features.stories.tsx b/packages/react/src/live-region/AriaStatus.features.stories.tsx index e7938445422..21f0d0b65b7 100644 --- a/packages/react/src/live-region/AriaStatus.features.stories.tsx +++ b/packages/react/src/live-region/AriaStatus.features.stories.tsx @@ -1,7 +1,7 @@ import type {StoryObj} from '@storybook/react' import React, {useEffect, useState} from 'react' import {AriaStatus} from './AriaStatus' -import {VisuallyHidden} from '../internal/components/VisuallyHidden' +import {VisuallyHidden} from '../VisuallyHidden' export default { title: 'Experimental/Components/AriaStatus/Features', From 729eee5377f24025e714c98606b16799866a445c Mon Sep 17 00:00:00 2001 From: Josh Black Date: Wed, 18 Sep 2024 11:04:31 -0500 Subject: [PATCH 3/7] chore: add test-helpers entry point --- packages/react/package.json | 4 ++++ packages/react/rollup.config.mjs | 3 +++ 2 files changed, 7 insertions(+) diff --git a/packages/react/package.json b/packages/react/package.json index b215919bfd4..b315cc593ef 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -21,6 +21,10 @@ "import": "./lib-esm/next/index.js", "require": "./lib/next/index.js" }, + "./test-helpers": { + "import": "./lib-esm/test-helpers.js", + "require": "./lib/test-helpers.js" + }, "./lib-esm/*": { "import": [ "./lib-esm/*.js", diff --git a/packages/react/rollup.config.mjs b/packages/react/rollup.config.mjs index d473a96efa5..6c4ad3cbe1f 100644 --- a/packages/react/rollup.config.mjs +++ b/packages/react/rollup.config.mjs @@ -29,6 +29,9 @@ const input = new Set([ // "./next" 'src/next/index.ts', + // "./test-helpers" + 'src/utils/test-helpers.tsx', + // Make sure all members are exported 'src/constants.ts', From b2a26fa74df31fc81cea24cf6b0244f5b4ec346d Mon Sep 17 00:00:00 2001 From: Josh Black Date: Wed, 18 Sep 2024 15:43:44 -0500 Subject: [PATCH 4/7] chore: add changeset --- .changeset/lucky-oranges-camp.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/lucky-oranges-camp.md diff --git a/.changeset/lucky-oranges-camp.md b/.changeset/lucky-oranges-camp.md new file mode 100644 index 00000000000..3804dafa3c4 --- /dev/null +++ b/.changeset/lucky-oranges-camp.md @@ -0,0 +1,5 @@ +--- +'@primer/react': minor +--- + +Add certain wildcard exports to named entry points From 78d267cc9f1edcdf09efc2f072c565902369b1a3 Mon Sep 17 00:00:00 2001 From: Josh Black Date: Thu, 19 Sep 2024 17:19:50 -0500 Subject: [PATCH 5/7] chore: update test-helpers entrypoint --- packages/react/package.json | 5 ++++- packages/react/rollup.config.mjs | 18 ++++++++++++++---- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/packages/react/package.json b/packages/react/package.json index 623bb36ec3d..957aa671185 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -40,7 +40,10 @@ "typings": "lib/index.d.ts", "sideEffects": [ "lib-esm/**/*.css", - "lib/**/*.css" + "lib/**/*.css", + "src/**/test-helpers.tsx", + "lib-esm/**/test-helpers.js", + "lib/**/test-helpers.js" ], "scripts": { "build": "./script/build", diff --git a/packages/react/rollup.config.mjs b/packages/react/rollup.config.mjs index 6c4ad3cbe1f..6b40253473f 100644 --- a/packages/react/rollup.config.mjs +++ b/packages/react/rollup.config.mjs @@ -29,9 +29,6 @@ const input = new Set([ // "./next" 'src/next/index.ts', - // "./test-helpers" - 'src/utils/test-helpers.tsx', - // Make sure all members are exported 'src/constants.ts', @@ -66,6 +63,15 @@ const input = new Set([ ), ]) +function getEntrypointsFromInput(input) { + return Object.fromEntries( + Array.from(input).map(value => { + const relativePath = path.relative('src', value) + return [path.join(path.dirname(relativePath), path.basename(relativePath, path.extname(relativePath))), value] + }), + ) +} + const extensions = ['.js', '.jsx', '.ts', '.tsx'] const ESM_ONLY = new Set([ '@github/combobox-nav', @@ -91,7 +97,11 @@ const postcssModulesOptions = { } const baseConfig = { - input: Array.from(input), + input: { + ...getEntrypointsFromInput(input), + // "./test-helpers" + 'test-helpers': 'src/utils/test-helpers.tsx', + }, plugins: [ babel({ extensions, From 3ba43ebdadfe8acf703200f865a963ef944e5a1d Mon Sep 17 00:00:00 2001 From: Josh Black Date: Thu, 19 Sep 2024 17:51:13 -0500 Subject: [PATCH 6/7] feat: add ActionListItemInput --- packages/react/src/__tests__/__snapshots__/exports.test.ts.snap | 1 + packages/react/src/deprecated/ActionList/index.ts | 2 +- packages/react/src/deprecated/index.ts | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/react/src/__tests__/__snapshots__/exports.test.ts.snap b/packages/react/src/__tests__/__snapshots__/exports.test.ts.snap index 425cf94aeb5..1a9b9690aec 100644 --- a/packages/react/src/__tests__/__snapshots__/exports.test.ts.snap +++ b/packages/react/src/__tests__/__snapshots__/exports.test.ts.snap @@ -223,6 +223,7 @@ exports[`@primer/react/deprecated should not update exports without a semver cha "ActionList", "type ActionListGroupedListProps", "type ActionListGroupProps", + "type ActionListItemInput", "type ActionListItemProps", "type ActionListProps", "ActionMenu", diff --git a/packages/react/src/deprecated/ActionList/index.ts b/packages/react/src/deprecated/ActionList/index.ts index 60bacad8aaf..416a195f8a1 100644 --- a/packages/react/src/deprecated/ActionList/index.ts +++ b/packages/react/src/deprecated/ActionList/index.ts @@ -2,7 +2,7 @@ import {List} from './List' import {Group} from './Group' import {Item} from './Item' import {Divider} from './Divider' -export type {ListProps as ActionListProps, GroupedListProps} from './List' +export type {ListProps as ActionListProps, GroupedListProps, ItemInput} from './List' export type {GroupProps} from './Group' export type {ItemProps} from './Item' diff --git a/packages/react/src/deprecated/index.ts b/packages/react/src/deprecated/index.ts index c1855693331..b6e01ec67e3 100644 --- a/packages/react/src/deprecated/index.ts +++ b/packages/react/src/deprecated/index.ts @@ -16,6 +16,7 @@ export type { ItemProps as ActionListItemProps, GroupProps as ActionListGroupProps, GroupedListProps as ActionListGroupedListProps, + ItemInput as ActionListItemInput, } from './ActionList' export {ActionMenu} from './ActionMenu' export type {ActionMenuProps} from './ActionMenu' From 97c8b54413931d5e34c7fbf789b52069b88f193e Mon Sep 17 00:00:00 2001 From: Josh Black Date: Tue, 24 Sep 2024 11:45:18 -0500 Subject: [PATCH 7/7] chore: add ForwardRefComponent to deprecated entrypoint --- packages/react/src/__tests__/__snapshots__/exports.test.ts.snap | 1 + packages/react/src/deprecated/index.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/packages/react/src/__tests__/__snapshots__/exports.test.ts.snap b/packages/react/src/__tests__/__snapshots__/exports.test.ts.snap index 1a9b9690aec..b16676e83f8 100644 --- a/packages/react/src/__tests__/__snapshots__/exports.test.ts.snap +++ b/packages/react/src/__tests__/__snapshots__/exports.test.ts.snap @@ -247,6 +247,7 @@ exports[`@primer/react/deprecated should not update exports without a semver cha "type DialogProps", "FilteredSearch", "type FilteredSearchProps", + "type ForwardRefComponent", "Octicon", "type OcticonProps", "Pagehead", diff --git a/packages/react/src/deprecated/index.ts b/packages/react/src/deprecated/index.ts index b6e01ec67e3..261a1cddc80 100644 --- a/packages/react/src/deprecated/index.ts +++ b/packages/react/src/deprecated/index.ts @@ -59,4 +59,5 @@ export {default as TabNav} from '../TabNav' export type {TabNavProps, TabNavLinkProps} from '../TabNav' export {default as Tooltip} from '../Tooltip/Tooltip' export type {TooltipProps} from '../Tooltip/Tooltip' +export type {ForwardRefComponent} from '../utils/polymorphic' // end of v37.0.0