Files
supabase/apps/www/components/Realtime/sandpack.tsx
Ivan VasilovandJordi Enric 56de26fe22 chore: Migrate the monorepo to use Tailwind v4 (#45318)
This PR migrates the whole monorepo to use Tailwind v4:
- Removed `@tailwindcss/container-queries` plugin since it's included by
default in v4,
- Bump all instances of Tailwind to v4. Made minimal changes to the
shared config to remove non-supported features (`alpha` mentions),
- Migrate all apps to be compatible with v4 configs,
- Fix the `typography.css` import in 3 apps,
- Add missing rules which were included by default in v3,
- Run `pnpm dlx @tailwindcss/upgrade` on all apps, which renames a lot
of classes
- Rename all misnamed classes according to
https://tailwindcss.com/docs/upgrade-guide#renamed-utilities in all
apps.

---------

Co-authored-by: Jordi Enric <jordi.err@gmail.com>
2026-04-30 10:53:24 +00:00

56 lines
1.6 KiB
TypeScript

'use client'
import { SandpackProvider, SandpackLayout, SandpackPreview } from '@codesandbox/sandpack-react'
import './sandpack-styles.css' // Import custom Sandpack styles
type SandpackProps = {
files: Record<string, string>
dependencies?: Record<string, string>
}
export default function SandpackWrapper({ files, dependencies = {} }: SandpackProps) {
// Ensure we have the required files for React template
const completeFiles = {
'/App.js': files['/App.js'] || files['App.js'] || '',
'/styles.css': files['/styles.css'] || files['styles.css'] || '',
...files,
}
// Default dependencies
const defaultDependencies = {
'@supabase/supabase-js': 'latest',
'lucide-react': 'latest',
}
return (
<div className="h-full w-full">
<SandpackProvider
template="react"
files={completeFiles}
customSetup={{
dependencies: {
...defaultDependencies,
...dependencies,
},
}}
options={{
experimental_enableServiceWorker: true,
visibleFiles: ['/App.js'],
initMode: 'user-visible',
activeFile: '/App.js',
externalResources: ['https://cdn.tailwindcss.com'],
}}
>
<SandpackLayout className="h-full! min-h-full! border-none! !bg-surface-50 rounded-none! flex! flex-col!">
<SandpackPreview
showNavigator={false}
showRefreshButton={false}
showOpenInCodeSandbox={false}
className="h-full! flex-1! border-none!"
/>
</SandpackLayout>
</SandpackProvider>
</div>
)
}