made system changes

This commit is contained in:
SinachPat
2026-04-23 09:39:01 +01:00
parent 71296f82af
commit dc177c7689
49 changed files with 6256 additions and 0 deletions
+15
View File
@@ -0,0 +1,15 @@
*, *::before, *::after {
box-sizing: border-box;
margin: 0;
padding: 0;
}
html, body, #__next {
height: 100%;
overflow: hidden;
}
body {
font-family: 'Segoe UI Variable', 'Segoe UI', system-ui, -apple-system, sans-serif;
background: #f5f5f5;
}
+18
View File
@@ -0,0 +1,18 @@
import type { ReactNode } from 'react';
import { Providers } from './providers';
import './globals.css';
export const metadata = {
title: 'Originmain',
description: 'AI-Native Design Engineering Platform',
};
export default function RootLayout({ children }: { children: ReactNode }) {
return (
<html lang="en">
<body>
<Providers>{children}</Providers>
</body>
</html>
);
}
+9
View File
@@ -0,0 +1,9 @@
export default function Home() {
return (
<main style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', height: '100%' }}>
<p style={{ fontFamily: 'system-ui, sans-serif', color: '#888', fontSize: '0.875rem' }}>
Originmain coming soon
</p>
</main>
);
}
+13
View File
@@ -0,0 +1,13 @@
'use client';
import type { ReactNode } from 'react';
import { FluentProvider } from '@fluentui/react-components';
import { originmainLightTheme } from '@originmain/ui';
export function Providers({ children }: { children: ReactNode }) {
return (
<FluentProvider theme={originmainLightTheme} style={{ height: '100%' }}>
{children}
</FluentProvider>
);
}
+1
View File
@@ -0,0 +1 @@
export {};
+31
View File
@@ -0,0 +1,31 @@
import { create } from 'zustand';
interface ViewportState {
panX: number;
panY: number;
zoom: number;
setPan: (x: number, y: number) => void;
setZoom: (zoom: number, originX?: number, originY?: number) => void;
reset: () => void;
}
export const useViewport = create<ViewportState>((set, get) => ({
panX: 0,
panY: 0,
zoom: 1,
setPan: (x, y) => set({ panX: x, panY: y }),
setZoom: (zoom, originX = 0, originY = 0) => {
const prev = get();
const clampedZoom = Math.min(Math.max(zoom, 0.1), 8);
const scale = clampedZoom / prev.zoom;
set({
zoom: clampedZoom,
panX: originX - (originX - prev.panX) * scale,
panY: originY - (originY - prev.panY) * scale,
});
},
reset: () => set({ panX: 0, panY: 0, zoom: 1 }),
}));