mirror of
https://github.com/Studio-Saelix/sencho.git
synced 2026-08-09 18:32:52 +00:00
ad90bd9404
Adds a per-device appearance preference that compresses row, cell, and tile padding across dashboard, settings, audit log, and every shared table without changing typography or layout structure. Density is stored in localStorage and applied to the document body as a class that swaps a set of CSS variables. Components opt in by consuming the tokens, so the global table primitive scales all seven consumers at once. A new Appearance section in the Identity group lets users pick between Comfortable and Compact via a Combobox, with a helper line that reflects the current choice.
31 lines
989 B
TypeScript
31 lines
989 B
TypeScript
import { StrictMode } from 'react'
|
|
import { createRoot } from 'react-dom/client'
|
|
import './index.css'
|
|
import App from './App.tsx'
|
|
import ErrorBoundary from './components/ErrorBoundary.tsx'
|
|
import { initializeDensity } from './hooks/use-density'
|
|
import * as monaco from 'monaco-editor'
|
|
import { loader } from '@monaco-editor/react'
|
|
import editorWorker from 'monaco-editor/esm/vs/editor/editor.worker?worker'
|
|
|
|
// Use the locally bundled Monaco instead of fetching from cdn.jsdelivr.net.
|
|
// The CSP (scriptSrc: 'self') blocks external CDN scripts; bundling avoids
|
|
// that entirely. Sencho only needs YAML/plaintext so the base editorWorker
|
|
// covers all language modes - no additional language workers required.
|
|
window.MonacoEnvironment = {
|
|
getWorker(): Worker {
|
|
return new editorWorker()
|
|
},
|
|
}
|
|
loader.config({ monaco })
|
|
|
|
initializeDensity()
|
|
|
|
createRoot(document.getElementById('root')!).render(
|
|
<StrictMode>
|
|
<ErrorBoundary>
|
|
<App />
|
|
</ErrorBoundary>
|
|
</StrictMode>,
|
|
)
|