{ "name": "react-spectrum-monorepo", "version": "2.21.0-beta.0", "private": true, "description": "Spectrum UI components in React", "repository": { "type": "git", "url": "https://github.com/adobe/react-spectrum" }, "workspaces": [ "packages/react-stately", "packages/react-aria", "packages/react-aria-components", "packages/tailwindcss-react-aria-components", "packages/dev/mcp/s2", "packages/dev/mcp/react-aria", "packages/dev/*", "packages/@*/*" ], "scripts": { "perf": "node perf/cli.mjs", "test:perf": "node --test perf/test/*.test.mjs", "check-types": "tsc --noEmit", "clean": "make clean", "clean:all": "make clean_all", "format": "oxfmt", "format:check": "oxfmt --check", "sync:starter-css": "node scripts/syncStarterCss.mjs", "check:starter-css": "node scripts/syncStarterCss.mjs --check", "install-16": "node scripts/react-16-install-prep.mjs && yarn add react@^16.8.0 react-dom@^16.8.0 @testing-library/react@^12 @testing-library/react-hooks@^8 @testing-library/dom@^8 react-test-renderer@^16.9.0 && node scripts/oldReactSupport.mjs", "install-17": "node scripts/react-17-install-prep.mjs && yarn add react@^17 react-dom@^17 @testing-library/react@^12 @testing-library/react-hooks@^8 @testing-library/dom@^8 react-test-renderer@^16.9.0 && node scripts/oldReactSupport.mjs", "install-18": "node scripts/react-18-install-prep.mjs && yarn add react@^18 react-dom@^18 react-test-renderer@^18.3.1 && node scripts/oldReactSupport.mjs", "install-canary": "node scripts/react-canary-install-prep.mjs && yarn add react@canary react-dom@canary", "start": "cross-env NODE_ENV=storybook storybook dev -p 9003 --ci -c '.storybook'", "start-parcel3": "cross-env NODE_ENV=storybook PARCEL_V3=1 storybook dev -p 9003 --ci -c '.storybook'", "build:storybook": "storybook build -c .storybook -o dist/$(git rev-parse HEAD)/storybook", "build:storybook-parcel3": "PARCEL_V3=1 storybook build -c .storybook -o dist/$(git rev-parse HEAD)/storybook", "start:chromatic": "CHROMATIC=1 NODE_ENV=storybook storybook dev -p 9004 --ci -c '.chromatic'", "start:chromatic-parcel3": "PARCEL_V3=1 CHROMATIC=1 NODE_ENV=storybook storybook dev -p 9004 --ci -c '.chromatic'", "build:chromatic": "CHROMATIC=1 storybook build -c .chromatic -o dist/$(git rev-parse HEAD)/chromatic --stats-json", "start:chromatic-fc": "CHROMATIC=1 NODE_ENV=storybook storybook dev -p 9005 --ci -c '.chromatic-fc'", "start:chromatic-fc-parcel3": "PARCEL_V3=1 CHROMATIC=1 NODE_ENV=storybook storybook dev -p 9005 --ci -c '.chromatic-fc'", "build:chromatic-fc": "CHROMATIC=1 storybook build -c .chromatic-fc -o dist/$(git rev-parse HEAD)/chromatic-fc --stats-json", "start:s2": "NODE_ENV=storybook storybook dev -p 6006 --ci -c '.storybook-s2'", "start:s2-parcel3": "NODE_ENV=storybook PARCEL_V3=1 storybook dev -p 6006 --ci -c '.storybook-s2'", "build:storybook-s2": "NODE_ENV=storybook storybook build -c .storybook-s2 -o dist/$(git rev-parse HEAD)/storybook-s2", "build:storybook-s2-parcel3": "NODE_ENV=storybook PARCEL_V3=1 storybook build -c .storybook-s2 -o dist/$(git rev-parse HEAD)/storybook-s2", "build:s2-storybook-docs": "NODE_ENV=storybook storybook build -c .storybook-s2 --docs", "start:docs": "DOCS_ENV=dev parcel 'packages/@adobe/react-spectrum/docs/**/*.mdx' 'packages/dev/docs/pages/{react-spectrum,releases}/**/*.mdx'", "build:docs": "DOCS_ENV=staging parcel build 'packages/@adobe/react-spectrum/docs/**/*.mdx' 'packages/dev/docs/pages/{react-spectrum,releases}/**/*.mdx'", "start:s2-docs": "yarn workspace @react-spectrum/s2-docs start", "start:s2-docs-parcel3": "yarn workspace @react-spectrum/s2-docs start:parcel3", "build:s2-docs": "yarn workspace @react-spectrum/s2-docs build", "build:s2-docs-parcel3": "yarn workspace @react-spectrum/s2-docs build:parcel3", "check:s2-docs-build": "node packages/dev/s2-docs/scripts/validateS2DocsBuild.mjs", "build:mcp": "yarn workspace @react-spectrum/mcp build && yarn workspace @react-aria/mcp build", "generate:skills": "node packages/dev/s2-docs/scripts/generateAgentSkills.mjs", "start:mcp": "yarn workspace @react-spectrum/s2-docs generate:md && yarn build:mcp && node packages/dev/mcp/s2/dist/index.js && node packages/dev/mcp/react-aria/dist/index.js", "test:mcp": "yarn build:s2-docs && yarn build:mcp && node packages/dev/mcp/scripts/smoke-list-pages.mjs", "test": "cross-env STRICT_MODE=1 VIRT_ON=1 yarn jest", "test:browser": "yarn playwright install && vitest run --config=vitest.browser.config.ts", "test:browser:watch": "yarn playwright install && vitest --config=vitest.browser.config.ts", "test:lint": "ls packages/**/*.test-lint.js | xargs -n 1 node", "test-loose": "cross-env VIRT_ON=1 yarn jest", "test-storybook": "test-storybook --url http://localhost:9003 --browsers chromium --no-cache", "test:docs": "yarn playwright install && node scripts/testDocs.js", "build": "make build", "test:ssr": "cross-env STRICT_MODE=1 yarn jest --runInBand --config jest.ssr.config.js", "ci-test": "cross-env STRICT_MODE=1 yarn jest --maxWorkers=2 && cross-env STRICT_MODE=1 yarn test:ssr --runInBand", "lint": "concurrently \"yarn format:check\" \"yarn check-types\" \"oxlint packages\" \"node scripts/lint-packages.js\" \"yarn constraints\"", "jest": "jest", "copyrights": "babel-node --presets @babel/env ./scripts/addHeaders.js", "build:icons": "babel-node --presets @babel/env ./scripts/buildIcons.js", "clean:icons": "babel-node --presets @babel/env ./scripts/cleanIcons.js", "postinstall": "patch-package && yarn build:icons", "chromatic": "NODE_ENV=production CHROMATIC=1 chromatic --project-token $CHROMATIC_PROJECT_TOKEN --build-script-name 'build:chromatic' --only-changed --trace-changed --externals './packages/**/style/**/*'", "chromatic:forced-colors": "NODE_ENV=production CHROMATIC=1 chromatic --project-token $CHROMATIC_FC_PROJECT_TOKEN --build-script-name 'build:chromatic-fc' --only-changed --trace-changed --externals './packages/**/style/**/*'", "merge:css": "babel-node --presets @babel/env ./scripts/merge-spectrum-css.js", "release": "lerna publish from-package --yes", "version:nightly": "yarn workspaces foreach --all --no-private -t version -d --force 3.0.0-nightly-$(git rev-parse --short HEAD)-$(date +'%y%m%d') && yarn apply-nightly --all", "publish:nightly": "yarn workspaces foreach --all --no-private -t npm publish --tag nightly --access public", "build:api-published": "node scripts/buildBranchAPI.js --githash=$(git rev-list -n 1 $(git tag -l 'react-aria-components@*' | grep -E '@[0-9]+\\.[0-9]+\\.0$' | sort -V | tail -1)) --output=base-api", "build:api-branch": "node scripts/buildBranchAPI.js", "compare:apis": "node scripts/compareAPIs.js", "check-apis": "yarn build:api-branch --githash=\"origin/main\" --output=\"base-api\" && yarn build:api-branch && yarn compare:apis", "check-published-apis": "yarn build:api-published && yarn build:api-branch && yarn compare:apis", "bumpVersions": "node scripts/bumpVersions.js", "test:parcel": "jest --testMatch '**/*.parceltest.{ts,tsx}'", "blc:local": "npx git+ssh://git@github.com:ktabors/rsp-blc.git -u http://localhost:1234/", "blc:prod": "npx git+ssh://git@github.com:ktabors/rsp-blc.git -u https://react-spectrum.adobe.com/", "createRssFeed": "node scripts/createFeed.mjs", "releaseNotes": "node scripts/changelog.js" }, "devDependencies": { "@actions/core": "^1.10.0", "@actions/github": "^1.1.0", "@babel/cli": "^7.24.1", "@babel/core": "^7.24.3", "@babel/node": "^7.23.9", "@babel/plugin-proposal-decorators": "^7.24.1", "@babel/plugin-transform-runtime": "^7.24.3", "@babel/preset-env": "^7.24.3", "@babel/preset-react": "^7.24.1", "@babel/preset-typescript": "^7.24.1", "@babel/register": "^7.23.7", "@faker-js/faker": "^8.4.1", "@jdb8/eslint-plugin-monorepo": "^1.0.1", "@octokit/rest": "*", "@parcel/bundler-library": "^2.16.3", "@parcel/config-default": "^2.16.3", "@parcel/config-storybook": "^0.0.2", "@parcel/core": "^2.16.3", "@parcel/optimizer-data-url": "^2.16.3", "@parcel/optimizer-terser": "^2.16.3", "@parcel/packager-react-static": "^2.16.3", "@parcel/packager-ts": "^2.16.3", "@parcel/parcel3": "^3.0.0-alpha.2", "@parcel/reporter-bundle-analyzer": "^2.16.3", "@parcel/reporter-cli": "^2.16.3", "@parcel/resolver-glob": "^2.16.3", "@parcel/rust": "^2.16.3", "@parcel/transformer-inline": "^2.16.3", "@parcel/transformer-inline-string": "^2.16.3", "@parcel/transformer-react-static": "^2.16.3", "@parcel/transformer-storybook-v3": "^0.0.3", "@parcel/transformer-svg-react": "^2.16.3", "@parcel/transformer-ts-doc": "^0.0.3", "@parcel/transformer-typescript-types": "^2.16.3", "@react-spectrum/parcel-namer-s2": "workspace:^", "@react-spectrum/s2-icon-builder": "workspace:^", "@spectrum-css/component-builder": "workspace:^", "@spectrum-css/vars": "^2.3.0", "@storybook/addon-a11y": "^10.0.0", "@storybook/addon-docs": "^10.0.0", "@storybook/addon-themes": "^10.0.0", "@storybook/react": "^10.0.0", "@storybook/test-runner": "^0.24.0", "@swc/core": "^1.3.36", "@swc/jest": "^0.2.39", "@tailwindcss/postcss": "^4.0.17", "@testing-library/dom": "^10.1.0", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.0", "@testing-library/user-event": "patch:@testing-library/user-event@npm%3A14.6.5#~/.yarn/patches/@testing-library-user-event-npm-14.6.5-1fcf457da8.patch", "@types/react": "^19.0.0", "@types/react-dom": "^19.0.0", "@vitejs/plugin-react": "^5.1.4", "@vitest/browser-playwright": "^4.0.17", "@vitest/browser-preview": "^4.0.17", "@vueless/storybook-dark-mode": "^10.0.0", "@yarnpkg/types": "^4.0.0", "autoprefixer": "^9.6.0", "axe-playwright": "^1.1.11", "babel-plugin-macros": "^3.0.1", "babel-plugin-react-remove-properties": "^0.3.0", "babel-plugin-transform-glob-import": "^1.0.1", "chalk": "^4.1.2", "chromatic": "^17.0.0", "clsx": "^2.0.0", "color-space": "^1.16.0", "concurrently": "^6.0.2", "cross-env": "^7.0.2", "cross-spawn": "^7.0.5", "delta-e": "^0.0.8", "diff": "^5.1.0", "eslint-import-resolver-node": "^0.3.10", "eslint-plugin-jest": "29.15.2", "exceljs": "^4.4.0", "fast-check": "^2.19.0", "fast-glob": "^3.1.0", "glob": "^11.0.3", "globals": "^15.11.0", "identity-obj-proxy": "^3.0.0", "ignore-styles": "^5.0.1", "is-mingw": "^2.0.0", "jest": "^30.0.0", "jest-environment-jsdom": "^30.0.0", "jest-junit": "^17.0.0", "json5": "^2.2.3", "lerna": "^3.13.2", "lucide-react": "^0.517.0", "md5": "^2.2.1", "mdast-util-to-string": "^4.0.0", "media-query-fns": "^2.1.2", "mock-match-media": "^1.0.0", "motion": "^12.23.6", "npm-cli-login": "^1.0.0", "oxfmt": "^0.48.0", "oxlint": "^1.71.0", "parcel": "^2.16.3", "parcel-optimizer-strict-mode": "workspace:^", "patch-package": "^6.2.0", "playwright": "^1.45.3", "postcss": "^8.4.24", "postcss-custom-properties": "^13.2.0", "postcss-import": "^15.1.0", "prop-types": "^15.8.1", "react": "^19.3.0", "react-dom": "^19.3.0", "react-frame-component": "^5.0.0", "react-test-renderer": "^19.3.0", "recast": "^0.23", "recursive-readdir": "^2.2.2", "regenerator-runtime": "0.13.3", "rehype-stringify": "^9.0.4", "rimraf": "^6.0.1", "shadow-dom-testing-library": "^1.13.1", "sharp": "^0.33.5", "storybook": "^10.0.0", "storybook-react-parcel": "workspace:^", "tailwind-variants": "patch:tailwind-variants@npm%3A0.3.1#~/.yarn/patches/tailwind-variants-npm-0.3.1-48888516de.patch", "tailwindcss": "^4.0.0", "tempy": "^0.5.0", "tw-animate-css": "^1.4.0", "typescript": "^7.0.2", "unplugin-parcel-macros": "^0.1.1", "verdaccio": "^6.0.0", "vite": "^7.3.2", "vite-plugin-svgr": "^4.5.0", "vitest": "^4.0.17", "vitest-browser-react": "^2.0.2", "walk-object": "^4.0.0", "xml": "^1.0.1" }, "resolutions": { "@babel/cli": "7.24.1", "@babel/core": "7.24.3", "@babel/parser": "7.24.4", "@babel/preset-env": "7.24.4", "@babel/runtime": "7.24.4", "@babel/traverse": "7.24.1", "@babel/types": "7.24.0", "@mdx-js/react": "2.0.0-rc.2", "@parcel/packager-react-static": "^2.16.3", "@parcel/workers": "2.16.4", "@sinclair/typebox": "0.27.10", "@testing-library/user-event": "patch:@testing-library/user-event@npm%3A14.6.5#~/.yarn/patches/@testing-library-user-event-npm-14.6.5-1fcf457da8.patch", "@types/babel__traverse": "7.20.7", "@types/node@npm:*": "^24", "@types/node@npm:>= 8": "^24", "@types/node@npm:^18.0.0": "^24", "@types/react": "19.3.0", "@types/react-dom": "19.3.0", "@types/unist@npm:*": "2.0.6", "ast-types": "0.16.1", "browserslist": "4.28.1", "lightningcss": "1.32.0", "micromark-extension-mdxjs": "patch:micromark-extension-mdxjs@npm%3A1.0.0#~/.yarn/patches/micromark-extension-mdxjs-npm-1.0.0-d2b6b69e4a.patch", "postcss": "8.4.31", "postcss-custom-properties": "13.2.0", "postcss-import": "15.1.0", "react": "19.3.0", "react-docgen-typescript@npm:^2.2.2": "patch:react-docgen-typescript@npm%3A2.4.0#~/.yarn/patches/react-docgen-typescript-npm-2.4.0-9669bef2f0.patch", "react-dom": "19.3.0", "react-refresh": "0.9.0", "react-test-renderer": "19.3.0", "recast": "0.23.6", "remark-mdx": "patch:remark-mdx@npm%3A2.0.0-rc.2#~/.yarn/patches/remark-mdx-npm-2.0.0-rc.2-7a71234e1f.patch", "remark-parse": "patch:remark-parse@npm%3A10.0.1#~/.yarn/patches/remark-parse-npm-10.0.1-e654d7df78.patch", "rsc-html-stream": "0.0.8", "svgo": "^3" }, "packageManager": "yarn@4.18.0", "@parcel/bundler-default": { "manualSharedBundles": [ { "name": "s2-styles", "assets": [ "packages/@react-spectrum/s2/**", "packages/dev/s2-docs/src/**", "packages/dev/s2-docs/pages/s2/**/*.{mdx,tsx,ts,js}" ], "types": [ "css" ] } ] }, "@parcel/resolver-default": { "packageExports": true }, "@parcel/transformer-css": { "cssModules": { "global": true, "pattern": "[content-hash]_[local]", "exclude": [ "perf/app/**", "**/*.global.css", "packages/@react-aria/example-theme/**", "packages/@react-spectrum/style-macro-s1/**", "packages/@react-spectrum/tree/**", "packages/@react-spectrum/color/src/*.tsx", "packages/@adobe/react-spectrum/src/tree/**", "packages/@adobe/react-spectrum/src/color/*.tsx", "packages/@react-spectrum/s2/**/*.{js,ts,tsx}", "packages/@react-spectrum/s2/stories/**", "packages/@react-spectrum/ai/**/*.{js,ts,tsx}", "packages/@react-spectrum/ai/stories/**", ".storybook-s2/**", "packages/dev/s2-docs/**", "starters/**", "packages/react-aria-components/stories/Sheet.css" ] }, "drafts": { "nesting": true }, "pseudoClasses": { "focusVisible": "focus-ring", "hover": "is-hovered" } } }