diff --git a/package-lock.json b/package-lock.json
index 7b949b95ae7..6b8f5dea953 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -25859,7 +25859,6 @@
"@types/styled-system__theme-get": "^5.0.1",
"clsx": "^2.1.1",
"color2k": "^2.0.3",
- "deepmerge": "^4.3.1",
"focus-visible": "^5.2.1",
"history": "^5.0.0",
"hsluv": "1.0.1",
@@ -26414,6 +26413,9 @@
"packages/styled-react": {
"name": "@primer/styled-react",
"version": "1.0.0-rc.2",
+ "dependencies": {
+ "deepmerge": "^4.3.1"
+ },
"devDependencies": {
"@babel/preset-react": "^7.27.1",
"@babel/preset-typescript": "^7.27.1",
diff --git a/packages/react/package.json b/packages/react/package.json
index 0a9949b5949..ddc76827ddd 100644
--- a/packages/react/package.json
+++ b/packages/react/package.json
@@ -45,7 +45,6 @@
"build:docs:preview": "NODE_OPTIONS=--openssl-legacy-provider script/build-docs preview",
"build:components.json": "tsx script/components-json/build.ts",
"build:hooks.json": "tsx script/hooks-json/build.ts",
- "build:precompile-color-schemes": "tsx script/precompile-color-schemes.ts",
"lint:npm": "publint --types",
"storybook": "storybook",
"type-check": "tsc --noEmit",
@@ -87,7 +86,6 @@
"@types/styled-system__theme-get": "^5.0.1",
"clsx": "^2.1.1",
"color2k": "^2.0.3",
- "deepmerge": "^4.3.1",
"focus-visible": "^5.2.1",
"history": "^5.0.0",
"hsluv": "1.0.1",
diff --git a/packages/react/script/build b/packages/react/script/build
index 4dab4524738..e5b51cc32fd 100755
--- a/packages/react/script/build
+++ b/packages/react/script/build
@@ -5,9 +5,6 @@ set -e
# Clean up
npm run clean
-# Generate color schemes
-npm run build:precompile-color-schemes
-
# Generate types for CSS Modules
npm run type-css-modules
diff --git a/packages/react/src/__tests__/ThemeProvider.test.tsx b/packages/react/src/ThemeProvider/ThemeProvider.test.tsx
similarity index 83%
rename from packages/react/src/__tests__/ThemeProvider.test.tsx
rename to packages/react/src/ThemeProvider/ThemeProvider.test.tsx
index 0ac937b6880..af30308820b 100644
--- a/packages/react/src/__tests__/ThemeProvider.test.tsx
+++ b/packages/react/src/ThemeProvider/ThemeProvider.test.tsx
@@ -2,7 +2,8 @@ import {render, screen, waitFor} from '@testing-library/react'
import userEvent from '@testing-library/user-event'
import {describe, expect, it, vi} from 'vitest'
import React from 'react'
-import {Text, ThemeProvider, useColorSchemeVar, useTheme} from '..'
+import Text from '../Text'
+import {ThemeProvider, useColorSchemeVar, useTheme} from '../ThemeProvider'
// window.matchMedia() is not implemented by JSDOM so we have to create a mock:
// https://vijs.io/docs/manual-mocks#mocking-methods-which-are-not-implemented-in-jsdom
@@ -43,53 +44,9 @@ const exampleTheme = {
},
}
-it('respects theme prop', () => {
- const theme = {
- colors: {
- text: '#f00',
- },
- space: ['0', '0.25rem'],
- }
-
- render(
-
-
- Hello
-
- ,
- )
-
- expect(screen.getByText('Hello')).toHaveStyle('color: #f00')
- expect(screen.getByText('Hello')).toHaveStyle('margin-bottom: 4px')
-})
-
-it('has default theme', () => {
- render(
-
-
- Hello
-
- ,
- )
-
- expect(screen.getByText('Hello')).toMatchSnapshot()
-})
-
-it('inherits theme from parent', () => {
- render(
-
-
- Hello
-
- ,
- )
-
- expect(screen.getByText('Hello')).toHaveStyle('color: rgb(0, 0, 0)')
-})
-
it('defaults to light color scheme', () => {
render(
-
+
Hello
,
)
@@ -99,7 +56,7 @@ it('defaults to light color scheme', () => {
it('defaults to dark color scheme in night mode', () => {
render(
-
+
Hello
,
)
@@ -111,7 +68,7 @@ it('defaults to first color scheme when passed an invalid color scheme name', ()
const spy = vi.spyOn(console, 'error').mockImplementationOnce(() => {})
render(
-
+
Hello
,
)
@@ -124,7 +81,7 @@ it('defaults to first color scheme when passed an invalid color scheme name', ()
it('respects nightScheme prop', () => {
render(
-
+
Hello
,
)
@@ -134,7 +91,7 @@ it('respects nightScheme prop', () => {
it('respects nightScheme prop with colorMode="dark"', () => {
render(
-
+
Hello
,
)
@@ -144,7 +101,7 @@ it('respects nightScheme prop with colorMode="dark"', () => {
it('respects dayScheme prop', () => {
render(
-
+
Hello
,
)
@@ -154,7 +111,7 @@ it('respects dayScheme prop', () => {
it('respects dayScheme prop with colorMode="light"', () => {
render(
-
+
Hello
,
)
@@ -164,7 +121,7 @@ it('respects dayScheme prop with colorMode="light"', () => {
it('works in auto mode', () => {
render(
-
+
Hello
,
)
@@ -185,7 +142,7 @@ it('works in auto mode (dark)', () => {
}))
render(
-
+
Hello
,
)
@@ -201,7 +158,7 @@ it('updates when colorMode prop changes', async () => {
function App() {
const [colorMode, setColorMode] = React.useState<'day' | 'night'>('day')
return (
-
+
{colorMode}