{
  "code": "import { Head, router } from \"@inertiajs/react\"\nimport { PageContainer } from \"@godxjp/ui/layout\"\nimport { Card, CardContent, EmptyState, Descriptions, Badge } from \"@godxjp/ui/data-display\"\nimport { Button } from \"@godxjp/ui/general\"\nimport { formatDate } from \"@godxjp/ui/datetime\"\nimport { ArrowLeft } from \"lucide-react\"\nimport { withCrmLayout } from \"@/layouts/crm-layout\"\n\n// Detail routes pass the param as an Inertia prop:\n//   Route::get('/members/{id}', fn ($id) => Inertia::render('crm/members/show', ['id' => $id]))\nfunction MemberShow({ id }: { id: string }) {\n  const member = MEMBERS.find((m) => m.id === id)\n\n  if (!member) {\n    return (\n      <>\n        <Head title=\"会員詳細\" />\n        <PageContainer title=\"会員詳細\">\n          <EmptyState title=\"会員が見つかりません\" description={`ID「${id}」は存在しません。`} />\n          <Button variant=\"outline\" onClick={() => router.visit(\"/members\")}><ArrowLeft className=\"size-4\" />一覧へ戻る</Button>\n        </PageContainer>\n      </>\n    )\n  }\n\n  return (\n    <>\n      <Head title={member.name} />\n      <PageContainer title={member.name}>\n        {/* Figures about one member are facts, not KPIs: Descriptions rows, not a StatCard row. */}\n        <Card>\n          <CardContent>\n            {/* Descriptions is COMPOUND — value goes in children, not a prop */}\n            <Descriptions columns={2}>\n              <Descriptions.Item label=\"会員ID\">{member.id}</Descriptions.Item>\n              <Descriptions.Item label=\"ランク\">{member.rank}</Descriptions.Item>\n              <Descriptions.Item label=\"ステータス\"><Badge status={member.status} /></Descriptions.Item>\n              <Descriptions.Item label=\"登録日\">{formatDate(member.registeredAt)}</Descriptions.Item>\n              <Descriptions.Item label=\"累計購入額\">{`¥${member.total.toLocaleString()}`}</Descriptions.Item>\n              <Descriptions.Item label=\"来店回数\">{member.visits}</Descriptions.Item>\n            </Descriptions>\n          </CardContent>\n        </Card>\n      </PageContainer>\n    </>\n  )\n}\n\nMemberShow.layout = withCrmLayout\nexport default MemberShow",
  "name": "inertia-detail-page",
  "tagline": "Inertia detail page — receives {id} prop, Descriptions (compound) in one Card + EmptyState fallback. No KPI tile row.",
  "tags": [
    "inertia",
    "detail",
    "show",
    "page",
    "keyvaluegrid",
    "crm"
  ]
}
