diff --git a/apps/studio-prototype/.eslintrc.json b/apps/studio-prototype/.eslintrc.json
new file mode 100644
index 00000000000..bffb357a712
--- /dev/null
+++ b/apps/studio-prototype/.eslintrc.json
@@ -0,0 +1,3 @@
+{
+ "extends": "next/core-web-vitals"
+}
diff --git a/apps/studio-prototype/.gitignore b/apps/studio-prototype/.gitignore
new file mode 100644
index 00000000000..fd3dbb571a1
--- /dev/null
+++ b/apps/studio-prototype/.gitignore
@@ -0,0 +1,36 @@
+# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
+
+# dependencies
+/node_modules
+/.pnp
+.pnp.js
+.yarn/install-state.gz
+
+# testing
+/coverage
+
+# next.js
+/.next/
+/out/
+
+# production
+/build
+
+# misc
+.DS_Store
+*.pem
+
+# debug
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
+# local env files
+.env*.local
+
+# vercel
+.vercel
+
+# typescript
+*.tsbuildinfo
+next-env.d.ts
diff --git a/apps/studio-prototype/README.md b/apps/studio-prototype/README.md
new file mode 100644
index 00000000000..c4033664f80
--- /dev/null
+++ b/apps/studio-prototype/README.md
@@ -0,0 +1,36 @@
+This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).
+
+## Getting Started
+
+First, run the development server:
+
+```bash
+npm run dev
+# or
+yarn dev
+# or
+pnpm dev
+# or
+bun dev
+```
+
+Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
+
+You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
+
+This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font.
+
+## Learn More
+
+To learn more about Next.js, take a look at the following resources:
+
+- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
+- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
+
+You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
+
+## Deploy on Vercel
+
+The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
+
+Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
diff --git a/apps/studio-prototype/next.config.mjs b/apps/studio-prototype/next.config.mjs
new file mode 100644
index 00000000000..cba8eaa88bf
--- /dev/null
+++ b/apps/studio-prototype/next.config.mjs
@@ -0,0 +1,6 @@
+/** @type {import('next').NextConfig} */
+const nextConfig = {
+ transpilePackages: ['ui', 'common', 'shared-data', 'icons', 'tsconfig'],
+}
+
+export default nextConfig
diff --git a/apps/studio-prototype/package.json b/apps/studio-prototype/package.json
new file mode 100644
index 00000000000..0c3e4c638d7
--- /dev/null
+++ b/apps/studio-prototype/package.json
@@ -0,0 +1,30 @@
+{
+ "name": "studio-prototype",
+ "version": "0.1.0",
+ "private": true,
+ "scripts": {
+ "dev": "next dev --port 3004",
+ "build": "next build",
+ "start": "next start",
+ "lint": "next lint"
+ },
+ "dependencies": {
+ "react": "^18",
+ "react-dom": "^18",
+ "next": "14.2.4",
+ "jotai": "^2.8.0",
+ "lucide-react": "^0.338.0",
+ "ui": "*"
+ },
+ "devDependencies": {
+ "typescript": "^5",
+ "@types/node": "^20",
+ "@types/react": "^18",
+ "@types/react-dom": "^18",
+ "postcss": "^8",
+ "tailwindcss": "^3.4.1",
+ "eslint": "^8",
+ "eslint-config-next": "14.2.4",
+ "config": "*"
+ }
+}
diff --git a/apps/studio-prototype/postcss.config.mjs b/apps/studio-prototype/postcss.config.mjs
new file mode 100644
index 00000000000..1a69fd2a450
--- /dev/null
+++ b/apps/studio-prototype/postcss.config.mjs
@@ -0,0 +1,8 @@
+/** @type {import('postcss-load-config').Config} */
+const config = {
+ plugins: {
+ tailwindcss: {},
+ },
+};
+
+export default config;
diff --git a/apps/studio-prototype/public/next.svg b/apps/studio-prototype/public/next.svg
new file mode 100644
index 00000000000..5174b28c565
--- /dev/null
+++ b/apps/studio-prototype/public/next.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/apps/studio-prototype/public/vercel.svg b/apps/studio-prototype/public/vercel.svg
new file mode 100644
index 00000000000..d2f84222734
--- /dev/null
+++ b/apps/studio-prototype/public/vercel.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/apps/studio-prototype/src/app/Providers.tsx b/apps/studio-prototype/src/app/Providers.tsx
new file mode 100644
index 00000000000..be3bdf78611
--- /dev/null
+++ b/apps/studio-prototype/src/app/Providers.tsx
@@ -0,0 +1,18 @@
+'use client'
+
+import * as React from 'react'
+import { Provider as JotaiProvider } from 'jotai'
+import { ThemeProvider as NextThemesProvider } from 'next-themes'
+import { ThemeProviderProps } from 'next-themes/dist/types'
+
+import { TooltipProvider_Shadcn_ } from 'ui'
+
+export function ThemeProvider({ children, ...props }: ThemeProviderProps) {
+ return (
+
+
+ {children}
+
+
+ )
+}
diff --git a/apps/studio-prototype/src/app/[org]/layout.tsx b/apps/studio-prototype/src/app/[org]/layout.tsx
new file mode 100644
index 00000000000..f13790a36bd
--- /dev/null
+++ b/apps/studio-prototype/src/app/[org]/layout.tsx
@@ -0,0 +1,18 @@
+import SideNav from './side-nav'
+import TopHeader from './top-header'
+
+export default function OrgLayout({
+ children,
+}: Readonly<{
+ children: React.ReactNode
+}>) {
+ return (
+
+ )
+}
diff --git a/apps/studio-prototype/src/app/[org]/page.tsx b/apps/studio-prototype/src/app/[org]/page.tsx
new file mode 100644
index 00000000000..94b1891de6d
--- /dev/null
+++ b/apps/studio-prototype/src/app/[org]/page.tsx
@@ -0,0 +1,12 @@
+// page
+
+import { Button } from 'ui'
+
+export default function Page() {
+ return (
+
+
+ hello im page
+
+ )
+}
diff --git a/apps/studio-prototype/src/app/[org]/side-nav.tsx b/apps/studio-prototype/src/app/[org]/side-nav.tsx
new file mode 100644
index 00000000000..a713e895eef
--- /dev/null
+++ b/apps/studio-prototype/src/app/[org]/side-nav.tsx
@@ -0,0 +1,13 @@
+export default function SideNav() {
+ return (
+
+ )
+}
diff --git a/apps/studio-prototype/src/app/[org]/top-header.tsx b/apps/studio-prototype/src/app/[org]/top-header.tsx
new file mode 100644
index 00000000000..2b2cdb81e2d
--- /dev/null
+++ b/apps/studio-prototype/src/app/[org]/top-header.tsx
@@ -0,0 +1,34 @@
+import { ChevronsUpDown, Slash } from 'lucide-react'
+import { Button } from 'ui'
+
+export default function TopHeader() {
+ const buttonType = 'default'
+ const showSlashes = false
+
+ return (
+
+
+ }
+ >
+ Organization - Something
+
+ {showSlashes && }
+
+ }>
+ Project - Something
+
+ {showSlashes && }
+ }
+ >
+ Branch
+
+
+
+ )
+}
diff --git a/apps/studio-prototype/src/app/favicon.ico b/apps/studio-prototype/src/app/favicon.ico
new file mode 100644
index 00000000000..718d6fea483
Binary files /dev/null and b/apps/studio-prototype/src/app/favicon.ico differ
diff --git a/apps/studio-prototype/src/app/globals.css b/apps/studio-prototype/src/app/globals.css
new file mode 100644
index 00000000000..46f0d288caa
--- /dev/null
+++ b/apps/studio-prototype/src/app/globals.css
@@ -0,0 +1,33 @@
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
+
+@import './../../../../packages/ui/build/css/source/global.css';
+@import './../../../../packages/ui/build/css/themes/dark.css';
+@import './../../../../packages/ui/build/css/themes/deep-dark.css';
+@import './../../../../packages/ui/build/css/themes/light.css';
+
+:root {
+ --foreground-rgb: 0, 0, 0;
+ --background-start-rgb: 214, 219, 220;
+ --background-end-rgb: 255, 255, 255;
+}
+
+@media (prefers-color-scheme: dark) {
+ :root {
+ --foreground-rgb: 255, 255, 255;
+ --background-start-rgb: 0, 0, 0;
+ --background-end-rgb: 0, 0, 0;
+ }
+}
+
+body {
+ @apply bg-200;
+ color: rgb(var(--foreground-rgb));
+}
+
+@layer utilities {
+ .text-balance {
+ text-wrap: balance;
+ }
+}
diff --git a/apps/studio-prototype/src/app/layout.tsx b/apps/studio-prototype/src/app/layout.tsx
new file mode 100644
index 00000000000..d738376441d
--- /dev/null
+++ b/apps/studio-prototype/src/app/layout.tsx
@@ -0,0 +1,31 @@
+import type { Metadata } from 'next'
+import { Inter } from 'next/font/google'
+import './globals.css'
+import { ThemeProvider } from './Providers'
+
+const inter = Inter({ subsets: ['latin'] })
+
+export const metadata: Metadata = {
+ title: 'Create Next App',
+ description: 'Generated by create next app',
+}
+
+export default function RootLayout({
+ children,
+}: Readonly<{
+ children: React.ReactNode
+}>) {
+ return (
+
+
+
+ {children}
+
+
+
+ )
+}
diff --git a/apps/studio-prototype/src/app/page.tsx b/apps/studio-prototype/src/app/page.tsx
new file mode 100644
index 00000000000..2acfd440d7c
--- /dev/null
+++ b/apps/studio-prototype/src/app/page.tsx
@@ -0,0 +1,113 @@
+import Image from "next/image";
+
+export default function Home() {
+ return (
+
+
+
+ Get started by editing
+ src/app/page.tsx
+
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/apps/studio-prototype/tailwind.config.ts b/apps/studio-prototype/tailwind.config.ts
new file mode 100644
index 00000000000..8071791796a
--- /dev/null
+++ b/apps/studio-prototype/tailwind.config.ts
@@ -0,0 +1,23 @@
+const config = require('config/tailwind.config')
+
+module.exports = config({
+ content: [
+ './app/**/*.{js,ts,jsx,tsx}',
+ './src/pages/**/*.{js,ts,jsx,tsx,mdx}',
+ './src/components/**/*.{js,ts,jsx,tsx,mdx}',
+ './src/app/**/*.{js,ts,jsx,tsx,mdx}',
+ './components/**/*.{js,ts,jsx,tsx}',
+ './registry/**/*.{js,ts,jsx,tsx}',
+ // purge styles from grid library
+ //
+ './../../packages/ui/src/**/*.{tsx,ts,js}',
+ './../../packages/ui-patterns/**/*.{tsx,ts,js}',
+ ],
+ theme: {
+ extend: {
+ maxWidth: {
+ site: '128rem',
+ },
+ },
+ },
+})
diff --git a/apps/studio-prototype/tsconfig.base.json b/apps/studio-prototype/tsconfig.base.json
new file mode 100644
index 00000000000..d72a9f3a278
--- /dev/null
+++ b/apps/studio-prototype/tsconfig.base.json
@@ -0,0 +1,20 @@
+{
+ "$schema": "https://json.schemastore.org/tsconfig",
+ "display": "Default",
+ "compilerOptions": {
+ "composite": false,
+ "declaration": true,
+ "declarationMap": true,
+ "esModuleInterop": true,
+ "forceConsistentCasingInFileNames": true,
+ "inlineSources": false,
+ "isolatedModules": true,
+ "moduleResolution": "node",
+ "noUnusedLocals": false,
+ "noUnusedParameters": false,
+ "preserveWatchOutput": true,
+ "skipLibCheck": true,
+ "strict": true
+ },
+ "exclude": ["node_modules"]
+}
diff --git a/apps/studio-prototype/tsconfig.json b/apps/studio-prototype/tsconfig.json
new file mode 100644
index 00000000000..7dcbbf6d634
--- /dev/null
+++ b/apps/studio-prototype/tsconfig.json
@@ -0,0 +1,40 @@
+{
+ "$schema": "https://json.schemastore.org/tsconfig",
+ "extends": "tsconfig/base.json",
+ "compilerOptions": {
+ "target": "es5",
+ "lib": ["dom", "dom.iterable", "esnext"],
+ "allowJs": true,
+ "skipLibCheck": true,
+ "strict": true,
+ "forceConsistentCasingInFileNames": true,
+ "noEmit": true,
+ "incremental": true,
+ "esModuleInterop": true,
+ "module": "esnext",
+ "moduleResolution": "node",
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "jsx": "preserve",
+ "baseUrl": ".",
+ "paths": {
+ "@/*": ["./*"],
+ "@ui/*": ["./../../packages/ui/src/*"], // handle ui package paths
+ "contentlayer/generated": ["./.contentlayer/generated"]
+ },
+ "plugins": [
+ {
+ "name": "next"
+ }
+ ]
+ },
+ "include": [
+ "next-env.d.ts",
+ "**/*.ts",
+ "**/*.tsx",
+ ".next/types/**/*.ts",
+ ".contentlayer/generated",
+ "./../../packages/ui/src/**/*.d.ts"
+ ],
+ "exclude": ["node_modules", "./scripts/build-registry.mts"]
+}
diff --git a/package-lock.json b/package-lock.json
index b60df10462b..768aa54b727 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1360,6 +1360,28 @@
"typescript": "^5.4.3"
}
},
+ "apps/studio-prototype": {
+ "version": "0.1.0",
+ "dependencies": {
+ "jotai": "^2.8.0",
+ "lucide-react": "^0.338.0",
+ "next": "14.2.4",
+ "react": "^18",
+ "react-dom": "^18",
+ "ui": "*"
+ },
+ "devDependencies": {
+ "@types/node": "^20",
+ "@types/react": "^18",
+ "@types/react-dom": "^18",
+ "config": "*",
+ "eslint": "^8",
+ "eslint-config-next": "14.2.4",
+ "postcss": "^8",
+ "tailwindcss": "^3.4.1",
+ "typescript": "^5"
+ }
+ },
"apps/studio/node_modules/@heroicons/react": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/@heroicons/react/-/react-2.1.3.tgz",
@@ -8778,9 +8800,9 @@
}
},
"node_modules/@next/env": {
- "version": "14.2.3",
- "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.3.tgz",
- "integrity": "sha512-W7fd7IbkfmeeY2gXrzJYDx8D2lWKbVoTIj1o1ScPHNzvp30s1AuoEFSdr39bC5sjxJaxTtq3OTCZboNp0lNWHA=="
+ "version": "14.2.4",
+ "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.4.tgz",
+ "integrity": "sha512-3EtkY5VDkuV2+lNmKlbkibIJxcO4oIHEhBWne6PaAp+76J9KoSsGvNikp6ivzAT8dhhBMYrm6op2pS1ApG0Hzg=="
},
"node_modules/@next/eslint-plugin-next": {
"version": "14.2.4",
@@ -8819,9 +8841,9 @@
}
},
"node_modules/@next/swc-darwin-arm64": {
- "version": "14.2.3",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.3.tgz",
- "integrity": "sha512-3pEYo/RaGqPP0YzwnlmPN2puaF2WMLM3apt5jLW2fFdXD9+pqcoTzRk+iZsf8ta7+quAe4Q6Ms0nR0SFGFdS1A==",
+ "version": "14.2.4",
+ "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.4.tgz",
+ "integrity": "sha512-AH3mO4JlFUqsYcwFUHb1wAKlebHU/Hv2u2kb1pAuRanDZ7pD/A/KPD98RHZmwsJpdHQwfEc/06mgpSzwrJYnNg==",
"cpu": [
"arm64"
],
@@ -8834,9 +8856,9 @@
}
},
"node_modules/@next/swc-darwin-x64": {
- "version": "14.2.3",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.3.tgz",
- "integrity": "sha512-6adp7waE6P1TYFSXpY366xwsOnEXM+y1kgRpjSRVI2CBDOcbRjsJ67Z6EgKIqWIue52d2q/Mx8g9MszARj8IEA==",
+ "version": "14.2.4",
+ "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.4.tgz",
+ "integrity": "sha512-QVadW73sWIO6E2VroyUjuAxhWLZWEpiFqHdZdoQ/AMpN9YWGuHV8t2rChr0ahy+irKX5mlDU7OY68k3n4tAZTg==",
"cpu": [
"x64"
],
@@ -8849,9 +8871,9 @@
}
},
"node_modules/@next/swc-linux-arm64-gnu": {
- "version": "14.2.3",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.3.tgz",
- "integrity": "sha512-cuzCE/1G0ZSnTAHJPUT1rPgQx1w5tzSX7POXSLaS7w2nIUJUD+e25QoXD/hMfxbsT9rslEXugWypJMILBj/QsA==",
+ "version": "14.2.4",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.4.tgz",
+ "integrity": "sha512-KT6GUrb3oyCfcfJ+WliXuJnD6pCpZiosx2X3k66HLR+DMoilRb76LpWPGb4tZprawTtcnyrv75ElD6VncVamUQ==",
"cpu": [
"arm64"
],
@@ -8864,9 +8886,9 @@
}
},
"node_modules/@next/swc-linux-arm64-musl": {
- "version": "14.2.3",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.3.tgz",
- "integrity": "sha512-0D4/oMM2Y9Ta3nGuCcQN8jjJjmDPYpHX9OJzqk42NZGJocU2MqhBq5tWkJrUQOQY9N+In9xOdymzapM09GeiZw==",
+ "version": "14.2.4",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.4.tgz",
+ "integrity": "sha512-Alv8/XGSs/ytwQcbCHwze1HmiIkIVhDHYLjczSVrf0Wi2MvKn/blt7+S6FJitj3yTlMwMxII1gIJ9WepI4aZ/A==",
"cpu": [
"arm64"
],
@@ -8879,9 +8901,9 @@
}
},
"node_modules/@next/swc-linux-x64-gnu": {
- "version": "14.2.3",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.3.tgz",
- "integrity": "sha512-ENPiNnBNDInBLyUU5ii8PMQh+4XLr4pG51tOp6aJ9xqFQ2iRI6IH0Ds2yJkAzNV1CfyagcyzPfROMViS2wOZ9w==",
+ "version": "14.2.4",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.4.tgz",
+ "integrity": "sha512-ze0ShQDBPCqxLImzw4sCdfnB3lRmN3qGMB2GWDRlq5Wqy4G36pxtNOo2usu/Nm9+V2Rh/QQnrRc2l94kYFXO6Q==",
"cpu": [
"x64"
],
@@ -8894,9 +8916,9 @@
}
},
"node_modules/@next/swc-linux-x64-musl": {
- "version": "14.2.3",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.3.tgz",
- "integrity": "sha512-BTAbq0LnCbF5MtoM7I/9UeUu/8ZBY0i8SFjUMCbPDOLv+un67e2JgyN4pmgfXBwy/I+RHu8q+k+MCkDN6P9ViQ==",
+ "version": "14.2.4",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.4.tgz",
+ "integrity": "sha512-8dwC0UJoc6fC7PX70csdaznVMNr16hQrTDAMPvLPloazlcaWfdPogq+UpZX6Drqb1OBlwowz8iG7WR0Tzk/diQ==",
"cpu": [
"x64"
],
@@ -8909,9 +8931,9 @@
}
},
"node_modules/@next/swc-win32-arm64-msvc": {
- "version": "14.2.3",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.3.tgz",
- "integrity": "sha512-AEHIw/dhAMLNFJFJIJIyOFDzrzI5bAjI9J26gbO5xhAKHYTZ9Or04BesFPXiAYXDNdrwTP2dQceYA4dL1geu8A==",
+ "version": "14.2.4",
+ "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.4.tgz",
+ "integrity": "sha512-jxyg67NbEWkDyvM+O8UDbPAyYRZqGLQDTPwvrBBeOSyVWW/jFQkQKQ70JDqDSYg1ZDdl+E3nkbFbq8xM8E9x8A==",
"cpu": [
"arm64"
],
@@ -8924,9 +8946,9 @@
}
},
"node_modules/@next/swc-win32-ia32-msvc": {
- "version": "14.2.3",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.3.tgz",
- "integrity": "sha512-vga40n1q6aYb0CLrM+eEmisfKCR45ixQYXuBXxOOmmoV8sYST9k7E3US32FsY+CkkF7NtzdcebiFT4CHuMSyZw==",
+ "version": "14.2.4",
+ "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.4.tgz",
+ "integrity": "sha512-twrmN753hjXRdcrZmZttb/m5xaCBFa48Dt3FbeEItpJArxriYDunWxJn+QFXdJ3hPkm4u7CKxncVvnmgQMY1ag==",
"cpu": [
"ia32"
],
@@ -8939,9 +8961,9 @@
}
},
"node_modules/@next/swc-win32-x64-msvc": {
- "version": "14.2.3",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.3.tgz",
- "integrity": "sha512-Q1/zm43RWynxrO7lW4ehciQVj+5ePBhOK+/K2P7pLFX3JaJ/IZVC69SHidrmZSOkqz7ECIOhhy7XhAFG4JYyHA==",
+ "version": "14.2.4",
+ "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.4.tgz",
+ "integrity": "sha512-tkLrjBzqFTP8DVrAAQmZelEahfR9OxWpFR++vAI9FBhCiIxtwHwBHC23SBHCTURBtwB4kc/x44imVOnkKGNVGg==",
"cpu": [
"x64"
],
@@ -31345,11 +31367,11 @@
"license": "MIT"
},
"node_modules/next": {
- "version": "14.2.3",
- "resolved": "https://registry.npmjs.org/next/-/next-14.2.3.tgz",
- "integrity": "sha512-dowFkFTR8v79NPJO4QsBUtxv0g9BrS/phluVpMAt2ku7H+cbcBJlopXjkWlwxrk/xGqMemr7JkGPGemPrLLX7A==",
+ "version": "14.2.4",
+ "resolved": "https://registry.npmjs.org/next/-/next-14.2.4.tgz",
+ "integrity": "sha512-R8/V7vugY+822rsQGQCjoLhMuC9oFj9SOi4Cl4b2wjDrseD0LRZ10W7R6Czo4w9ZznVSshKjuIomsRjvm9EKJQ==",
"dependencies": {
- "@next/env": "14.2.3",
+ "@next/env": "14.2.4",
"@swc/helpers": "0.5.5",
"busboy": "1.6.0",
"caniuse-lite": "^1.0.30001579",
@@ -31364,15 +31386,15 @@
"node": ">=18.17.0"
},
"optionalDependencies": {
- "@next/swc-darwin-arm64": "14.2.3",
- "@next/swc-darwin-x64": "14.2.3",
- "@next/swc-linux-arm64-gnu": "14.2.3",
- "@next/swc-linux-arm64-musl": "14.2.3",
- "@next/swc-linux-x64-gnu": "14.2.3",
- "@next/swc-linux-x64-musl": "14.2.3",
- "@next/swc-win32-arm64-msvc": "14.2.3",
- "@next/swc-win32-ia32-msvc": "14.2.3",
- "@next/swc-win32-x64-msvc": "14.2.3"
+ "@next/swc-darwin-arm64": "14.2.4",
+ "@next/swc-darwin-x64": "14.2.4",
+ "@next/swc-linux-arm64-gnu": "14.2.4",
+ "@next/swc-linux-arm64-musl": "14.2.4",
+ "@next/swc-linux-x64-gnu": "14.2.4",
+ "@next/swc-linux-x64-musl": "14.2.4",
+ "@next/swc-win32-arm64-msvc": "14.2.4",
+ "@next/swc-win32-ia32-msvc": "14.2.4",
+ "@next/swc-win32-x64-msvc": "14.2.4"
},
"peerDependencies": {
"@opentelemetry/api": "^1.1.0",
@@ -38101,6 +38123,10 @@
"resolved": "apps/studio",
"link": true
},
+ "node_modules/studio-prototype": {
+ "resolved": "apps/studio-prototype",
+ "link": true
+ },
"node_modules/style-dictionary": {
"version": "3.8.0",
"dev": true,
diff --git a/packages/ui/build/css/themes/concept-two.css b/packages/ui/build/css/themes/concept-two.css
new file mode 100644
index 00000000000..e60a2ee68bd
--- /dev/null
+++ b/packages/ui/build/css/themes/concept-two.css
@@ -0,0 +1,65 @@
+[data-theme='concept-two'],
+.concept-two {
+ --helpers-os-appearance: Dark;
+ --code-block-5: 0deg 0% 100%;
+ --code-block-4: 0deg 0% 100%;
+ --code-block-3: 0deg 0% 100%;
+ --code-block-2: 0deg 0% 100%;
+ --code-block-1: 0deg 0% 100%;
+ --secondary-default: 21deg 90.4% 59%;
+ --secondary-400: 20deg 93.2% 40.4%;
+ --secondary-200: 17.7deg 78.9% 27.8%;
+ --brand-link: 163.9deg 53.2% 15.1%;
+ --brand-button: 175.6deg 61.8% 21.6%;
+ --brand-default: 163.9deg 53.2% 15.1%;
+ --brand-600: 156.3deg 59.5% 70%;
+ --brand-500: 175.6deg 61.8% 21.6%;
+ --brand-400: 176deg 65.2% 13.5%;
+ --brand-300: 176.3deg 69.6% 9%;
+ --brand-200: 175deg 75% 6.3%;
+ --warning-default: 41.2deg 67.5% 48.2%;
+ --warning-600: 41deg 80.6% 42.4%;
+ --warning-500: 39.7deg 70.3% 19.8%;
+ --warning-400: 38.8deg 69.9% 14.3%;
+ --warning-300: 41.8deg 60% 10.8%;
+ --warning-200: 60deg 42.1% 7.5%;
+ --destructive-default: 10.2deg 77.9% 53.9%;
+ --destructive-600: 9.7deg 85.2% 62.9%;
+ --destructive-500: 7.9deg 71.6% 29%;
+ --destructive-400: 6.7deg 60% 20.6%;
+ --destructive-300: 7.5deg 51.3% 15.3%;
+ --destructive-200: 10.9deg 23.4% 9.2%;
+ --border-button-hover: 180deg 4.9% 23.9%;
+ --border-button-default: 180deg 7.3% 16.1%;
+ --border-stronger: 180deg 4.9% 23.9%;
+ --border-strong: 180deg 7.3% 16.1%;
+ --border-alternative: 165deg 40% 2%;
+ --border-control: 180deg 7.3% 16.1%;
+ --border-overlay: 160deg 7.3% 8%;
+ --border-secondary: 180deg 17.1% 8%;
+ --border-muted: 170deg 20% 5.9%;
+ --border-default: 150deg 13% 9%;
+ --background-dash-canvas: 180deg 20% 2%;
+ --background-dash-sidebar: 180deg 20% 2%;
+ --background-dialog-default: 180deg 20% 2%;
+ --background-button-default: 154.3deg 14.3% 9.6%;
+ --background-muted: 160deg 12% 4.9%;
+ --background-overlay-hover: 168deg 5.2% 19%;
+ --background-overlay-default: 168deg 9.8% 10%;
+ --background-surface-400: 154.3deg 14.3% 9.6%;
+ --background-surface-300: 154.3deg 14.3% 9.6%;
+ --background-surface-200: 160deg 12% 4.9%;
+ --background-surface-100: 160deg 23.1% 2.5%;
+ --background-surface-75: 0deg 0% 100%;
+ --background-control: 180deg 9.9% 13.9%;
+ --background-selection: 165deg 8.7% 9%;
+ --background-alternative-default: 165deg 40% 2%;
+ --background-alternative-200: 0deg 0% 5.5%;
+ --background-default: 180deg 20% 2%;
+ --background-200: 180deg 20% 2%;
+ --foreground-contrast: 156deg 33.3% 2.9%;
+ --foreground-muted: 162deg 8.5% 23.1%;
+ --foreground-lighter: 180deg 6.7% 47.1%;
+ --foreground-light: 180deg 7.5% 63.5%;
+ --foreground-default: 0deg 0% 100%;
+}
diff --git a/packages/ui/build/css/themes/dark.css b/packages/ui/build/css/themes/dark.css
index 27367de1ed6..267ae5a31dd 100644
--- a/packages/ui/build/css/themes/dark.css
+++ b/packages/ui/build/css/themes/dark.css
@@ -29,6 +29,7 @@
--destructive-400: 6.7deg 60% 20.6%;
--destructive-300: 7.5deg 51.3% 15.3%;
--destructive-200: 10.9deg 23.4% 9.2%;
+ --background-dash-sidebar: 0deg 0% 11%;
--background-dialog-default: 0deg 0% 11%;
--background-surface-75: 0deg 0% 12.5%;
--background-200: 0deg 0% 11%;
@@ -43,6 +44,7 @@
--border-secondary: var(--colors-gray-dark-500);
--border-muted: var(--colors-gray-dark-500);
--border-default: var(--colors-gray-dark-600);
+ --background-dash-canvas: var(--colors-gray-dark-200);
--background-button-default: var(--colors-gray-dark-500);
--background-muted: var(--colors-gray-dark-400);
--background-overlay-hover: var(--colors-gray-dark-500);
diff --git a/packages/ui/build/css/themes/deep-dark.css b/packages/ui/build/css/themes/deep-dark.css
index ce1fff2bf3b..462189135e9 100644
--- a/packages/ui/build/css/themes/deep-dark.css
+++ b/packages/ui/build/css/themes/deep-dark.css
@@ -30,13 +30,15 @@
--destructive-300: 7.5deg 51.3% 15.3%;
--destructive-200: 10.9deg 23.4% 9.2%;
--border-stronger: 0deg 0% 22%;
- --border-strong: 0deg 0% 20%;
+ --border-strong: 0deg 0% 21.2%;
--border-alternative: 0deg 0% 26.7%;
--border-control: 0deg 0% 22.4%;
--border-overlay: 0deg 0% 20%;
--border-secondary: 0deg 0% 14.1%;
--border-muted: 0deg 0% 14.1%;
--border-default: 0deg 0% 16.1%;
+ --background-dash-canvas: 0deg 0% 7.1%;
+ --background-dash-sidebar: 0deg 0% 9%;
--background-dialog-default: 0deg 0% 7.1%;
--background-muted: 0deg 0% 14.1%;
--background-overlay-hover: 0deg 0% 18%;
diff --git a/packages/ui/build/css/themes/light.css b/packages/ui/build/css/themes/light.css
index 1450f69c67c..355e540e151 100644
--- a/packages/ui/build/css/themes/light.css
+++ b/packages/ui/build/css/themes/light.css
@@ -52,6 +52,8 @@
--border-overlay: var(--colors-gray-light-500);
--border-secondary: var(--colors-gray-light-400);
--border-muted: var(--colors-gray-light-400);
+ --background-dash-canvas: var(--colors-gray-light-200);
+ --background-dash-sidebar: var(--colors-gray-light-100);
--background-button-default: var(--colors-gray-light-100);
--background-overlay-hover: var(--colors-gray-light-300);
--background-overlay-default: var(--colors-gray-light-100);
diff --git a/packages/ui/build/css/tw-extend/color.js b/packages/ui/build/css/tw-extend/color.js
index 0cd2028ea30..249e95ce6ed 100644
--- a/packages/ui/build/css/tw-extend/color.js
+++ b/packages/ui/build/css/tw-extend/color.js
@@ -483,6 +483,14 @@ module.exports = {
cssVariable: "var(--background-dialog-default)",
value: "hsl(0, 0%, 7.1%)"
},
+"background-dash-sidebar": {
+ cssVariable: "var(--background-dash-sidebar)",
+ value: "hsl(0, 0%, 9%)"
+},
+"background-dash-canvas": {
+ cssVariable: "var(--background-dash-canvas)",
+ value: "hsl(0, 0%, 7.1%)"
+},
"border-DEFAULT": {
cssVariable: "var(--border-default)",
value: "hsl(0, 0%, 16.1%)"
@@ -509,7 +517,7 @@ module.exports = {
},
"border-strong": {
cssVariable: "var(--border-strong)",
- value: "hsl(0, 0%, 20%)"
+ value: "hsl(0, 0%, 21.2%)"
},
"border-stronger": {
cssVariable: "var(--border-stronger)",
diff --git a/packages/ui/src/lib/tailwind-demo-classes.ts b/packages/ui/src/lib/tailwind-demo-classes.ts
index d8673159670..3312dbf86cc 100644
--- a/packages/ui/src/lib/tailwind-demo-classes.ts
+++ b/packages/ui/src/lib/tailwind-demo-classes.ts
@@ -15,7 +15,9 @@ export default {
"bg-overlay-hover",
"bg-muted",
"bg-button",
- "bg-dialog"
+ "bg-dialog",
+ "bg-dash-sidebar",
+ "bg-dash-canvas"
],
"border": [
"border",