feat: CSS Grid editor with OCR-measured column widths and row heights
Some checks failed
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-school (push) Successful in 28s
CI / test-go-edu-search (push) Successful in 30s
CI / test-python-klausur (push) Failing after 1m59s
CI / test-python-agent-core (push) Successful in 16s
CI / test-nodejs-website (push) Successful in 18s

Backend: add layout_metrics (avg_row_height_px, font_size_suggestion_px)
to build-grid response for faithful grid reconstruction.

Frontend: rewrite GridTable from HTML <table> to CSS Grid layout.
Column widths are now proportional to the OCR-measured x_min/x_max
positions. Row heights use the average content row height from the
scan. Column and row resize via drag handles (Excel-like).

Font: add Noto Sans (supports IPA characters) via next/font/google.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-03-17 13:48:47 +01:00
parent ab30e8b17a
commit b1cdb2531c
5 changed files with 343 additions and 79 deletions

View File

@@ -1,5 +1,6 @@
import type { Metadata } from 'next'
import localFont from 'next/font/local'
import { Noto_Sans } from 'next/font/google'
import './globals.css'
const inter = localFont({
@@ -8,6 +9,12 @@ const inter = localFont({
display: 'swap',
})
const notoSans = Noto_Sans({
subsets: ['latin', 'latin-ext'],
variable: '--font-noto-sans',
display: 'swap',
})
export const metadata: Metadata = {
title: 'BreakPilot Admin Lehrer KI',
description: 'Neues Admin-Frontend mit verbesserter Navigation und Rollen-System',
@@ -20,7 +27,7 @@ export default function RootLayout({
}) {
return (
<html lang="de">
<body className={inter.className}>{children}</body>
<body className={`${inter.className} ${notoSans.variable}`}>{children}</body>
</html>
)
}