Skip to content

Commit a5ac39d

Browse files
committed
Merge branch 'main' into feat-mesh-instance
2 parents 70191fb + e800b2e commit a5ac39d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+6961
-783
lines changed

.changeset/bitter-tips-hear.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@playcanvas/react": patch
3+
---
4+
5+
Fixing issue with Application schema validation

.changeset/large-carpets-post.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@playcanvas/react": patch
3+
---
4+
5+
Adds a deprecation warning to OrbitControls

.changeset/stale-pandas-fetch.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@playcanvas/react": minor
3+
---
4+
5+
Introduced a new declarative GLTF modification API. Users can now use the `<Gltf>` and `Modify` components to add, remove, and modify components (like `light`, `render`, `camera`) on entities within a loaded GLB hierarchy.

.github/workflows/changesets.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@ jobs:
2626
uses: pnpm/action-setup@v4
2727

2828
- name: Setup node.js
29-
uses: actions/setup-node@v5
29+
uses: actions/setup-node@v6
3030
with:
31-
node-version: 22
31+
node-version: 24
3232
cache: 'pnpm'
3333

3434
- name: Install dependencies

.github/workflows/test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222

2323
- name: Upload test results
2424
if: always()
25-
uses: actions/upload-artifact@v4
25+
uses: actions/upload-artifact@v5
2626
with:
2727
name: test-results
2828
path: |

package.json

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"description": "A monorepo for PlayCanvas React renderer and examples. Please see the packages directory for more information.",
44
"private": true,
55
"license": "MIT",
6-
"packageManager": "pnpm@10.17.1",
6+
"packageManager": "pnpm@10.20.0",
77
"repository": {
88
"type": "git",
99
"url": "https://github.com/playcanvas/react"
@@ -23,23 +23,23 @@
2323
},
2424
"devDependencies": {
2525
"@changesets/cli": "2.29.7",
26-
"@eslint/js": "9.36.0",
26+
"@eslint/js": "9.39.1",
2727
"@testing-library/dom": "10.4.1",
28-
"@types/react": "19.1.16",
29-
"@types/react-dom": "19.1.9",
30-
"@vitejs/plugin-react": "5.0.4",
31-
"eslint": "9.36.0",
28+
"@types/react": "19.2.2",
29+
"@types/react-dom": "19.2.2",
30+
"@vitejs/plugin-react": "5.1.0",
31+
"eslint": "9.39.1",
3232
"eslint-plugin-import": "2.32.0",
3333
"eslint-plugin-react": "7.37.5",
3434
"eslint-plugin-react-compiler": "19.0.0-beta-ebf51a3-20250411",
35-
"globals": "16.4.0",
35+
"globals": "16.5.0",
3636
"pkg-pr-new": "0.0.60",
37-
"type-fest": "5.0.1",
37+
"type-fest": "5.2.0",
3838
"typescript": "5.9.3",
39-
"typescript-eslint": "8.45.0",
39+
"typescript-eslint": "8.46.3",
4040
"vitest": "3.2.4"
4141
},
4242
"dependencies": {
43-
"next": "15.5.4"
43+
"next": "15.5.6"
4444
}
4545
}

packages/blocks/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,14 +60,14 @@
6060
"@radix-ui/react-tooltip": "^1.2.7",
6161
"class-variance-authority": "^0.7.1",
6262
"clsx": "^2.1.1",
63-
"lucide-react": "^0.511.0 || ^0.514.0 || ^0.515.0 || ^0.523.0 || ^0.525.0 || ^0.539.0 || ^0.542.0 || ^0.543.0 || ^0.544.0",
63+
"lucide-react": "^0.511.0 || ^0.514.0 || ^0.515.0 || ^0.523.0 || ^0.525.0 || ^0.539.0 || ^0.542.0 || ^0.543.0 || ^0.544.0 || ^0.552.0",
6464
"tailwind-merge": "^3.3.0",
6565
"tw-animate-css": "^1.3.0",
6666
"vaul": "^1.1.2"
6767
},
6868
"devDependencies": {
69-
"@types/react": "19.1.16",
70-
"@types/react-dom": "19.1.9",
69+
"@types/react": "19.2.2",
70+
"@types/react-dom": "19.2.2",
7171
"playcanvas": "2.11.8",
7272
"tsc-alias": "1.8.16"
7373
},

