diff --git a/demo/package.json b/demo/package.json index e40b6b5..51ddb2a 100644 --- a/demo/package.json +++ b/demo/package.json @@ -12,12 +12,14 @@ "@mobile-reality/mdma-parser": "workspace:*", "@mobile-reality/mdma-prompt-pack": "workspace:*", "@mobile-reality/mdma-renderer-react": "workspace:*", + "@mobile-reality/mdma-renderer-react-native": "workspace:*", "@mobile-reality/mdma-runtime": "workspace:*", "@mobile-reality/mdma-spec": "workspace:*", "@mobile-reality/mdma-validator": "workspace:*", "highlight.js": "^11.11.1", "react": "^19.0.0", "react-dom": "^19.0.0", + "react-native-web": "^0.19.13", "recharts": "^3.7.0", "remark-parse": "^11.0.0", "unified": "^11.0.0", @@ -28,6 +30,7 @@ "@types/react": "^19.0.0", "@types/react-dom": "^19.0.0", "@vitejs/plugin-react": "^4.3.0", + "react-native": "0.76.9", "typescript": "^5.7.0", "vite": "^6.0.0" } diff --git a/demo/src/docs/DocsView.tsx b/demo/src/docs/DocsView.tsx index b1c5118..9357f2e 100644 --- a/demo/src/docs/DocsView.tsx +++ b/demo/src/docs/DocsView.tsx @@ -1,16 +1,17 @@ -import { useState, useEffect } from 'react'; +import { useEffect, useState } from 'react'; import { Cli } from './sections/Cli.js'; import { COMPONENTS, ComponentPreview, Components } from './sections/Components.js'; import { CustomPromptBestPractices } from './sections/CustomPromptBestPractices.js'; import { Installation } from './sections/Installation.js'; +import { IntegrationAgui } from './sections/IntegrationAgui.js'; +import { IntegrationLangchain } from './sections/IntegrationLangchain.js'; +import { INTEGRATIONS, Integrations } from './sections/Integrations.js'; import { Introduction } from './sections/Introduction.js'; import { Mcp } from './sections/Mcp.js'; import { PACKAGES, PackageDetail } from './sections/PackageDetail.js'; import { Packages } from './sections/Packages.js'; import { PromptMatrix } from './sections/PromptMatrix.js'; -import { Integrations, INTEGRATIONS } from './sections/Integrations.js'; -import { IntegrationLangchain } from './sections/IntegrationLangchain.js'; -import { IntegrationAgui } from './sections/IntegrationAgui.js'; +import { ReactNative, ReactNativeSnack } from './sections/ReactNative.js'; import { Usage, UsageHydrationPreview } from './sections/Usage.js'; import { Validator } from './sections/Validator.js'; @@ -32,6 +33,7 @@ const SECTIONS: Section[] = [ { slug: 'usage', label: 'Usage', component: Usage }, { slug: 'integrations', label: 'Integrations' }, { slug: 'components', label: 'Components' }, + { slug: 'react-native', label: 'React Native', component: ReactNative }, { slug: 'validator', label: 'Validator', component: Validator }, { slug: 'mcp', label: 'MCP & Skills', component: Mcp }, { slug: 'cli', label: 'CLI', component: Cli }, @@ -73,7 +75,8 @@ export function DocsView() { const showComponentsPreview = active === 'components'; const showUsagePreview = active === 'usage' && usageExampleOpen; - const showPreview = showComponentsPreview || showUsagePreview; + const showRnPreview = active === 'react-native'; + const showPreview = showComponentsPreview || showUsagePreview || showRnPreview; const previewEntry = COMPONENTS.find((c) => c.type === selectedComponent) ?? COMPONENTS[0]; const isPackagesActive = active === 'packages' || active.startsWith('packages/'); @@ -119,7 +122,11 @@ export function DocsView() { (s.slug === 'integrations' && isIntegrationsActive); return ( -
+