feat: page interactive, démos Play/Step et simulateur Carnot
Ajoute le pipeline PageSpec (validation, rendu, publication /p/{slug}),
les démos TipTap /demo, et le simulateur Carnot (modes frigo/PAC/moteur,
énergie kJ vs puissance W, unités K/°C/°F) avec correctifs d’équations KaTeX.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
23
memento-note/app/(main)/dev/interactive-page/page.tsx
Normal file
23
memento-note/app/(main)/dev/interactive-page/page.tsx
Normal file
@@ -0,0 +1,23 @@
|
||||
import { notFound } from 'next/navigation'
|
||||
import { PageView } from '@/components/interactive-page/page-view'
|
||||
import { validateInteractivePage } from '@/lib/interactive-page'
|
||||
import thermoFixture from '@/lib/interactive-page/fixtures/thermo-page.json'
|
||||
|
||||
/**
|
||||
* Dev preview of PageView + thermo fixture (spec §8.3).
|
||||
* Only available outside production.
|
||||
*/
|
||||
export default function InteractivePagePreviewPage() {
|
||||
if (process.env.NODE_ENV === 'production') notFound()
|
||||
|
||||
const parsed = validateInteractivePage(thermoFixture)
|
||||
if (!parsed.ok) {
|
||||
return (
|
||||
<div className="p-8 text-sm text-destructive">
|
||||
Fixture invalide : {parsed.issues[0]?.message}
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
return <PageView page={parsed.page} demoMode="interactive" />
|
||||
}
|
||||
Reference in New Issue
Block a user