packages/docs/package.json

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"type": "module",
66
"main": "index.js",
77
"private": "true",
8-
"packageManager": "pnpm@10.17.1",
8+
"packageManager": "pnpm@10.20.0",
99
"scripts": {
1010
"dev": "next dev --turbopack",
1111
"build": "next build --turbopack --no-mangling",
@@ -24,11 +24,11 @@
2424
"class-variance-authority": "^0.7.1",
2525
"clsx": "^2.1.1",
2626
"leva": "^0.9.35 || ^0.10.0",
27-
"lucide-react": "^0.503.0 || ^0.511.0 || ^0.514.0 || ^0.515.0 || ^0.523.0 || ^0.525.0 || ^0.539.0 || ^0.542.0 || ^0.543.0 || ^0.544.0",
28-
"monaco-editor": "^0.52.0 || ^0.53.0",
27+
"lucide-react": "^0.503.0 || ^0.511.0 || ^0.514.0 || ^0.515.0 || ^0.523.0 || ^0.525.0 || ^0.539.0 || ^0.542.0 || ^0.543.0 || ^0.544.0 || ^0.552.0",
28+
"monaco-editor": "^0.52.0 || ^0.53.0 || ^0.54.0",
2929
"motion": "^11.13.1 || ^12.0.0",
30-
"next": "15.5.4",
31-
"next-mdx-remote-client": "2.1.6",
30+
"next": "15.5.6",
31+
"next-mdx-remote-client": "2.1.7",
3232
"playcanvas": "2.11.8",
3333
"react": "^19.1.0",
3434
"react-codesandboxer": "^3.1.5",
@@ -39,17 +39,17 @@
3939
"tailwind-merge": "^3.2.0"
4040
},
4141
"devDependencies": {
42-
"@tailwindcss/postcss": "4.1.14",
43-
"@types/node": "22.18.8",
42+
"@tailwindcss/postcss": "4.1.16",
43+
"@types/node": "22.19.0",
4444
"autoprefixer": "10.4.21",
4545
"globby": "15.0.0",
46-
"next": "15.5.4",
47-
"nextra": "4.5.1",
48-
"nextra-theme-docs": "4.5.1",
46+
"next": "15.5.6",
47+
"nextra": "4.6.0",
48+
"nextra-theme-docs": "4.6.0",
4949
"pagefind": "1.4.0",
5050
"postcss": "8.5.6",
51-
"shadcn": "3.3.1",
52-
"tailwindcss": "4.1.14",
51+
"shadcn": "3.5.0",
52+
"tailwindcss": "4.1.16",
5353
"tw-animate-css": "1.4.0"
5454
}
5555
}

packages/lib/package.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -95,15 +95,15 @@
9595
"access": "public"
9696
},
9797
"devDependencies": {
98-
"@testing-library/jest-dom": "6.9.0",
98+
"@testing-library/jest-dom": "6.9.1",
9999
"@testing-library/react": "16.3.0",
100-
"@types/node": "22.18.8",
101-
"@types/react": "19.1.16",
102-
"@types/react-dom": "19.1.9",
103-
"@vitejs/plugin-react": "5.0.4",
100+
"@types/node": "22.19.0",
101+
"@types/react": "19.2.2",
102+
"@types/react-dom": "19.2.2",
103+
"@vitejs/plugin-react": "5.1.0",
104104
"@vitest/coverage-v8": "3.2.4",
105105
"eslint-plugin-require-extensions": "0.1.3",
106-
"jsdom": "27.0.0",
106+
"jsdom": "27.1.0",
107107
"vitest": "3.2.4"
108108
},
109109
"dependencies": {

packages/lib/src/Application.tsx

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ export const ApplicationWithoutCanvas: FC<ApplicationWithoutCanvasProps> = (prop
189189
// These app properties can be updated without re-rendering
190190
useLayoutEffect(() => {
191191
if (!app) return;
192-
applyProps(app, componentDefinition.schema, otherProps as Record<keyof PlayCanvasApplication, unknown>);
192+
applyProps(app, componentDefinition.schema, otherProps as Record<string, unknown>);
193193
});
194194

195195
if (!app) return null;
@@ -220,7 +220,11 @@ type CanvasProps = {
220220
*/
221221
style?: Record<string, unknown>
222222
}
223-
interface ApplicationProps extends Partial<PublicProps<PlayCanvasApplication>>, CanvasProps {
223+
224+
// These props are excluded from the <Application/> component props.
225+
type ExcludedApplicationProps = 'mouse' | 'touch' | 'keyboard' | 'gamepads' | 'scene' | 'scripts' | 'assets';
226+
227+
interface ApplicationProps extends Omit<Partial<PublicProps<PlayCanvasApplication>>, ExcludedApplicationProps>, CanvasProps {
224228

225229
/**
226230
* Controls how the canvas fills the window and resizes when the window changes.
@@ -265,10 +269,13 @@ interface ApplicationWithoutCanvasProps extends ApplicationProps {
265269
canvasRef: React.RefObject<HTMLCanvasElement | null>;
266270
}
267271

272+
const exclude: ExcludedApplicationProps[] = ['mouse', 'touch', 'keyboard', 'gamepads', 'scene', 'scripts', 'assets'];
273+
268274
const componentDefinition = createComponentDefinition(
269275
"Application",
270276
() => getNullApplication(),
271-
(app) => app.destroy()
277+
(app) => app.destroy(),
278+
{ exclude }
272279
)
273280

274281
componentDefinition.schema = {

0 commit comments

Comments
 (0)