diff --git a/README.md b/README.md
index 77027820..223623a2 100644
--- a/README.md
+++ b/README.md
@@ -14,17 +14,18 @@ Build performant 3D user interfaces for Three.js using @react-three/fiber and yo
TODO Release
+- fix: responsiveness incorrect - https://pmndrs.github.io/uikit/examples/apfel/?component=button
- fix: zoom with ortho camera
- fix: scroll jumps after scrolling once
- feat: nesting inside non root/container components (e.g. image)
- feat: drag/click threshold
- feat: input
- fix: decrease clipping rect when scrollbar present
+- feat: upgrade to yoga2.0
Roadmap
- on demand rendering to save battery for UI only apps / rendering to render targets
-- upgrade to yoga2.0
- virtual lists (support thousands of elements in a list by using fixed sizes and not using yoga)
- option to render to seperate render targets depending on element type (e.g. render text to high quality quad layer for WebXR)
- scrollIntoView
diff --git a/examples/apfel/package.json b/examples/apfel/package.json
index eb612a75..802ef019 100644
--- a/examples/apfel/package.json
+++ b/examples/apfel/package.json
@@ -10,12 +10,13 @@
"@react-three/uikit": "workspace:^",
"@react-three/uikit-lucide": "workspace:^",
"@splinetool/r3f-spline": "^1.0.2",
- "@types/three": "^0.160.0",
+ "@types/three": "^0.161.0",
+ "@vitejs/plugin-basic-ssl": "^1.1.0",
"maath": "^0.10.7",
"r3f-perf": "^7.1.2",
"react": "^18.2.0",
"react-dom": "^18.2.0",
- "three": "^0.160.0"
+ "three": "^0.161.0"
},
"scripts": {
"dev": "vite --host",
diff --git a/examples/apfel/src/App.tsx b/examples/apfel/src/App.tsx
index 90b0f223..a08fffae 100644
--- a/examples/apfel/src/App.tsx
+++ b/examples/apfel/src/App.tsx
@@ -1,29 +1,32 @@
import { Canvas } from '@react-three/fiber'
import { Fullscreen, Text, Container } from '@react-three/uikit'
-import { BoxSelect, ChevronRight, Copy, Info } from '@react-three/uikit-lucide'
+import { Copy } from '@react-three/uikit-lucide'
import { XWebPointers, noEvents } from '@coconut-xr/xinteraction/react'
import { Card } from '@/card'
-import { Checkbox } from '@/checkbox'
-import { List, ListItem } from '@/list'
import { Button } from '@/button'
-import { Progress } from '@/progress'
import { Tabs, TabsButton } from '@/tabs'
-import { Loading } from '@/loading'
-import { Slider } from '@/slider'
-import { TabBar, TabBarItem } from '@/tab-bar'
import { Defaults } from '@/theme'
import { useState } from 'react'
+import { TextOnCard } from './components/card'
+import { CheckboxOnCard } from './components/checkbox'
+import { ButtonsOnCard } from './components/button'
+import { ListsOnCard } from './components/list'
+import { SlidersOnCard } from './components/slider'
+import { TabsOnCard } from './components/tabs'
+import { TabBarWithText } from './components/tab-bar'
+import { ProgressBarsOnCard } from './components/progress'
+import { LoadingSpinnersOnCard } from './components/loading'
const componentPages = {
- card: CardPage,
- checkbox: CheckboxesPage,
- button: ButtonsPage,
- list: ListsPage,
- slider: SlidersPage,
- tabs: TabsPage,
- 'tab-bar': TabBarsPage,
- progress: ProgressPage,
- loading: LoadingPage,
+ card: TextOnCard,
+ checkbox: CheckboxOnCard,
+ button: ButtonsOnCard,
+ list: ListsOnCard,
+ slider: SlidersOnCard,
+ tabs: TabsOnCard,
+ 'tab-bar': TabBarWithText,
+ progress: ProgressBarsOnCard,
+ loading: LoadingSpinnersOnCard,
}
const defaultComponent = 'button'
@@ -93,453 +96,3 @@ export default function App() {
)
}
-
-export function CheckboxesPage() {
- return (
-
-
-
-
- )
-}
-
-export function CardPage() {
- return (
-
- Hello World!
-
- This is the apfel kit.
-
-
- )
-}
-
-export function ButtonsPage() {
- return (
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- )
-}
-
-export function ListsPage() {
- return (
-
-
-
-
- Subtitle}
- trailingAccessory={}
- >
- Title
-
- }>
- Title
-
- Subtitle}
- selected
- trailingAccessory={}
- >
- Title
-
-
-
-
-
- Subtitle}
- leadingAccessory={}
- trailingAccessory={
-
- }
- >
- Title
-
- }
- trailingAccessory={
-
- }
- >
- Title
-
- Subtitle}
- selected
- leadingAccessory={}
- trailingAccessory={
-
- }
- >
- Title
-
-
-
-
-
-
-
- Subtitle}
- trailingAccessory={}
- >
- Title
-
- }>
- Title
-
- Subtitle}
- trailingAccessory={}
- >
- Title
-
-
-
-
-
- Subtitle}
- leadingAccessory={}
- trailingAccessory={
-
- }
- >
- Title
-
- }
- trailingAccessory={
-
- }
- >
- Title
-
- Subtitle}
- leadingAccessory={}
- trailingAccessory={
-
- }
- >
- Title
-
-
-
-
-
- )
-}
-
-export function ProgressPage() {
- return (
-
-
-
-
-
-
-
- )
-}
-
-export function LoadingPage() {
- return (
-
-
-
-
-
- )
-}
-
-export function TabsPage() {
- return (
-
-
-
- Label
-
-
- Label
-
-
- Label
-
-
- Long Label
-
-
- Disabled
-
-
-
-
-
- Label
-
-
-
- Label
-
-
-
- Label
-
-
-
- Disabled
-
-
-
-
- Label
-
-
- Label
-
-
- Label
-
-
- Long Label
-
-
- Disabled
-
-
-
- )
-}
-
-export function SlidersPage() {
- return (
-
-
-
-
- } />
- } />
-
-
-
-
- } />
- } />
-
-
- )
-}
-
-export function TabBarsPage() {
- return (
-
- }>
- Label
-
- }>
- Label
-
- }>
- Label
-
- }>
- Label
-
-
- )
-}
diff --git a/examples/apfel/src/components/button.tsx b/examples/apfel/src/components/button.tsx
new file mode 100644
index 00000000..fd5e25d6
--- /dev/null
+++ b/examples/apfel/src/components/button.tsx
@@ -0,0 +1,181 @@
+import { Container, Text } from '@react-three/uikit'
+import { Card } from '@/card'
+import { Button } from '@/button'
+import { BoxSelect } from '@react-three/uikit-lucide'
+
+export function ButtonsOnCard() {
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
diff --git a/examples/apfel/src/components/card.tsx b/examples/apfel/src/components/card.tsx
new file mode 100644
index 00000000..1a57168d
--- /dev/null
+++ b/examples/apfel/src/components/card.tsx
@@ -0,0 +1,13 @@
+import { Text } from '@react-three/uikit'
+import { Card } from '@/card'
+
+export function TextOnCard() {
+ return (
+
+ Hello World!
+
+ This is the apfel kit.
+
+
+ )
+}
diff --git a/examples/apfel/src/components/checkbox.tsx b/examples/apfel/src/components/checkbox.tsx
new file mode 100644
index 00000000..5df94b90
--- /dev/null
+++ b/examples/apfel/src/components/checkbox.tsx
@@ -0,0 +1,11 @@
+import { Card } from '@/card'
+import { Checkbox } from '@/checkbox'
+
+export function CheckboxOnCard() {
+ return (
+
+
+
+
+ )
+}
diff --git a/examples/apfel/src/components/list.tsx b/examples/apfel/src/components/list.tsx
new file mode 100644
index 00000000..659ae3b1
--- /dev/null
+++ b/examples/apfel/src/components/list.tsx
@@ -0,0 +1,132 @@
+import { Text, Container } from '@react-three/uikit'
+import { BoxSelect, ChevronRight, Info } from '@react-three/uikit-lucide'
+import { Card } from '@/card'
+import { List, ListItem } from '@/list'
+import { Button } from '@/button'
+
+export function ListsOnCard() {
+ return (
+
+
+
+
+ Subtitle}
+ trailingAccessory={}
+ >
+ Title
+
+ }>
+ Title
+
+ Subtitle}
+ selected
+ trailingAccessory={}
+ >
+ Title
+
+
+
+
+
+ Subtitle}
+ leadingAccessory={}
+ trailingAccessory={
+
+ }
+ >
+ Title
+
+ }
+ trailingAccessory={
+
+ }
+ >
+ Title
+
+ Subtitle}
+ selected
+ leadingAccessory={}
+ trailingAccessory={
+
+ }
+ >
+ Title
+
+
+
+
+
+
+
+ Subtitle}
+ trailingAccessory={}
+ >
+ Title
+
+ }>
+ Title
+
+ Subtitle}
+ trailingAccessory={}
+ >
+ Title
+
+
+
+
+
+ Subtitle}
+ leadingAccessory={}
+ trailingAccessory={
+
+ }
+ >
+ Title
+
+ }
+ trailingAccessory={
+
+ }
+ >
+ Title
+
+ Subtitle}
+ leadingAccessory={}
+ trailingAccessory={
+
+ }
+ >
+ Title
+
+
+
+
+
+ )
+}
diff --git a/examples/apfel/src/components/loading.tsx b/examples/apfel/src/components/loading.tsx
new file mode 100644
index 00000000..bc2fcd46
--- /dev/null
+++ b/examples/apfel/src/components/loading.tsx
@@ -0,0 +1,12 @@
+import { Card } from '@/card'
+import { Loading } from '@/loading'
+
+export function LoadingSpinnersOnCard() {
+ return (
+
+
+
+
+
+ )
+}
diff --git a/examples/apfel/src/components/progress.tsx b/examples/apfel/src/components/progress.tsx
new file mode 100644
index 00000000..6c130e3e
--- /dev/null
+++ b/examples/apfel/src/components/progress.tsx
@@ -0,0 +1,14 @@
+import { Card } from '@/card'
+import { Progress } from '@/progress'
+
+export function ProgressBarsOnCard() {
+ return (
+
+
+
+
+
+
+
+ )
+}
diff --git a/examples/apfel/src/components/slider.tsx b/examples/apfel/src/components/slider.tsx
new file mode 100644
index 00000000..2502dadc
--- /dev/null
+++ b/examples/apfel/src/components/slider.tsx
@@ -0,0 +1,30 @@
+import { Container } from '@react-three/uikit'
+import { BoxSelect } from '@react-three/uikit-lucide'
+import { Card } from '@/card'
+import { Slider } from '@/slider'
+
+export function SlidersOnCard() {
+ return (
+
+
+
+
+ } />
+ } />
+
+
+
+
+ } />
+ } />
+
+
+ )
+}
diff --git a/examples/apfel/src/components/tab-bar.tsx b/examples/apfel/src/components/tab-bar.tsx
new file mode 100644
index 00000000..b9c4c5e4
--- /dev/null
+++ b/examples/apfel/src/components/tab-bar.tsx
@@ -0,0 +1,22 @@
+import { Text } from '@react-three/uikit'
+import { BoxSelect } from '@react-three/uikit-lucide'
+import { TabBar, TabBarItem } from '@/tab-bar'
+
+export function TabBarWithText() {
+ return (
+
+ }>
+ Label
+
+ }>
+ Label
+
+ }>
+ Label
+
+ }>
+ Label
+
+
+ )
+}
diff --git a/examples/apfel/src/components/tabs.tsx b/examples/apfel/src/components/tabs.tsx
new file mode 100644
index 00000000..8e6265dd
--- /dev/null
+++ b/examples/apfel/src/components/tabs.tsx
@@ -0,0 +1,63 @@
+import { Text } from '@react-three/uikit'
+import { BoxSelect } from '@react-three/uikit-lucide'
+import { Card } from '@/card'
+import { Tabs, TabsButton } from '@/tabs'
+
+export function TabsOnCard() {
+ return (
+
+
+
+ Label
+
+
+ Label
+
+
+ Label
+
+
+ Long Label
+
+
+ Disabled
+
+
+
+
+
+ Label
+
+
+
+ Label
+
+
+
+ Label
+
+
+
+ Disabled
+
+
+
+
+ Label
+
+
+ Label
+
+
+ Label
+
+
+ Long Label
+
+
+ Disabled
+
+
+
+ )
+}
diff --git a/examples/apfel/vite.config.ts b/examples/apfel/vite.config.ts
index d205f71d..83d150f5 100644
--- a/examples/apfel/vite.config.ts
+++ b/examples/apfel/vite.config.ts
@@ -1,10 +1,11 @@
import { defineConfig } from 'vite'
import path from 'path'
import react from '@vitejs/plugin-react'
+import basicSsl from '@vitejs/plugin-basic-ssl'
// https://vitejs.dev/config/
export default defineConfig({
- plugins: [react()],
+ plugins: [react(), basicSsl()],
optimizeDeps: {
include: ['@react-three/uikit-lucide', '@react-three/uikit'],
},
diff --git a/examples/card/package.json b/examples/card/package.json
index 3dcfca48..01c2cd2c 100644
--- a/examples/card/package.json
+++ b/examples/card/package.json
@@ -9,12 +9,12 @@
"@react-three/uikit": "workspace:^",
"@react-three/uikit-lucide": "workspace:^",
"@splinetool/r3f-spline": "^1.0.2",
- "@types/three": "^0.160.0",
+ "@types/three": "^0.161.0",
"maath": "^0.10.7",
"r3f-perf": "^7.1.2",
"react": "^18.2.0",
"react-dom": "^18.2.0",
- "three": "^0.160.0"
+ "three": "^0.161.0"
},
"scripts": {
"dev": "vite --host",
diff --git a/examples/card/src/App.jsx b/examples/card/src/App.jsx
index 7a18b075..8cde9232 100644
--- a/examples/card/src/App.jsx
+++ b/examples/card/src/App.jsx
@@ -84,7 +84,7 @@ export function CardPage() {
paddingTop={28 + 4}
alignItems="center"
justifyContent="space-between"
- borderRadiusBottom={20}
+ borderBottomRadius={20}
castShadow
>
diff --git a/examples/dashboard/package.json b/examples/dashboard/package.json
index 63a24f6c..651780d6 100644
--- a/examples/dashboard/package.json
+++ b/examples/dashboard/package.json
@@ -7,11 +7,11 @@
"@react-three/postprocessing": "^2.16.0",
"@react-three/uikit": "workspace:^",
"@react-three/uikit-lucide": "workspace:^",
- "@types/three": "^0.160.0",
+ "@types/three": "^0.161.0",
"r3f-perf": "^7.1.2",
"react": "^18.2.0",
"react-dom": "^18.2.0",
- "three": "^0.160.0",
+ "three": "^0.161.0",
"vite-plugin-mkcert": "^1.17.4",
"zustand": "4"
},
diff --git a/examples/dashboard/src/components/Overview.tsx b/examples/dashboard/src/components/Overview.tsx
index 72a6252e..8c18c9a3 100644
--- a/examples/dashboard/src/components/Overview.tsx
+++ b/examples/dashboard/src/components/Overview.tsx
@@ -76,7 +76,7 @@ export function Overview() {
)
}
-
-export function TooltipDemo() {
- return (
-
-
-
-
-
- Add to library
-
-
- )
-}
-
-export function AlertDialogDemo() {
- return (
-
-
-
-
-
-
-
- Are you absolutely sure?
-
-
-
- This action cannot be undone. This will permanently delete your account and remove your data from our
- servers.
-
-
-
-
-
- Cancel
-
-
- Continue
-
-
-
-
- )
-}
-
-export function DialogDemo() {
- return (
-
- )
-}
-
-function ToggleGroupDemo() {
- return (
-
-
-
-
-
-
-
-
-
-
-
- )
-}
-
-function ToggleDemo() {
- return (
-
-
-
- )
-}
-
-function TabsDemo() {
- return (
-
-
-
- Account
-
-
- Password
-
-
-
-
-
-
- Account
-
-
- Make changes to your account here. Click save when you're done.
-
-
-
-
-
- Pedro Duarte
-
-
-
- @peduarte
-
-
-
-
-
-
-
-
-
-
-
- Password
-
-
- Change your password here. After saving, you'll be logged out.
-
-
-
-
-
- password
-
-
-
- password
-
-
-
-
-
-
-
-
- )
-}
-
-function SwitchDemo() {
- return (
-
-
-
-
- )
-}
-
-function SliderDemo() {
- return
-}
-
-function SkeletonDemo() {
- return (
-
-
-
-
-
-
-
- )
-}
-
-function SeparatorDemo() {
- return (
-
-
-
- Radix Primitives
-
-
- An open-source UI component library.
-
-
-
-
-
- Blog
-
- Docs
-
- Source
-
-
-
- )
-}
-
-function RadioGroupDemo() {
- return (
-
-
-
-
-
-
-
-
-
-
-
- )
-}
-
-function ProgressDemo() {
- const [progress, setProgress] = useState(13)
-
- useEffect(() => {
- const timer = setTimeout(() => setProgress(66), 500)
- return () => clearTimeout(timer)
- }, [])
-
- return
-}
-
-function PaginationDemo() {
- return (
-
-
-
-
-
-
-
- 1
-
-
-
-
- 2
-
-
-
-
- 3
-
-
-
-
-
-
-
-
-
-
- )
-}
-
-function CheckboxDemo() {
- return (
-
-
-
-
- )
-}
-
-const notifications = [
- {
- title: 'Your call has been confirmed.',
- description: '1 hour ago',
- },
- {
- title: 'You have a new message!',
- description: '1 hour ago',
- },
- {
- title: 'Your subscription is expiring soon!',
- description: '2 hours ago',
- },
-]
-
-function CardDemo() {
- return (
-
-
-
- Notifications
-
-
- You have 3 unread messages.
-
-
-
-
-
-
-
- Push Notifications
-
-
- Send notifications to device.
-
-
-
-
-
- {notifications.map((notification, index) => (
-
-
-
-
- {notification.title}
-
-
- {notification.description}
-
-
-
- ))}
-
-
-
-
-
-
- )
-}
-
-function ButtonDemo() {
- return (
-
- )
-}
-
-function BadgeDemo() {
- return (
-
- Badge
-
- )
-}
-
-function AvatarDemo() {
- return (
-
-
-
- )
-}
-
-function AlertDemo() {
- return (
-
-
-
-
-
- Error
-
-
- You can add components to your app using the cli.
-
-
- )
-}
-
-//TODO: type="single" collapsible
-export function AccordionDemo() {
- return (
-
-
-
-
- Is it accessible?
-
-
- Yes. It adheres to the WAI-ARIA design pattern.
-
-
-
-
- Is it styled?
-
-
- Yes. It comes with default styles that matches the other components' aesthetic.
-
-
-
-
- Is it animated?
-
-
- Yes. It's animated by default, but you can disable it if you prefer.
-
-
-
-
- )
-}
diff --git a/examples/default/src/components/accordion.tsx b/examples/default/src/components/accordion.tsx
new file mode 100644
index 00000000..ab055aad
--- /dev/null
+++ b/examples/default/src/components/accordion.tsx
@@ -0,0 +1,36 @@
+import { Text, Container } from '@react-three/uikit'
+import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@/accordion'
+
+//TODO: type="single" collapsible
+export function AccordionDemo() {
+ return (
+
+
+
+
+ Is it accessible?
+
+
+ Yes. It adheres to the WAI-ARIA design pattern.
+
+
+
+
+ Is it styled?
+
+
+ Yes. It comes with default styles that matches the other components' aesthetic.
+
+
+
+
+ Is it animated?
+
+
+ Yes. It's animated by default, but you can disable it if you prefer.
+
+
+
+
+ )
+}
diff --git a/examples/default/src/components/alert-dialog.tsx b/examples/default/src/components/alert-dialog.tsx
new file mode 100644
index 00000000..9fee4431
--- /dev/null
+++ b/examples/default/src/components/alert-dialog.tsx
@@ -0,0 +1,46 @@
+import { Text } from '@react-three/uikit'
+import { Button } from '@/button'
+import {
+ AlertDialog,
+ AlertDialogAction,
+ AlertDialogCancel,
+ AlertDialogContent,
+ AlertDialogDescription,
+ AlertDialogFooter,
+ AlertDialogHeader,
+ AlertDialogTitle,
+ AlertDialogTrigger,
+} from '@/alert-dialog.js'
+
+export function AlertDialogDemo() {
+ return (
+
+
+
+
+
+
+
+ Are you absolutely sure?
+
+
+
+ This action cannot be undone. This will permanently delete your account and remove your data from our
+ servers.
+
+
+
+
+
+ Cancel
+
+
+ Continue
+
+
+
+
+ )
+}
diff --git a/examples/default/src/components/alert.tsx b/examples/default/src/components/alert.tsx
new file mode 100644
index 00000000..0c8cf1b8
--- /dev/null
+++ b/examples/default/src/components/alert.tsx
@@ -0,0 +1,19 @@
+import { Text } from '@react-three/uikit'
+import { Terminal } from '@react-three/uikit-lucide'
+import { Alert, AlertDescription, AlertIcon, AlertTitle } from '@/alert'
+
+export function AlertDemo() {
+ return (
+
+
+
+
+
+ Error
+
+
+ You can add components to your app using the cli.
+
+
+ )
+}
diff --git a/examples/default/src/components/avatar.tsx b/examples/default/src/components/avatar.tsx
new file mode 100644
index 00000000..cdf5acc5
--- /dev/null
+++ b/examples/default/src/components/avatar.tsx
@@ -0,0 +1,10 @@
+import { Container } from '@react-three/uikit'
+import { Avatar } from '@/avatar'
+
+export function AvatarDemo() {
+ return (
+
+
+
+ )
+}
diff --git a/examples/default/src/components/badge.tsx b/examples/default/src/components/badge.tsx
new file mode 100644
index 00000000..aed02b34
--- /dev/null
+++ b/examples/default/src/components/badge.tsx
@@ -0,0 +1,10 @@
+import { Text } from '@react-three/uikit'
+import { Badge } from '@/badge'
+
+export function BadgeDemo() {
+ return (
+
+ Badge
+
+ )
+}
diff --git a/examples/default/src/components/button.tsx b/examples/default/src/components/button.tsx
new file mode 100644
index 00000000..d965150a
--- /dev/null
+++ b/examples/default/src/components/button.tsx
@@ -0,0 +1,10 @@
+import { ChevronRight } from '@react-three/uikit-lucide'
+import { Button } from '@/button'
+
+export function ButtonDemo() {
+ return (
+
+ )
+}
diff --git a/examples/default/src/components/card.tsx b/examples/default/src/components/card.tsx
new file mode 100644
index 00000000..5c880203
--- /dev/null
+++ b/examples/default/src/components/card.tsx
@@ -0,0 +1,78 @@
+import { Text, Container } from '@react-three/uikit'
+import { BellRing, Check } from '@react-three/uikit-lucide'
+import { colors } from '@/theme'
+import { Button } from '@/button'
+import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from '@/card'
+import { Switch } from '@/switch'
+
+const notifications = [
+ {
+ title: 'Your call has been confirmed.',
+ description: '1 hour ago',
+ },
+ {
+ title: 'You have a new message!',
+ description: '1 hour ago',
+ },
+ {
+ title: 'Your subscription is expiring soon!',
+ description: '2 hours ago',
+ },
+]
+
+export function CardDemo() {
+ return (
+
+
+
+ Notifications
+
+
+ You have 3 unread messages.
+
+
+
+
+
+
+
+ Push Notifications
+
+
+ Send notifications to device.
+
+
+
+
+
+ {notifications.map((notification, index) => (
+
+
+
+
+ {notification.title}
+
+
+ {notification.description}
+
+
+
+ ))}
+
+
+
+
+
+
+ )
+}
diff --git a/examples/default/src/components/checkbox.tsx b/examples/default/src/components/checkbox.tsx
new file mode 100644
index 00000000..c54811a4
--- /dev/null
+++ b/examples/default/src/components/checkbox.tsx
@@ -0,0 +1,14 @@
+import { Text, Container } from '@react-three/uikit'
+import { Checkbox } from '@/checkbox'
+import { Label } from '@/label'
+
+export function CheckboxDemo() {
+ return (
+
+
+
+
+ )
+}
diff --git a/examples/default/src/components/dialog.tsx b/examples/default/src/components/dialog.tsx
new file mode 100644
index 00000000..4b30c7e9
--- /dev/null
+++ b/examples/default/src/components/dialog.tsx
@@ -0,0 +1,53 @@
+import { Text, Container } from '@react-three/uikit'
+import { Button } from '@/button'
+import { Label } from '@/label'
+import {
+ Dialog,
+ DialogContent,
+ DialogDescription,
+ DialogFooter,
+ DialogHeader,
+ DialogTitle,
+ DialogTrigger,
+} from '@/dialog.js'
+
+export function DialogDemo() {
+ return (
+
+ )
+}
diff --git a/examples/default/src/components/label.tsx b/examples/default/src/components/label.tsx
new file mode 100644
index 00000000..dff3b820
--- /dev/null
+++ b/examples/default/src/components/label.tsx
@@ -0,0 +1,14 @@
+import { Text, Container } from '@react-three/uikit'
+import { Checkbox } from '@/checkbox'
+import { Label } from '@/label'
+
+export function LabelDemo() {
+ return (
+
+
+
+
+ )
+}
diff --git a/examples/default/src/components/pagination.tsx b/examples/default/src/components/pagination.tsx
new file mode 100644
index 00000000..30a13c15
--- /dev/null
+++ b/examples/default/src/components/pagination.tsx
@@ -0,0 +1,43 @@
+import { Text } from '@react-three/uikit'
+import {
+ Pagination,
+ PaginationContent,
+ PaginationEllipsis,
+ PaginationItem,
+ PaginationLink,
+ PaginationNext,
+ PaginationPrevious,
+} from '@/pagination'
+
+export function PaginationDemo() {
+ return (
+
+
+
+
+
+
+
+ 1
+
+
+
+
+ 2
+
+
+
+
+ 3
+
+
+
+
+
+
+
+
+
+
+ )
+}
diff --git a/examples/default/src/components/progress.tsx b/examples/default/src/components/progress.tsx
new file mode 100644
index 00000000..91b55983
--- /dev/null
+++ b/examples/default/src/components/progress.tsx
@@ -0,0 +1,13 @@
+import { useEffect, useState } from 'react'
+import { Progress } from '@/progress'
+
+export function ProgressDemo() {
+ const [progress, setProgress] = useState(13)
+
+ useEffect(() => {
+ const timer = setTimeout(() => setProgress(66), 500)
+ return () => clearTimeout(timer)
+ }, [])
+
+ return
+}
diff --git a/examples/default/src/components/radio-group.tsx b/examples/default/src/components/radio-group.tsx
new file mode 100644
index 00000000..737365fb
--- /dev/null
+++ b/examples/default/src/components/radio-group.tsx
@@ -0,0 +1,25 @@
+import { Text } from '@react-three/uikit'
+import { Label } from '@/label'
+import { RadioGroup, RadioGroupItem } from '@/radio-group'
+
+export function RadioGroupDemo() {
+ return (
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
diff --git a/examples/default/src/components/separator.tsx b/examples/default/src/components/separator.tsx
new file mode 100644
index 00000000..e9b5d46d
--- /dev/null
+++ b/examples/default/src/components/separator.tsx
@@ -0,0 +1,28 @@
+import { DefaultProperties, Text, Container } from '@react-three/uikit'
+import { colors } from '@/theme'
+import { Separator } from '@/separator'
+
+export function SeparatorDemo() {
+ return (
+
+
+
+ Radix Primitives
+
+
+ An open-source UI component library.
+
+
+
+
+
+ Blog
+
+ Docs
+
+ Source
+
+
+
+ )
+}
diff --git a/examples/default/src/components/skeleton.tsx b/examples/default/src/components/skeleton.tsx
new file mode 100644
index 00000000..9280e60b
--- /dev/null
+++ b/examples/default/src/components/skeleton.tsx
@@ -0,0 +1,14 @@
+import { Container } from '@react-three/uikit'
+import { Skeleton } from '@/skeleton'
+
+export function SkeletonDemo() {
+ return (
+
+
+
+
+
+
+
+ )
+}
diff --git a/examples/default/src/components/slider.tsx b/examples/default/src/components/slider.tsx
new file mode 100644
index 00000000..1d53acba
--- /dev/null
+++ b/examples/default/src/components/slider.tsx
@@ -0,0 +1,5 @@
+import { Slider } from '@/slider'
+
+export function SliderDemo() {
+ return
+}
diff --git a/examples/default/src/components/switch.tsx b/examples/default/src/components/switch.tsx
new file mode 100644
index 00000000..84b6c9ef
--- /dev/null
+++ b/examples/default/src/components/switch.tsx
@@ -0,0 +1,14 @@
+import { Text, Container } from '@react-three/uikit'
+import { Label } from '@/label'
+import { Switch } from '@/switch'
+
+export function SwitchDemo() {
+ return (
+
+
+
+
+ )
+}
diff --git a/examples/default/src/components/tabs.tsx b/examples/default/src/components/tabs.tsx
new file mode 100644
index 00000000..9a60c4c5
--- /dev/null
+++ b/examples/default/src/components/tabs.tsx
@@ -0,0 +1,82 @@
+import { Text, Container } from '@react-three/uikit'
+import { Button } from '@/button'
+import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from '@/card'
+import { Label } from '@/label'
+import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/tabs'
+
+export function TabsDemo() {
+ return (
+
+
+
+ Account
+
+
+ Password
+
+
+
+
+
+
+ Account
+
+
+ Make changes to your account here. Click save when you're done.
+
+
+
+
+
+ Pedro Duarte
+
+
+
+ @peduarte
+
+
+
+
+
+
+
+
+
+
+
+ Password
+
+
+ Change your password here. After saving, you'll be logged out.
+
+
+
+
+
+ password
+
+
+
+ password
+
+
+
+
+
+
+
+
+ )
+}
diff --git a/examples/default/src/components/toggle-group.tsx b/examples/default/src/components/toggle-group.tsx
new file mode 100644
index 00000000..316f4862
--- /dev/null
+++ b/examples/default/src/components/toggle-group.tsx
@@ -0,0 +1,18 @@
+import { Bold, Italic, Underline } from '@react-three/uikit-lucide'
+import { ToggleGroup, ToggleGroupItem } from '@/toggle-group'
+
+export function ToggleGroupDemo() {
+ return (
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
diff --git a/examples/default/src/components/toggle.tsx b/examples/default/src/components/toggle.tsx
new file mode 100644
index 00000000..73303a2e
--- /dev/null
+++ b/examples/default/src/components/toggle.tsx
@@ -0,0 +1,10 @@
+import { Bold } from '@react-three/uikit-lucide'
+import { Toggle } from '@/toggle'
+
+export function ToggleDemo() {
+ return (
+
+
+
+ )
+}
diff --git a/examples/default/src/components/tooltip.tsx b/examples/default/src/components/tooltip.tsx
new file mode 100644
index 00000000..29b40283
--- /dev/null
+++ b/examples/default/src/components/tooltip.tsx
@@ -0,0 +1,18 @@
+import { Text } from '@react-three/uikit'
+import { Button } from '@/button'
+import { Tooltip, TooltipContent, TooltipTrigger } from '@/tooltip.js'
+
+export function TooltipDemo() {
+ return (
+
+
+
+
+
+ Add to library
+
+
+ )
+}
diff --git a/examples/market/package.json b/examples/market/package.json
index c3deb8d3..edd56ea7 100644
--- a/examples/market/package.json
+++ b/examples/market/package.json
@@ -6,11 +6,11 @@
"@react-three/postprocessing": "^2.16.0",
"@react-three/uikit": "workspace:^",
"@react-three/uikit-lucide": "workspace:^",
- "@types/three": "^0.160.0",
+ "@types/three": "^0.161.0",
"r3f-perf": "^7.1.2",
"react": "^18.2.0",
"react-dom": "^18.2.0",
- "three": "^0.160.0"
+ "three": "^0.161.0"
},
"scripts": {
"dev": "vite --host",
diff --git a/examples/uikit/package.json b/examples/uikit/package.json
index 44d5ad81..87d206cb 100644
--- a/examples/uikit/package.json
+++ b/examples/uikit/package.json
@@ -7,12 +7,12 @@
"@react-three/uikit": "workspace:^",
"react": "^18.2.0",
"react-dom": "^18.2.0",
- "three": "^0.160.0"
+ "three": "^0.161.0"
},
"scripts": {
"dev": "vite --host"
},
"devDependencies": {
- "@types/three": "^0.160.0"
+ "@types/three": "^0.161.0"
}
}
diff --git a/package.json b/package.json
index 3439160d..63dfa555 100644
--- a/package.json
+++ b/package.json
@@ -1,4 +1,5 @@
{
+ "type": "module",
"devDependencies": {
"@react-three/eslint-plugin": "^0.1.1",
"@types/chai": "^4.3.10",
diff --git a/packages/kits/apfel/card.tsx b/packages/kits/apfel/card.tsx
index a906e63c..aacc971f 100644
--- a/packages/kits/apfel/card.tsx
+++ b/packages/kits/apfel/card.tsx
@@ -11,7 +11,7 @@ export function Card({ children, ...props }: ComponentPropsWithoutRef
diff --git a/packages/kits/apfel/list.tsx b/packages/kits/apfel/list.tsx
index 48a03fde..eee3a290 100644
--- a/packages/kits/apfel/list.tsx
+++ b/packages/kits/apfel/list.tsx
@@ -43,8 +43,8 @@ export function ListItem({
diff --git a/packages/kits/apfel/tab-bar.tsx b/packages/kits/apfel/tab-bar.tsx
index bf9aadfb..e25068e7 100644
--- a/packages/kits/apfel/tab-bar.tsx
+++ b/packages/kits/apfel/tab-bar.tsx
@@ -34,14 +34,22 @@ export function TabBar({
}) {
const [internalValue, setInternalValue] = useState(defaultValue)
const value = valueProp !== undefined ? valueProp : internalValue
-
- const setValue = useCallback((value: string) => {
- setInternalValue(value)
- onValueChange?.(value)
- }, [])
+ const onValueChangeRef = useRef(onValueChange)
+ onValueChangeRef.current = onValueChange
const [isExpanded, setIsExpanded] = useState(false)
- const context = useMemo(() => ({ isExpanded, setIsExpanded, value, setValue }), [isExpanded, value])
+ const context = useMemo(
+ () => ({
+ isExpanded,
+ setIsExpanded,
+ value,
+ setValue: (value: string) => {
+ setInternalValue(value)
+ onValueChangeRef.current?.(value)
+ },
+ }),
+ [isExpanded, value],
+ )
const timeoutRef = useRef()
diff --git a/packages/kits/apfel/tabs.tsx b/packages/kits/apfel/tabs.tsx
index a2c79446..e51c26f9 100644
--- a/packages/kits/apfel/tabs.tsx
+++ b/packages/kits/apfel/tabs.tsx
@@ -53,7 +53,7 @@ export function Tabs({
borderColor={colors.background}
borderBend={disabled ? 0 : -0.3}
borderRadius={18}
- backgroundMaterialClass={GlassMaterial}
+ panelMaterialClass={GlassMaterial}
flexDirection="row"
{...props}
/>
@@ -89,7 +89,7 @@ export function TabsButton({ children, value, disabled, ...props }: SegmentedCon
border={2}
borderRadius={16}
borderBend={0.3}
- backgroundMaterialClass={GlassMaterial}
+ panelMaterialClass={GlassMaterial}
flexDirection="row"
alignItems="center"
gapColumn={10}
diff --git a/packages/kits/apfel/text-input.tsx b/packages/kits/apfel/text-input.tsx
index 7fc401b7..afb1a1e2 100644
--- a/packages/kits/apfel/text-input.tsx
+++ b/packages/kits/apfel/text-input.tsx
@@ -48,7 +48,7 @@ export function TextInput({
borderColor="#444"
borderOpacity={opacity}
borderBend={disabled ? 0 : -0.3}
- material={material}
+ materialClass={material}
{...props}
onPointerEnter={(e) => {
setHoverCount((current) => current + 1);
diff --git a/packages/kits/default/package.json b/packages/kits/default/package.json
index 208dd0c8..1c440f43 100644
--- a/packages/kits/default/package.json
+++ b/packages/kits/default/package.json
@@ -11,8 +11,8 @@
"@react-three/uikit": "workspace:^",
"@react-three/uikit-lucide": "workspace:^",
"@types/react": "^18.2.47",
- "@types/three": "^0.160.0",
- "three": "^0.160.0"
+ "@types/three": "^0.161.0",
+ "three": "^0.161.0"
},
"type": "module",
"dependencies": {
diff --git a/packages/uikit/package.json b/packages/uikit/package.json
index 395b0754..26f28618 100644
--- a/packages/uikit/package.json
+++ b/packages/uikit/package.json
@@ -40,7 +40,7 @@
"peerDependencies": {
"@react-three/fiber": ">=8",
"react": ">=18",
- "three": ">=0.140"
+ "three": ">=0.160"
},
"dependencies": {
"@preact/signals-core": "^1.5.1",
@@ -59,11 +59,11 @@
"@types/prompts": "^2.4.9",
"@types/react": "^18.2.47",
"@types/react-dom": "^18.2.18",
- "@types/three": "^0.160.0",
+ "@types/three": "^0.161.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"replace-in-files-cli": "^2.2.0",
- "three": "^0.160.0",
+ "three": "^0.161.0",
"wasmwrap": "^1.0.0"
}
}
diff --git a/packages/uikit/src/components/container.tsx b/packages/uikit/src/components/container.tsx
index 9c67a113..4ebea473 100644
--- a/packages/uikit/src/components/container.tsx
+++ b/packages/uikit/src/components/container.tsx
@@ -60,7 +60,7 @@ export const Container = forwardRef<
{
children?: ReactNode
zIndexOffset?: ZIndexOffset
- backgroundMaterialClass?: MaterialClass
+ panelMaterialClass?: MaterialClass
} & ContainerProperties &
EventHandlers &
LayoutListeners &
@@ -76,7 +76,7 @@ export const Container = forwardRef<
const parentClippingRect = useParentClippingRect()
const globalMatrix = useGlobalMatrix(transformMatrix)
const isClipped = useIsClipped(parentClippingRect, globalMatrix, node.size, node)
- const groupDeps = usePanelGroupDependencies(properties.backgroundMaterialClass, properties)
+ const groupDeps = usePanelGroupDependencies(properties.panelMaterialClass, properties)
const orderInfo = useOrderInfo(ElementType.Panel, properties.zIndexOffset, groupDeps)
useInstancedPanel(
collection,
@@ -99,7 +99,7 @@ export const Container = forwardRef<
node,
globalMatrix,
isClipped,
- properties.scrollbarMaterialClass,
+ properties.scrollbarPanelMaterialClass,
parentClippingRect,
orderInfo,
)
diff --git a/packages/uikit/src/components/content.tsx b/packages/uikit/src/components/content.tsx
index d03c5a8a..c9eb8b7d 100644
--- a/packages/uikit/src/components/content.tsx
+++ b/packages/uikit/src/components/content.tsx
@@ -63,7 +63,7 @@ export const Content = forwardRef<
{
children?: ReactNode
zIndexOffset?: ZIndexOffset
- backgroundMaterialClass?: MaterialClass
+ panelMaterialClass?: MaterialClass
keepAspectRatio?: boolean
} & ContentProperties &
EventHandlers &
@@ -81,7 +81,7 @@ export const Content = forwardRef<
const isClipped = useIsClipped(parentClippingRect, globalMatrix, node.size, node)
useLayoutListeners(properties, node.size)
useViewportListeners(properties, isClipped)
- const groupDeps = usePanelGroupDependencies(properties.backgroundMaterialClass, properties)
+ const groupDeps = usePanelGroupDependencies(properties.panelMaterialClass, properties)
const backgroundOrderInfo = useOrderInfo(ElementType.Panel, properties.zIndexOffset, groupDeps)
useInstancedPanel(
collection,
diff --git a/packages/uikit/src/components/fullscreen.tsx b/packages/uikit/src/components/fullscreen.tsx
index a1713a13..50e948b9 100644
--- a/packages/uikit/src/components/fullscreen.tsx
+++ b/packages/uikit/src/components/fullscreen.tsx
@@ -14,30 +14,28 @@ export const Fullscreen = forwardRef<
loadYoga?: () => Promise
children?: ReactNode
precision?: number
- pixelSize?: number
attachCamera?: boolean
} & EventHandlers &
LayoutListeners &
ScrollListeners
>((properties, ref) => {
- const pixelSize = properties.pixelSize ?? DEFAULT_PIXEL_SIZE
const store = useStore()
const [sizeX, sizeY] = useMemo(() => {
const { width, height } = store.getState().size
- return [signal(width * pixelSize), signal(height * pixelSize)] as const
+ return [signal(width * DEFAULT_PIXEL_SIZE), signal(height * DEFAULT_PIXEL_SIZE)] as const
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [])
useEffect(() => {
const fn = (state: RootState) => {
batch(() => {
- sizeX.value = state.size.width * pixelSize
- sizeY.value = state.size.height * pixelSize
+ sizeX.value = state.size.width * DEFAULT_PIXEL_SIZE
+ sizeY.value = state.size.height * DEFAULT_PIXEL_SIZE
})
}
fn(store.getState())
return store.subscribe(fn)
// eslint-disable-next-line react-hooks/exhaustive-deps
- }, [store, pixelSize])
+ }, [store])
const camera = useThree((s) => s.camera)
const groupRef = useRef(null)
useFrame(() => {
diff --git a/packages/uikit/src/components/icon.tsx b/packages/uikit/src/components/icon.tsx
index e6530282..2eac9287 100644
--- a/packages/uikit/src/components/icon.tsx
+++ b/packages/uikit/src/components/icon.tsx
@@ -50,7 +50,7 @@ export const SvgIconFromText = forwardRef<
svgHeight: number
zIndexOffset?: ZIndexOffset
materialClass?: MaterialClass
- backgroundMaterialClass?: MaterialClass
+ panelMaterialClass?: MaterialClass
} & SvgProperties &
EventHandlers &
LayoutListeners &
@@ -66,7 +66,7 @@ export const SvgIconFromText = forwardRef<
const parentClippingRect = useParentClippingRect()
const isClipped = useIsClipped(parentClippingRect, globalMatrix, node.size, node)
- const groupDeps = usePanelGroupDependencies(properties.backgroundMaterialClass, properties)
+ const groupDeps = usePanelGroupDependencies(properties.panelMaterialClass, properties)
const backgroundOrderInfo = useOrderInfo(ElementType.Panel, properties.zIndexOffset, groupDeps)
useInstancedPanel(
collection,
diff --git a/packages/uikit/src/components/input.tsx b/packages/uikit/src/components/input.tsx
index 5b7f8f40..a9172123 100644
--- a/packages/uikit/src/components/input.tsx
+++ b/packages/uikit/src/components/input.tsx
@@ -45,7 +45,7 @@ export const Text = forwardRef<
value?: string | Signal
defaultValue?: string
onValueChange?: (value: string) => void
- backgroundMaterialClass?: MaterialClass
+ panelMaterialClass?: MaterialClass
zIndexOffset?: ZIndexOffset
} & TextProperties &
EventHandlers &
@@ -74,7 +74,7 @@ export const Text = forwardRef<
isClipped,
backgroundOrderInfo,
parentClippingRect,
- properties.backgroundMaterialClass,
+ properties.panelMaterialClass,
panelAliasPropertyTransformation,
)
const orderInfo = useOrderInfo(ElementType.Text, undefined, backgroundOrderInfo)
diff --git a/packages/uikit/src/components/root.tsx b/packages/uikit/src/components/root.tsx
index 30823693..416ceaad 100644
--- a/packages/uikit/src/components/root.tsx
+++ b/packages/uikit/src/components/root.tsx
@@ -79,7 +79,7 @@ export const Root = forwardRef<
anchorX?: keyof typeof alignmentXMap
anchorY?: keyof typeof alignmentYMap
pixelSize?: number
- backgroundMaterialClass?: MaterialClass
+ panelMaterialClass?: MaterialClass
} & WithReactive<{
sizeX?: number
sizeY?: number
@@ -121,7 +121,7 @@ export const Root = forwardRef<
const getPanelGroup = useGetInstancedPanelGroup(pixelSize, node.cameraDistance, groupsContainer)
const getGylphGroup = useGetInstancedGlyphGroup(pixelSize, node.cameraDistance, groupsContainer)
- const groupDeps = usePanelGroupDependencies(properties.backgroundMaterialClass, properties)
+ const groupDeps = usePanelGroupDependencies(properties.panelMaterialClass, properties)
const orderInfo = useOrderInfo(ElementType.Panel, undefined, groupDeps)
const rootMatrix = useRootMatrix(transformMatrix, node.size, pixelSize, properties)
@@ -133,7 +133,7 @@ export const Root = forwardRef<
node,
rootMatrix,
undefined,
- properties.scrollbarMaterialClass,
+ properties.scrollbarPanelMaterialClass,
undefined,
orderInfo,
getPanelGroup,
diff --git a/packages/uikit/src/components/svg.tsx b/packages/uikit/src/components/svg.tsx
index fc5b00dd..0f9d1bed 100644
--- a/packages/uikit/src/components/svg.tsx
+++ b/packages/uikit/src/components/svg.tsx
@@ -123,7 +123,7 @@ export const Svg = forwardRef<
children?: ReactNode
src: string | ReadonlySignal
materialClass?: MaterialClass
- backgroundMaterialClass?: MaterialClass
+ panelMaterialClass?: MaterialClass
} & SvgProperties &
EventHandlers &
LayoutListeners &
@@ -138,7 +138,7 @@ export const Svg = forwardRef<
const globalMatrix = useGlobalMatrix(transformMatrix)
const parentClippingRect = useParentClippingRect()
const isClipped = useIsClipped(parentClippingRect, globalMatrix, node.size, node)
- const groupDeps = usePanelGroupDependencies(properties.backgroundMaterialClass, properties)
+ const groupDeps = usePanelGroupDependencies(properties.panelMaterialClass, properties)
const backgroundOrderInfo = useOrderInfo(ElementType.Panel, properties.zIndexOffset, groupDeps)
useInstancedPanel(
collection,
diff --git a/packages/uikit/src/components/text.tsx b/packages/uikit/src/components/text.tsx
index 9c2b0b8a..8063d8b3 100644
--- a/packages/uikit/src/components/text.tsx
+++ b/packages/uikit/src/components/text.tsx
@@ -52,7 +52,7 @@ export const Text = forwardRef<
ComponentInternals,
{
children: string | ReadonlySignal | Array>
- backgroundMaterialClass?: MaterialClass
+ panelMaterialClass?: MaterialClass
zIndexOffset?: ZIndexOffset
} & TextProperties &
EventHandlers &
@@ -72,7 +72,7 @@ export const Text = forwardRef<
const isClipped = useIsClipped(parentClippingRect, globalMatrix, node.size, node)
useLayoutListeners(properties, node.size)
useViewportListeners(properties, isClipped)
- const groupDeps = usePanelGroupDependencies(properties.backgroundMaterialClass, properties)
+ const groupDeps = usePanelGroupDependencies(properties.panelMaterialClass, properties)
const backgroundOrderInfo = useOrderInfo(ElementType.Panel, properties.zIndexOffset, groupDeps)
useInstancedPanel(
collection,
diff --git a/packages/uikit/src/panel/instanced-panel-mesh.ts b/packages/uikit/src/panel/instanced-panel-mesh.ts
index 8ae034d2..3e4ecdf3 100644
--- a/packages/uikit/src/panel/instanced-panel-mesh.ts
+++ b/packages/uikit/src/panel/instanced-panel-mesh.ts
@@ -7,6 +7,7 @@ export class InstancedPanelMesh extends Mesh {
protected readonly isInstancedMesh = true
public readonly instanceColor = null
+ public readonly morphTexture = null
public readonly boundingBox = new Box3()
public readonly boundingSphere = new Sphere()
diff --git a/packages/uikit/src/properties/alias.ts b/packages/uikit/src/properties/alias.ts
index 1f3e754c..d0759a50 100644
--- a/packages/uikit/src/properties/alias.ts
+++ b/packages/uikit/src/properties/alias.ts
@@ -57,10 +57,10 @@ export const flexAliasPropertyTransformation = createAliasPropertyTransformation
const panelAliases = {
borderRadius: ['borderTopLeftRadius', 'borderTopRightRadius', 'borderBottomLeftRadius', 'borderBottomRightRadius'],
- borderRadiusTop: ['borderTopLeftRadius', 'borderTopRightRadius'],
- borderRadiusLeft: ['borderTopLeftRadius', 'borderBottomLeftRadius'],
- borderRadiusRight: ['borderTopRightRadius', 'borderBottomRightRadius'],
- borderRadiusBottom: ['borderBottomLeftRadius', 'borderBottomRightRadius'],
+ borderTopRadius: ['borderTopLeftRadius', 'borderTopRightRadius'],
+ borderLeftRadius: ['borderTopLeftRadius', 'borderBottomLeftRadius'],
+ borderRightRadius: ['borderTopRightRadius', 'borderBottomRightRadius'],
+ borderBottomRadius: ['borderBottomLeftRadius', 'borderBottomRightRadius'],
} as const satisfies Aliases
export const panelAliasPropertyTransformation = createAliasPropertyTransformation(panelAliases)
@@ -72,10 +72,10 @@ const scrollbarAliases = {
'borderBottomLeftRadius',
'borderBottomRightRadius',
],
- scrollbarBorderRadiusTop: ['borderTopLeftRadius', 'borderTopRightRadius'],
- scrollbarBorderRadiusLeft: ['borderTopLeftRadius', 'borderBottomLeftRadius'],
- scrollbarBorderRadiusRight: ['borderTopRightRadius', 'borderBottomRightRadius'],
- scrollbarBorderRadiusBottom: ['borderBottomLeftRadius', 'borderBottomRightRadius'],
+ scrollbarBorderTopRadius: ['borderTopLeftRadius', 'borderTopRightRadius'],
+ scrollbarBorderLeftRadius: ['borderTopLeftRadius', 'borderBottomLeftRadius'],
+ scrollbarBorderRightRadius: ['borderTopRightRadius', 'borderBottomRightRadius'],
+ scrollbarBorderBottomRadius: ['borderBottomLeftRadius', 'borderBottomRightRadius'],
} as const satisfies Aliases
export const scrollbarAliasPropertyTransformation = createAliasPropertyTransformation(scrollbarAliases)
diff --git a/packages/uikit/src/scroll.tsx b/packages/uikit/src/scroll.tsx
index a0f3b8ee..7f6846a6 100644
--- a/packages/uikit/src/scroll.tsx
+++ b/packages/uikit/src/scroll.tsx
@@ -282,7 +282,7 @@ function outsideDistance(value: number, min: number, max: number): number {
}
export type ScrollbarProperties = {
- scrollbarMaterialClass?: MaterialClass
+ scrollbarPanelMaterialClass?: MaterialClass
} & WithReactive<
{
scrollbarWidth?: number
diff --git a/packages/uikit/src/text/render/instanced-glyph-mesh.ts b/packages/uikit/src/text/render/instanced-glyph-mesh.ts
index 5c3e061c..61afbfbb 100644
--- a/packages/uikit/src/text/render/instanced-glyph-mesh.ts
+++ b/packages/uikit/src/text/render/instanced-glyph-mesh.ts
@@ -5,6 +5,7 @@ export class InstancedGlyphMesh extends Mesh {
protected readonly isInstancedMesh = true
public readonly instanceColor = null
+ public readonly morphTexture = null
public readonly boundingBox = new Box3()
public readonly boundingSphere = new Sphere()
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 829685fe..0f467b7d 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -88,22 +88,22 @@ importers:
dependencies:
'@coconut-xr/xinteraction':
specifier: ^0.1.12
- version: 0.1.12(@react-three/fiber@8.15.13)(react@18.2.0)(three@0.160.0)
+ version: 0.1.12(@react-three/fiber@8.15.13)(react@18.2.0)(three@0.161.0)
'@preact/signals-core':
specifier: ^1.5.1
version: 1.5.1
'@react-three/drei':
specifier: ^9.96.1
- version: 9.96.1(@react-three/fiber@8.15.13)(@types/react@18.2.47)(@types/three@0.160.0)(react-dom@18.2.0)(react@18.2.0)(three@0.160.0)
+ version: 9.96.1(@react-three/fiber@8.15.13)(@types/react@18.2.47)(@types/three@0.161.2)(react-dom@18.2.0)(react@18.2.0)(three@0.161.0)
'@react-three/fiber':
specifier: ^8.15.13
- version: 8.15.13(react-dom@18.2.0)(react@18.2.0)(three@0.160.0)
+ version: 8.15.13(react-dom@18.2.0)(react@18.2.0)(three@0.161.0)
'@react-three/postprocessing':
specifier: ^2.16.0
- version: 2.16.0(@react-three/fiber@8.15.13)(@types/three@0.160.0)(react@18.2.0)(three@0.160.0)
+ version: 2.16.0(@react-three/fiber@8.15.13)(@types/three@0.161.2)(react@18.2.0)(three@0.161.0)
'@react-three/rapier':
specifier: ^1.3.0
- version: 1.3.0(@react-three/fiber@8.15.13)(react@18.2.0)(three@0.160.0)
+ version: 1.3.0(@react-three/fiber@8.15.13)(react@18.2.0)(three@0.161.0)
'@react-three/uikit':
specifier: workspace:^
version: link:../../packages/uikit
@@ -114,14 +114,17 @@ importers:
specifier: ^1.0.2
version: 1.0.2(@react-three/fiber@8.15.13)(@splinetool/loader@1.0.54)
'@types/three':
- specifier: ^0.160.0
- version: 0.160.0
+ specifier: ^0.161.0
+ version: 0.161.2
+ '@vitejs/plugin-basic-ssl':
+ specifier: ^1.1.0
+ version: 1.1.0(vite@5.0.12)
maath:
specifier: ^0.10.7
- version: 0.10.7(@types/three@0.160.0)(three@0.160.0)
+ version: 0.10.7(@types/three@0.161.2)(three@0.161.0)
r3f-perf:
specifier: ^7.1.2
- version: 7.1.2(@react-three/fiber@8.15.13)(@types/react@18.2.47)(@types/three@0.160.0)(react-dom@18.2.0)(react@18.2.0)(three@0.160.0)
+ version: 7.1.2(@react-three/fiber@8.15.13)(@types/react@18.2.47)(@types/three@0.161.2)(react-dom@18.2.0)(react@18.2.0)(three@0.161.0)
react:
specifier: ^18.2.0
version: 18.2.0
@@ -129,8 +132,8 @@ importers:
specifier: ^18.2.0
version: 18.2.0(react@18.2.0)
three:
- specifier: ^0.160.0
- version: 0.160.0
+ specifier: ^0.161.0
+ version: 0.161.0
examples/card:
dependencies:
@@ -139,16 +142,16 @@ importers:
version: 1.5.1
'@react-three/drei':
specifier: ^9.96.1
- version: 9.96.1(@react-three/fiber@8.15.13)(@types/react@18.2.47)(@types/three@0.160.0)(react-dom@18.2.0)(react@18.2.0)(three@0.160.0)
+ version: 9.96.1(@react-three/fiber@8.15.13)(@types/react@18.2.47)(@types/three@0.161.2)(react-dom@18.2.0)(react@18.2.0)(three@0.161.0)
'@react-three/fiber':
specifier: ^8.15.13
- version: 8.15.13(react-dom@18.2.0)(react@18.2.0)(three@0.160.0)
+ version: 8.15.13(react-dom@18.2.0)(react@18.2.0)(three@0.161.0)
'@react-three/postprocessing':
specifier: ^2.16.0
- version: 2.16.0(@react-three/fiber@8.15.13)(@types/three@0.160.0)(react@18.2.0)(three@0.160.0)
+ version: 2.16.0(@react-three/fiber@8.15.13)(@types/three@0.161.2)(react@18.2.0)(three@0.161.0)
'@react-three/rapier':
specifier: ^1.3.0
- version: 1.3.0(@react-three/fiber@8.15.13)(react@18.2.0)(three@0.160.0)
+ version: 1.3.0(@react-three/fiber@8.15.13)(react@18.2.0)(three@0.161.0)
'@react-three/uikit':
specifier: workspace:^
version: link:../../packages/uikit
@@ -159,14 +162,14 @@ importers:
specifier: ^1.0.2
version: 1.0.2(@react-three/fiber@8.15.13)(@splinetool/loader@1.0.54)
'@types/three':
- specifier: ^0.160.0
- version: 0.160.0
+ specifier: ^0.161.0
+ version: 0.161.2
maath:
specifier: ^0.10.7
- version: 0.10.7(@types/three@0.160.0)(three@0.160.0)
+ version: 0.10.7(@types/three@0.161.2)(three@0.161.0)
r3f-perf:
specifier: ^7.1.2
- version: 7.1.2(@react-three/fiber@8.15.13)(@types/react@18.2.47)(@types/three@0.160.0)(react-dom@18.2.0)(react@18.2.0)(three@0.160.0)
+ version: 7.1.2(@react-three/fiber@8.15.13)(@types/react@18.2.47)(@types/three@0.161.2)(react-dom@18.2.0)(react@18.2.0)(three@0.161.0)
react:
specifier: ^18.2.0
version: 18.2.0
@@ -174,23 +177,23 @@ importers:
specifier: ^18.2.0
version: 18.2.0(react@18.2.0)
three:
- specifier: ^0.160.0
- version: 0.160.0
+ specifier: ^0.161.0
+ version: 0.161.0
examples/dashboard:
dependencies:
'@coconut-xr/xinteraction':
specifier: ^0.1.12
- version: 0.1.12(@react-three/fiber@8.15.13)(react@18.2.0)(three@0.160.0)
+ version: 0.1.12(@react-three/fiber@8.15.13)(react@18.2.0)(three@0.161.0)
'@react-three/drei':
specifier: ^9.96.1
- version: 9.96.1(@react-three/fiber@8.15.13)(@types/react@18.2.47)(@types/three@0.160.0)(react-dom@18.2.0)(react@18.2.0)(three@0.160.0)
+ version: 9.96.1(@react-three/fiber@8.15.13)(@types/react@18.2.47)(@types/three@0.161.2)(react-dom@18.2.0)(react@18.2.0)(three@0.161.0)
'@react-three/fiber':
specifier: ^8.15.13
- version: 8.15.13(react-dom@18.2.0)(react@18.2.0)(three@0.160.0)
+ version: 8.15.13(react-dom@18.2.0)(react@18.2.0)(three@0.161.0)
'@react-three/postprocessing':
specifier: ^2.16.0
- version: 2.16.0(@react-three/fiber@8.15.13)(@types/three@0.160.0)(react@18.2.0)(three@0.160.0)
+ version: 2.16.0(@react-three/fiber@8.15.13)(@types/three@0.161.2)(react@18.2.0)(three@0.161.0)
'@react-three/uikit':
specifier: workspace:^
version: link:../../packages/uikit
@@ -198,11 +201,11 @@ importers:
specifier: workspace:^
version: link:../../packages/icons/lucide
'@types/three':
- specifier: ^0.160.0
- version: 0.160.0
+ specifier: ^0.161.0
+ version: 0.161.2
r3f-perf:
specifier: ^7.1.2
- version: 7.1.2(@react-three/fiber@8.15.13)(@types/react@18.2.47)(@types/three@0.160.0)(react-dom@18.2.0)(react@18.2.0)(three@0.160.0)
+ version: 7.1.2(@react-three/fiber@8.15.13)(@types/react@18.2.47)(@types/three@0.161.2)(react-dom@18.2.0)(react@18.2.0)(three@0.161.0)
react:
specifier: ^18.2.0
version: 18.2.0
@@ -210,8 +213,8 @@ importers:
specifier: ^18.2.0
version: 18.2.0(react@18.2.0)
three:
- specifier: ^0.160.0
- version: 0.160.0
+ specifier: ^0.161.0
+ version: 0.161.0
vite-plugin-mkcert:
specifier: ^1.17.4
version: 1.17.4(vite@5.0.12)
@@ -223,16 +226,16 @@ importers:
dependencies:
'@coconut-xr/xinteraction':
specifier: ^0.1.12
- version: 0.1.12(@react-three/fiber@8.15.13)(react@18.2.0)(three@0.160.0)
+ version: 0.1.12(@react-three/fiber@8.15.13)(react@18.2.0)(three@0.161.0)
'@preact/signals-core':
specifier: ^1.5.1
version: 1.5.1
'@react-three/drei':
specifier: ^9.96.1
- version: 9.96.1(@react-three/fiber@8.15.13)(@types/react@18.2.47)(@types/three@0.160.0)(react-dom@18.2.0)(react@18.2.0)(three@0.160.0)
+ version: 9.96.1(@react-three/fiber@8.15.13)(@types/react@18.2.47)(@types/three@0.161.2)(react-dom@18.2.0)(react@18.2.0)(three@0.161.0)
'@react-three/fiber':
specifier: ^8.15.13
- version: 8.15.13(react-dom@18.2.0)(react@18.2.0)(three@0.160.0)
+ version: 8.15.13(react-dom@18.2.0)(react@18.2.0)(three@0.161.0)
'@react-three/uikit':
specifier: workspace:^
version: link:../../packages/uikit
@@ -241,22 +244,25 @@ importers:
version: link:../../packages/icons/lucide
r3f-perf:
specifier: ^7.1.2
- version: 7.1.2(@react-three/fiber@8.15.13)(@types/react@18.2.47)(@types/three@0.160.0)(react-dom@18.2.0)(react@18.2.0)(three@0.160.0)
+ version: 7.1.2(@react-three/fiber@8.15.13)(@types/react@18.2.47)(@types/three@0.161.2)(react-dom@18.2.0)(react@18.2.0)(three@0.161.0)
react:
specifier: ^18.2.0
version: 18.2.0
react-dom:
specifier: ^18.2.0
version: 18.2.0(react@18.2.0)
+ three:
+ specifier: ^0.161.0
+ version: 0.161.0
examples/lucide:
dependencies:
'@react-three/drei':
specifier: ^9.96.1
- version: 9.96.1(@react-three/fiber@8.15.13)(@types/react@18.2.47)(@types/three@0.160.0)(react-dom@18.2.0)(react@18.2.0)(three@0.160.0)
+ version: 9.96.1(@react-three/fiber@8.15.13)(@types/react@18.2.47)(@types/three@0.161.2)(react-dom@18.2.0)(react@18.2.0)(three@0.161.0)
'@react-three/fiber':
specifier: ^8.15.13
- version: 8.15.13(react-dom@18.2.0)(react@18.2.0)(three@0.160.0)
+ version: 8.15.13(react-dom@18.2.0)(react@18.2.0)(three@0.161.0)
'@react-three/uikit':
specifier: workspace:^
version: link:../../packages/uikit
@@ -274,13 +280,13 @@ importers:
dependencies:
'@react-three/drei':
specifier: ^9.96.1
- version: 9.96.1(@react-three/fiber@8.15.13)(@types/react@18.2.47)(@types/three@0.160.0)(react-dom@18.2.0)(react@18.2.0)(three@0.160.0)
+ version: 9.96.1(@react-three/fiber@8.15.13)(@types/react@18.2.47)(@types/three@0.161.2)(react-dom@18.2.0)(react@18.2.0)(three@0.161.0)
'@react-three/fiber':
specifier: ^8.15.13
- version: 8.15.13(react-dom@18.2.0)(react@18.2.0)(three@0.160.0)
+ version: 8.15.13(react-dom@18.2.0)(react@18.2.0)(three@0.161.0)
'@react-three/postprocessing':
specifier: ^2.16.0
- version: 2.16.0(@react-three/fiber@8.15.13)(@types/three@0.160.0)(react@18.2.0)(three@0.160.0)
+ version: 2.16.0(@react-three/fiber@8.15.13)(@types/three@0.161.2)(react@18.2.0)(three@0.161.0)
'@react-three/uikit':
specifier: workspace:^
version: link:../../packages/uikit
@@ -288,11 +294,11 @@ importers:
specifier: workspace:^
version: link:../../packages/icons/lucide
'@types/three':
- specifier: ^0.160.0
- version: 0.160.0
+ specifier: ^0.161.0
+ version: 0.161.2
r3f-perf:
specifier: ^7.1.2
- version: 7.1.2(@react-three/fiber@8.15.13)(@types/react@18.2.47)(@types/three@0.160.0)(react-dom@18.2.0)(react@18.2.0)(three@0.160.0)
+ version: 7.1.2(@react-three/fiber@8.15.13)(@types/react@18.2.47)(@types/three@0.161.2)(react-dom@18.2.0)(react@18.2.0)(three@0.161.0)
react:
specifier: ^18.2.0
version: 18.2.0
@@ -300,8 +306,8 @@ importers:
specifier: ^18.2.0
version: 18.2.0(react@18.2.0)
three:
- specifier: ^0.160.0
- version: 0.160.0
+ specifier: ^0.161.0
+ version: 0.161.0
examples/uikit:
dependencies:
@@ -310,10 +316,10 @@ importers:
version: 1.5.1
'@react-three/drei':
specifier: ^9.96.1
- version: 9.96.1(@react-three/fiber@8.15.13)(@types/react@18.2.47)(@types/three@0.160.0)(react-dom@18.2.0)(react@18.2.0)(three@0.160.0)
+ version: 9.96.1(@react-three/fiber@8.15.13)(@types/react@18.2.47)(@types/three@0.161.2)(react-dom@18.2.0)(react@18.2.0)(three@0.161.0)
'@react-three/fiber':
specifier: ^8.15.13
- version: 8.15.13(react-dom@18.2.0)(react@18.2.0)(three@0.160.0)
+ version: 8.15.13(react-dom@18.2.0)(react@18.2.0)(three@0.161.0)
'@react-three/uikit':
specifier: workspace:^
version: link:../../packages/uikit
@@ -324,12 +330,12 @@ importers:
specifier: ^18.2.0
version: 18.2.0(react@18.2.0)
three:
- specifier: ^0.160.0
- version: 0.160.0
+ specifier: ^0.161.0
+ version: 0.161.0
devDependencies:
'@types/three':
- specifier: ^0.160.0
- version: 0.160.0
+ specifier: ^0.161.0
+ version: 0.161.2
packages/fonts:
dependencies:
@@ -366,7 +372,7 @@ importers:
version: 1.5.1
'@react-three/fiber':
specifier: ^8.15.13
- version: 8.15.13(react-dom@18.2.0)(react@18.2.0)(three@0.160.0)
+ version: 8.15.13(react-dom@18.2.0)(react@18.2.0)(three@0.161.0)
'@react-three/uikit':
specifier: workspace:^
version: link:../../uikit
@@ -377,11 +383,11 @@ importers:
specifier: ^18.2.47
version: 18.2.47
'@types/three':
- specifier: ^0.160.0
- version: 0.160.0
+ specifier: ^0.161.0
+ version: 0.161.2
three:
- specifier: ^0.160.0
- version: 0.160.0
+ specifier: ^0.161.0
+ version: 0.161.0
packages/kits/default:
dependencies:
@@ -394,7 +400,7 @@ importers:
version: 1.5.1
'@react-three/fiber':
specifier: ^8.15.13
- version: 8.15.13(react-dom@18.2.0)(react@18.2.0)(three@0.160.0)
+ version: 8.15.13(react-dom@18.2.0)(react@18.2.0)(three@0.161.0)
'@react-three/uikit':
specifier: workspace:^
version: link:../../uikit
@@ -405,11 +411,11 @@ importers:
specifier: ^18.2.47
version: 18.2.47
'@types/three':
- specifier: ^0.160.0
- version: 0.160.0
+ specifier: ^0.161.0
+ version: 0.161.2
three:
- specifier: ^0.160.0
- version: 0.160.0
+ specifier: ^0.161.0
+ version: 0.161.0
packages/uikit:
dependencies:
@@ -440,10 +446,10 @@ importers:
devDependencies:
'@react-three/drei':
specifier: ^9.96.1
- version: 9.96.1(@react-three/fiber@8.15.13)(@types/react@18.2.47)(@types/three@0.160.0)(react-dom@18.2.0)(react@18.2.0)(three@0.160.0)
+ version: 9.96.1(@react-three/fiber@8.15.13)(@types/react@18.2.47)(@types/three@0.161.2)(react-dom@18.2.0)(react@18.2.0)(three@0.161.0)
'@react-three/fiber':
specifier: ^8.15.13
- version: 8.15.13(react-dom@18.2.0)(react@18.2.0)(three@0.160.0)
+ version: 8.15.13(react-dom@18.2.0)(react@18.2.0)(three@0.161.0)
'@types/node':
specifier: ^20.11.0
version: 20.11.0
@@ -457,8 +463,8 @@ importers:
specifier: ^18.2.18
version: 18.2.18
'@types/three':
- specifier: ^0.160.0
- version: 0.160.0
+ specifier: ^0.161.0
+ version: 0.161.2
react:
specifier: ^18.2.0
version: 18.2.0
@@ -469,8 +475,8 @@ importers:
specifier: ^2.2.0
version: 2.2.0
three:
- specifier: ^0.160.0
- version: 0.160.0
+ specifier: ^0.161.0
+ version: 0.161.0
wasmwrap:
specifier: ^1.0.0
version: 1.0.0
@@ -743,7 +749,7 @@ packages:
resolution: {integrity: sha512-hBzuU5+JjB2cqNZyszkDHZgOSrUUT8V3dhgRl8Q9Gp6dAj/H5+KILGjbhDpc3Iy9qmqlm/akuOI2ut9VUtzJxQ==}
dev: false
- /@coconut-xr/xinteraction@0.1.12(@react-three/fiber@8.15.13)(react@18.2.0)(three@0.160.0):
+ /@coconut-xr/xinteraction@0.1.12(@react-three/fiber@8.15.13)(react@18.2.0)(three@0.161.0):
resolution: {integrity: sha512-nuKWTDz9qx1HRw7MASvqhxO7i676FVWdh+vITFhQYpQem7QLyJqSaU/gw3l7Qh7QYZENmvvte4X83D1oih/htA==}
peerDependencies:
'@react-three/fiber': '*'
@@ -755,9 +761,9 @@ packages:
react:
optional: true
dependencies:
- '@react-three/fiber': 8.15.13(react-dom@18.2.0)(react@18.2.0)(three@0.160.0)
+ '@react-three/fiber': 8.15.13(react-dom@18.2.0)(react@18.2.0)(three@0.161.0)
react: 18.2.0
- three: 0.160.0
+ three: 0.161.0
dev: false
/@cspotcode/source-map-support@0.8.1:
@@ -1916,7 +1922,7 @@ packages:
'@react-spring/types': 9.6.1
react: 18.2.0
- /@react-spring/three@9.6.1(@react-three/fiber@8.15.13)(react@18.2.0)(three@0.160.0):
+ /@react-spring/three@9.6.1(@react-three/fiber@8.15.13)(react@18.2.0)(three@0.161.0):
resolution: {integrity: sha512-Tyw2YhZPKJAX3t2FcqvpLRb71CyTe1GvT3V+i+xJzfALgpk10uPGdGaQQ5Xrzmok1340DAeg2pR/MCfaW7b8AA==}
peerDependencies:
'@react-three/fiber': '>=6.0'
@@ -1927,14 +1933,14 @@ packages:
'@react-spring/core': 9.6.1(react@18.2.0)
'@react-spring/shared': 9.6.1(react@18.2.0)
'@react-spring/types': 9.6.1
- '@react-three/fiber': 8.15.13(react-dom@18.2.0)(react@18.2.0)(three@0.160.0)
+ '@react-three/fiber': 8.15.13(react-dom@18.2.0)(react@18.2.0)(three@0.161.0)
react: 18.2.0
- three: 0.160.0
+ three: 0.161.0
/@react-spring/types@9.6.1:
resolution: {integrity: sha512-POu8Mk0hIU3lRXB3bGIGe4VHIwwDsQyoD1F394OK7STTiX9w4dG3cTLljjYswkQN+hDSHRrj4O36kuVa7KPU8Q==}
- /@react-three/drei@9.96.1(@react-three/fiber@8.15.13)(@types/react@18.2.47)(@types/three@0.160.0)(react-dom@18.2.0)(react@18.2.0)(three@0.160.0):
+ /@react-three/drei@9.96.1(@react-three/fiber@8.15.13)(@types/react@18.2.47)(@types/three@0.161.2)(react-dom@18.2.0)(react@18.2.0)(three@0.161.0):
resolution: {integrity: sha512-aPdDCIZkqorTyGYCQNqYwlPVWAvIHHbYus9HMfR8fHdeGpSlp4sRVtIDWp9g8zKl16LRMGPYXAPC7azAS1Pyqw==}
peerDependencies:
'@react-three/fiber': '>=8.0'
@@ -1947,18 +1953,18 @@ packages:
dependencies:
'@babel/runtime': 7.23.8
'@mediapipe/tasks-vision': 0.10.8
- '@react-spring/three': 9.6.1(@react-three/fiber@8.15.13)(react@18.2.0)(three@0.160.0)
- '@react-three/fiber': 8.15.13(react-dom@18.2.0)(react@18.2.0)(three@0.160.0)
+ '@react-spring/three': 9.6.1(@react-three/fiber@8.15.13)(react@18.2.0)(three@0.161.0)
+ '@react-three/fiber': 8.15.13(react-dom@18.2.0)(react@18.2.0)(three@0.161.0)
'@use-gesture/react': 10.3.0(react@18.2.0)
- camera-controls: 2.7.3(three@0.160.0)
+ camera-controls: 2.7.3(three@0.161.0)
cross-env: 7.0.3
detect-gpu: 5.0.37
glsl-noise: 0.0.0
lodash.clamp: 4.0.3
lodash.omit: 4.5.0
lodash.pick: 4.4.0
- maath: 0.10.7(@types/three@0.160.0)(three@0.160.0)
- meshline: 3.1.7(three@0.160.0)
+ maath: 0.10.7(@types/three@0.161.2)(three@0.161.0)
+ meshline: 3.1.7(three@0.161.0)
react: 18.2.0
react-composer: 5.0.3(react@18.2.0)
react-dom: 18.2.0(react@18.2.0)
@@ -1966,10 +1972,10 @@ packages:
stats-gl: 2.0.1
stats.js: 0.17.0
suspend-react: 0.1.3(react@18.2.0)
- three: 0.160.0
- three-mesh-bvh: 0.7.0(three@0.160.0)
- three-stdlib: 2.29.4(three@0.160.0)
- troika-three-text: 0.47.2(three@0.160.0)
+ three: 0.161.0
+ three-mesh-bvh: 0.7.0(three@0.161.0)
+ three-stdlib: 2.29.4(three@0.161.0)
+ troika-three-text: 0.47.2(three@0.161.0)
tunnel-rat: 0.1.2(@types/react@18.2.47)(react@18.2.0)
utility-types: 3.11.0
uuid: 9.0.1
@@ -1988,7 +1994,7 @@ packages:
- supports-color
dev: true
- /@react-three/fiber@8.15.13(react-dom@18.2.0)(react@18.2.0)(three@0.160.0):
+ /@react-three/fiber@8.15.13(react-dom@18.2.0)(react@18.2.0)(three@0.161.0):
resolution: {integrity: sha512-FS6F/k69q2KEf7nxdce1Rzd5qyp6VHtTgjouTMfiotWNiNwlhfQQeAxfcnDg0i2XVaOUGkLaD9BK8LBVnpfzUA==}
peerDependencies:
expo: '>=43.0'
@@ -2025,29 +2031,29 @@ packages:
react-use-measure: 2.1.1(react-dom@18.2.0)(react@18.2.0)
scheduler: 0.21.0
suspend-react: 0.1.3(react@18.2.0)
- three: 0.160.0
+ three: 0.161.0
zustand: 3.7.2(react@18.2.0)
- /@react-three/postprocessing@2.16.0(@react-three/fiber@8.15.13)(@types/three@0.160.0)(react@18.2.0)(three@0.160.0):
+ /@react-three/postprocessing@2.16.0(@react-three/fiber@8.15.13)(@types/three@0.161.2)(react@18.2.0)(three@0.161.0):
resolution: {integrity: sha512-Cc+VIOxD2jVEgXrc66W6yQaAxTMg02ef2N1B5ldyLtTt22n75JxolYTullQqY4zTsyLEmORvaO85SRlZwg6Avw==}
peerDependencies:
'@react-three/fiber': '>=8.0'
react: '>=18.0'
three: '>= 0.138.0'
dependencies:
- '@react-three/fiber': 8.15.13(react-dom@18.2.0)(react@18.2.0)(three@0.160.0)
+ '@react-three/fiber': 8.15.13(react-dom@18.2.0)(react@18.2.0)(three@0.161.0)
buffer: 6.0.3
- maath: 0.6.0(@types/three@0.160.0)(three@0.160.0)
- n8ao: 1.8.1(postprocessing@6.34.3)(three@0.160.0)
- postprocessing: 6.34.3(three@0.160.0)
+ maath: 0.6.0(@types/three@0.161.2)(three@0.161.0)
+ n8ao: 1.8.1(postprocessing@6.34.3)(three@0.161.0)
+ postprocessing: 6.34.3(three@0.161.0)
react: 18.2.0
- three: 0.160.0
- three-stdlib: 2.29.4(three@0.160.0)
+ three: 0.161.0
+ three-stdlib: 2.29.4(three@0.161.0)
transitivePeerDependencies:
- '@types/three'
dev: false
- /@react-three/rapier@1.3.0(@react-three/fiber@8.15.13)(react@18.2.0)(three@0.160.0):
+ /@react-three/rapier@1.3.0(@react-three/fiber@8.15.13)(react@18.2.0)(three@0.161.0):
resolution: {integrity: sha512-nQor1pbGFu1mp585bGR719yAEnEYeu2LvsxP4RaWXP7XHBqv2p0l9/ttDQBZzivqRT142icut2tdo6vgtW+XyA==}
peerDependencies:
'@react-three/fiber': '>=8.9.0'
@@ -2055,10 +2061,10 @@ packages:
three: '>=0.139.0'
dependencies:
'@dimforge/rapier3d-compat': 0.12.0
- '@react-three/fiber': 8.15.13(react-dom@18.2.0)(react@18.2.0)(three@0.160.0)
+ '@react-three/fiber': 8.15.13(react-dom@18.2.0)(react@18.2.0)(three@0.161.0)
react: 18.2.0
- three: 0.160.0
- three-stdlib: 2.23.9(three@0.160.0)
+ three: 0.161.0
+ three-stdlib: 2.23.9(three@0.161.0)
use-asset: 1.0.4(react@18.2.0)
dev: false
@@ -2284,13 +2290,13 @@ packages:
engines: {node: '>=6'}
dev: false
- /@splinetool/loader@1.0.54(three@0.160.0):
+ /@splinetool/loader@1.0.54(three@0.161.0):
resolution: {integrity: sha512-aU/LMmclxUonAbX/V87yuFtoQz3y8Mwqs3C4YABlPZKblg5znuQ+d7Vi4dolw+fKc1ITv/V3fMa+nsN4780f0g==}
peerDependencies:
three: '>=0.133.0'
dependencies:
semver-compare: 1.0.0
- three: 0.160.0
+ three: 0.161.0
dev: false
/@splinetool/r3f-spline@1.0.2(@react-three/fiber@8.15.13)(@splinetool/loader@1.0.54):
@@ -2299,8 +2305,8 @@ packages:
'@react-three/fiber': '>=7.0.0'
'@splinetool/loader': '>=0.9.19'
dependencies:
- '@react-three/fiber': 8.15.13(react-dom@18.2.0)(react@18.2.0)(three@0.160.0)
- '@splinetool/loader': 1.0.54(three@0.160.0)
+ '@react-three/fiber': 8.15.13(react-dom@18.2.0)(react@18.2.0)(three@0.161.0)
+ '@splinetool/loader': 1.0.54(three@0.161.0)
dev: false
/@stitches/react@1.2.8(react@18.2.0):
@@ -2470,8 +2476,8 @@ packages:
/@types/stats.js@0.17.3:
resolution: {integrity: sha512-pXNfAD3KHOdif9EQXZ9deK82HVNaXP5ZIF5RP2QG6OQFNTaY2YIetfrE9t528vEreGQvEPRDDc8muaoYeK0SxQ==}
- /@types/three@0.160.0:
- resolution: {integrity: sha512-jWlbUBovicUKaOYxzgkLlhkiEQJkhCVvg4W2IYD2trqD2om3VK4DGLpHH5zQHNr7RweZK/5re/4IVhbhvxbV9w==}
+ /@types/three@0.161.2:
+ resolution: {integrity: sha512-DazpZ+cIfBzbW/p0zm6G8CS03HBMd748A3R1ZOXHpqaXZLv2I5zNgQUrRG//UfJ6zYFp2cUoCQaOLaz8ubH07w==}
dependencies:
'@types/stats.js': 0.17.3
'@types/webxr': 0.5.10
@@ -2702,6 +2708,15 @@ packages:
react: 18.2.0
dev: false
+ /@vitejs/plugin-basic-ssl@1.1.0(vite@5.0.12):
+ resolution: {integrity: sha512-wO4Dk/rm8u7RNhOf95ZzcEmC9rYOncYgvq4z3duaJrCgjN8BxAnDVyndanfcJZ0O6XZzHz6Q0hTimxTg8Y9g/A==}
+ engines: {node: '>=14.6.0'}
+ peerDependencies:
+ vite: ^3.0.0 || ^4.0.0 || ^5.0.0
+ dependencies:
+ vite: 5.0.12(@types/node@20.11.0)
+ dev: false
+
/@vitejs/plugin-react@4.2.1(vite@5.0.12):
resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==}
engines: {node: ^14.18.0 || >=16.0.0}
@@ -3124,12 +3139,12 @@ packages:
resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
engines: {node: '>=10'}
- /camera-controls@2.7.3(three@0.160.0):
+ /camera-controls@2.7.3(three@0.161.0):
resolution: {integrity: sha512-L4mxjBd3u8qiOLozdWrH2P8ZybSsDXBF7iyNyqNEFJhPUkovmuARWR8JTc1B/qlclOIg6FvZZA/0uAZMMim0mw==}
peerDependencies:
three: '>=0.126.1'
dependencies:
- three: 0.160.0
+ three: 0.161.0
/caniuse-lite@1.0.30001589:
resolution: {integrity: sha512-vNQWS6kI+q6sBlHbh71IIeC+sRwK2N3EDySc/updIGhIee2x5z00J4c1242/5/d6EpEMdOnk/m+6tuk4/tcsqg==}
@@ -5026,23 +5041,23 @@ packages:
resolution: {integrity: sha512-pZs6H274XGNJpBPEW+BnqPwWFPKd2BhBQevg6r+zreOsnAwuJf2BKYeWPTti4CWZjfOupTrK7PN+fXJs945+3Q==}
dev: true
- /maath@0.10.7(@types/three@0.160.0)(three@0.160.0):
+ /maath@0.10.7(@types/three@0.161.2)(three@0.161.0):
resolution: {integrity: sha512-zQ2xd7dNOIVTjAS+hj22fyj1EFYmOJX6tzKjZ92r6WDoq8hyFxjuGA2q950tmR4iC/EKXoMQdSipkaJVuUHDTg==}
peerDependencies:
'@types/three': '>=0.144.0'
three: '>=0.144.0'
dependencies:
- '@types/three': 0.160.0
- three: 0.160.0
+ '@types/three': 0.161.2
+ three: 0.161.0
- /maath@0.6.0(@types/three@0.160.0)(three@0.160.0):
+ /maath@0.6.0(@types/three@0.161.2)(three@0.161.0):
resolution: {integrity: sha512-dSb2xQuP7vDnaYqfoKzlApeRcR2xtN8/f7WV/TMAkBC8552TwTLtOO0JTcSygkYMjNDPoo6V01jTw/aPi4JrMw==}
peerDependencies:
'@types/three': '>=0.144.0'
three: '>=0.144.0'
dependencies:
- '@types/three': 0.160.0
- three: 0.160.0
+ '@types/three': 0.161.2
+ three: 0.161.0
dev: false
/make-dir@3.1.0:
@@ -5099,12 +5114,12 @@ packages:
engines: {node: '>= 8'}
dev: true
- /meshline@3.1.7(three@0.160.0):
+ /meshline@3.1.7(three@0.161.0):
resolution: {integrity: sha512-uf9fPI9wy0Ie0kZjvKuIkf2n7gi3ih0wdTeb/kmSvmzpPyEL5d9lFohg9+JV9VC4sQUBOZDgxu6fnjn57goSHg==}
peerDependencies:
three: '>=0.137'
dependencies:
- three: 0.160.0
+ three: 0.161.0
/meshoptimizer@0.18.1:
resolution: {integrity: sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw==}
@@ -5269,14 +5284,14 @@ packages:
update-notifier: 5.1.0
dev: false
- /n8ao@1.8.1(postprocessing@6.34.3)(three@0.160.0):
+ /n8ao@1.8.1(postprocessing@6.34.3)(three@0.161.0):
resolution: {integrity: sha512-biKUW09KnflZpeWmbCy1gjuiyZsbeG6y+EsqV+1IDqQ1KqEydXc6nUUseZp9ZRbjvEOPnsvsjaTce8Pta0803A==}
peerDependencies:
postprocessing: '>=6.30.0'
three: '>=0.137'
dependencies:
- postprocessing: 6.34.3(three@0.160.0)
- three: 0.160.0
+ postprocessing: 6.34.3(three@0.161.0)
+ three: 0.161.0
dev: false
/nanoid@3.3.3:
@@ -5685,13 +5700,13 @@ packages:
picocolors: 1.0.0
source-map-js: 1.0.2
- /postprocessing@6.34.3(three@0.160.0):
+ /postprocessing@6.34.3(three@0.161.0):
resolution: {integrity: sha512-AjsxAGWeHMKlCTuWLeahNnPyFwR0c/pEmveq5mBz767lFBc1+HHYzk0aRGBCE9PZIjiA27oRL7lATd+fVOscRA==}
engines: {node: '>= 0.13.2'}
peerDependencies:
three: '>= 0.138.0 < 0.162.0'
dependencies:
- three: 0.160.0
+ three: 0.161.0
dev: false
/potpack@1.0.2:
@@ -5795,7 +5810,7 @@ packages:
engines: {node: '>=10'}
dev: true
- /r3f-perf@7.1.2(@react-three/fiber@8.15.13)(@types/react@18.2.47)(@types/three@0.160.0)(react-dom@18.2.0)(react@18.2.0)(three@0.160.0):
+ /r3f-perf@7.1.2(@react-three/fiber@8.15.13)(@types/react@18.2.47)(@types/three@0.161.2)(react-dom@18.2.0)(react@18.2.0)(three@0.161.0):
resolution: {integrity: sha512-AQ78ULjufILylHZpbgBdzk7JF3F7bceehlgOL19xtyJIDhvi4J4vwE5wpxNZ5q4PT4Oza1WADZt6KSlrkCqgkA==}
peerDependencies:
'@react-three/fiber': '>=8.0'
@@ -5812,13 +5827,13 @@ packages:
optional: true
dependencies:
'@radix-ui/react-icons': 1.3.0(react@18.2.0)
- '@react-three/drei': 9.96.1(@react-three/fiber@8.15.13)(@types/react@18.2.47)(@types/three@0.160.0)(react-dom@18.2.0)(react@18.2.0)(three@0.160.0)
- '@react-three/fiber': 8.15.13(react-dom@18.2.0)(react@18.2.0)(three@0.160.0)
+ '@react-three/drei': 9.96.1(@react-three/fiber@8.15.13)(@types/react@18.2.47)(@types/three@0.161.2)(react-dom@18.2.0)(react@18.2.0)(three@0.161.0)
+ '@react-three/fiber': 8.15.13(react-dom@18.2.0)(react@18.2.0)(three@0.161.0)
'@stitches/react': 1.2.8(react@18.2.0)
'@utsubo/events': 0.1.7(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
- three: 0.160.0
+ three: 0.161.0
zustand: 4.1.5(react@18.2.0)
transitivePeerDependencies:
- '@types/react'
@@ -6509,14 +6524,14 @@ packages:
resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
dev: true
- /three-mesh-bvh@0.7.0(three@0.160.0):
+ /three-mesh-bvh@0.7.0(three@0.161.0):
resolution: {integrity: sha512-Hj0Z1Rp02yy5H+/xtMBu/dYAeRsSONaBaVLZoST9sMpZxycHypRiUeMHucPOLWFHnpc5hwelOnONcLpkfhDg0Q==}
peerDependencies:
three: '>= 0.151.0'
dependencies:
- three: 0.160.0
+ three: 0.161.0
- /three-stdlib@2.23.9(three@0.160.0):
+ /three-stdlib@2.23.9(three@0.161.0):
resolution: {integrity: sha512-fYBClVGQptD7UZcoRZGNlR3sKcUW37hVPoEW1v68E4XuiwD0Ml/VqDUJ0yEMVE2DlooDvqgqv/rIcHC/B4N5pg==}
peerDependencies:
three: '>=0.128.0'
@@ -6531,11 +6546,11 @@ packages:
mmd-parser: 1.0.4
opentype.js: 1.3.4
potpack: 1.0.2
- three: 0.160.0
+ three: 0.161.0
zstddec: 0.0.2
dev: false
- /three-stdlib@2.29.4(three@0.160.0):
+ /three-stdlib@2.29.4(three@0.161.0):
resolution: {integrity: sha512-XNzGCrz/uAk9XoLwd35eN7dQyI4ggXZTeqjcN034YdYBpBlNO9kmLHehl/0Nw9jCelblB7jla+unHAOIyLyV6Q==}
peerDependencies:
three: '>=0.128.0'
@@ -6546,10 +6561,10 @@ packages:
draco3d: 1.5.7
fflate: 0.6.10
potpack: 1.0.2
- three: 0.160.0
+ three: 0.161.0
- /three@0.160.0:
- resolution: {integrity: sha512-DLU8lc0zNIPkM7rH5/e1Ks1Z8tWCGRq6g8mPowdDJpw1CFBJMU7UoJjC6PefXW7z//SSl0b2+GCw14LB+uDhng==}
+ /three@0.161.0:
+ resolution: {integrity: sha512-LC28VFtjbOyEu5b93K0bNRLw1rQlMJ85lilKsYj6dgTu+7i17W+JCCEbvrpmNHF1F3NAUqDSWq50UD7w9H2xQw==}
/timm@1.7.1:
resolution: {integrity: sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==}
@@ -6591,23 +6606,23 @@ packages:
engines: {node: '>=12'}
dev: true
- /troika-three-text@0.47.2(three@0.160.0):
+ /troika-three-text@0.47.2(three@0.161.0):
resolution: {integrity: sha512-qylT0F+U7xGs+/PEf3ujBdJMYWbn0Qci0kLqI5BJG2kW1wdg4T1XSxneypnF05DxFqJhEzuaOR9S2SjiyknMng==}
peerDependencies:
three: '>=0.125.0'
dependencies:
bidi-js: 1.0.3
- three: 0.160.0
- troika-three-utils: 0.47.2(three@0.160.0)
+ three: 0.161.0
+ troika-three-utils: 0.47.2(three@0.161.0)
troika-worker-utils: 0.47.2
webgl-sdf-generator: 1.1.1
- /troika-three-utils@0.47.2(three@0.160.0):
+ /troika-three-utils@0.47.2(three@0.161.0):
resolution: {integrity: sha512-/28plhCxfKtH7MSxEGx8e3b/OXU5A0xlwl+Sbdp0H8FXUHKZDoksduEKmjQayXYtxAyuUiCRunYIv/8Vi7aiyg==}
peerDependencies:
three: '>=0.125.0'
dependencies:
- three: 0.160.0
+ three: 0.161.0
/troika-worker-utils@0.47.2:
resolution: {integrity: sha512-mzss4MeyzUkYBppn4x5cdAqrhBHFEuVmMMgLMTyFV23x6GvQMyo+/R5E5Lsbrt7WSt5RfvewjcwD1DChRTA9lA==}