diff --git a/packages/playground/src/shared/custom-editable-components/App.tsx b/packages/playground/src/shared/custom-editable-components/App.tsx
new file mode 100644
index 0000000..b00c5cf
--- /dev/null
+++ b/packages/playground/src/shared/custom-editable-components/App.tsx
@@ -0,0 +1,33 @@
+import {editable as e, SheetProvider} from '@theatre/r3f'
+import {getProject} from '@theatre/core'
+import React from 'react'
+import {Canvas} from '@react-three/fiber'
+
+const EditablePoints = e('points', 'mesh')
+
+function App() {
+ return (
+
+ )
+}
+
+export default App
diff --git a/packages/playground/src/shared/custom-editable-components/index.tsx b/packages/playground/src/shared/custom-editable-components/index.tsx
new file mode 100644
index 0000000..5507263
--- /dev/null
+++ b/packages/playground/src/shared/custom-editable-components/index.tsx
@@ -0,0 +1,10 @@
+import React from 'react'
+import ReactDOM from 'react-dom'
+import App from './App'
+import studio from '@theatre/studio'
+import extension from '@theatre/r3f/dist/extension'
+
+studio.extend(extension)
+studio.initialize()
+
+ReactDOM.render(, document.getElementById('root'))
diff --git a/packages/r3f/src/main/editable.tsx b/packages/r3f/src/main/editable.tsx
index 2e28e97..07f5a8b 100644
--- a/packages/r3f/src/main/editable.tsx
+++ b/packages/r3f/src/main/editable.tsx
@@ -14,8 +14,8 @@ const createEditable = (
config: EditableFactoryConfig,
) => {
const editable = <
- T extends ComponentType | Keys | 'primitive',
- U extends T extends Keys ? T : Keys,
+ T extends ComponentType | keyof JSX.IntrinsicElements | 'primitive',
+ U extends Keys,
>(
Component: T,
type: T extends 'primitive' ? null : U,