Issue 57 migrates the application shell to React while preserving the spreadsheet core.
src/main.tsmounts the React application.src/app/owns the React application shell, app state, global styles, and test setup.src/features/groups user-facing feature areas such as the ribbon, formula bar, document I/O, and sheet surface.src/shared/ui/contains small shadcn-style primitives shared by features.src/app/styles.cssowns Tailwind component classes through@apply.
The spreadsheet engine remains under src/lib/ and is not coupled to React. React talks to the core through the existing UI class.
SpreadsheetSurface is the adapter boundary:
- It receives a DOM element from React.
- It creates
new UI(element). - It forwards document change events to React state.
- It exposes load/save and command execution through the existing
UIAPI.
Formula evaluation, document import/export, rendering, and the .ows format stay inside src/lib/.