Files
supabase/apps/ui-library/registry/examples.ts
Tiago Antunes 9bf981f371 feat(ui-library): add Realtime Monaco ui component (#41766)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES
## What kind of change does this PR introduce?

Adds a new Realtime Monaco component to the UI Library, enabling
collaborative code editing with Supabase Realtime synchronization using
Monaco Editor and Yjs.

## Additional context

This is WIP and used for discuss further changes to the y-supabase
provider.

## Demo

https://github.com/user-attachments/assets/84a761e5-73bb-478e-979a-682121ffee89



<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

## Release Notes

* **New Features**
* Added a new Realtime Monaco collaborative code editor component with
real-time synchronization support across multiple frameworks (Next.js,
React, React Router, Tanstack).

* **Documentation**
* Added comprehensive documentation and usage guides for the Realtime
Monaco component across all supported frameworks.

* **Dependencies**
* Added Monaco editor, Yjs, y-monaco, and Supabase collaboration
packages.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Ivan Vasilov <vasilov.ivan@gmail.com>
2026-03-17 13:55:03 +01:00

104 lines
2.3 KiB
TypeScript

import type { RegistryItem } from 'shadcn/schema'
export const examples: RegistryItem[] = [
{
name: 'dropzone-demo',
type: 'registry:example',
registryDependencies: [],
files: [
{
path: 'registry/default/examples/dropzone-demo.tsx',
type: 'registry:example',
},
],
},
{
name: 'realtime-cursor-demo',
type: 'registry:example',
registryDependencies: [],
files: [
{
path: 'registry/default/examples/realtime-cursor-demo.tsx',
type: 'registry:example',
},
],
},
{
name: 'realtime-monaco-demo',
type: 'registry:example',
registryDependencies: [],
files: [
{
path: 'registry/default/examples/realtime-monaco-demo.tsx',
type: 'registry:example',
},
],
},
{
name: 'password-based-auth-demo',
type: 'registry:example',
registryDependencies: [],
files: [
{
path: 'registry/default/examples/password-based-auth.tsx',
type: 'registry:example',
},
],
},
{
name: 'current-user-avatar-demo',
type: 'registry:example',
registryDependencies: [],
files: [
{
path: 'registry/default/examples/current-user-avatar-demo.tsx',
type: 'registry:example',
},
],
},
{
name: 'current-user-avatar-preview',
type: 'registry:example',
registryDependencies: [],
files: [
{
path: 'registry/default/examples/current-user-avatar-preview.tsx',
type: 'registry:example',
},
],
},
{
name: 'realtime-avatar-stack-demo',
type: 'registry:example',
registryDependencies: [],
files: [
{
path: 'registry/default/examples/realtime-avatar-stack-demo.tsx',
type: 'registry:example',
},
],
},
{
name: 'realtime-avatar-stack-preview',
type: 'registry:example',
registryDependencies: [],
files: [
{
path: 'registry/default/examples/realtime-avatar-stack-preview.tsx',
type: 'registry:example',
},
],
},
{
name: 'infinite-query-hook-demo',
type: 'registry:example',
registryDependencies: [],
files: [
{
path: 'registry/default/examples/infinite-query-hook-demo.tsx',
type: 'registry:example',
},
],
},
]