Initialize the NebulaOS monorepo layout with top-level documentation, ignore rules, placeholder service/package directories, compositor docs plus a baseline Sway config, and session startup/desktop entry files. Add the first desktop shell prototype under `shells/desktop/ui` using React + Vite, including themed surface components (desktop, top bar, launcher, preview), mock Nebula APIs and shell bridge state wiring, reusable UI controls/icons, and supporting styles/config needed for local development.
19 lines
644 B
React
19 lines
644 B
React
import { getSurfaceName, SURFACES } from './lib/surface.js';
|
|
import { DesktopSurface } from './surfaces/DesktopSurface.jsx';
|
|
import { LauncherSurface } from './surfaces/LauncherSurface.jsx';
|
|
import { PreviewSurface } from './surfaces/PreviewSurface.jsx';
|
|
import { TopBarSurface } from './surfaces/TopBarSurface.jsx';
|
|
|
|
const SURFACE_VIEWS = {
|
|
[SURFACES.DESKTOP]: DesktopSurface,
|
|
[SURFACES.TOPBAR]: TopBarSurface,
|
|
[SURFACES.LAUNCHER]: LauncherSurface,
|
|
[SURFACES.PREVIEW]: PreviewSurface,
|
|
};
|
|
|
|
export default function App() {
|
|
const surface = getSurfaceName();
|
|
const View = SURFACE_VIEWS[surface] ?? PreviewSurface;
|
|
return <View />;
|
|
}
|