Application entry point: resolves the color theme (dark-first, with a
localStorage override and an OS light-mode fallback) before first
paint, then mounts App into #root under React StrictMode.
EditorActionsProvider wraps App here (rather than inside it)
because App itself calls useEditorActions() to bridge the command
palette to canvas-owned actions — the provider has to sit above every
consumer of that context.
Application entry point: resolves the color theme (dark-first, with a
localStorageoverride and an OS light-mode fallback) before first paint, then mounts App into#rootunder React StrictMode.EditorActionsProvider wraps
Apphere (rather than inside it) becauseAppitself callsuseEditorActions()to bridge the command palette to canvas-owned actions — the provider has to sit above every consumer of that context.