import React, { useState } from 'react'; import { CBT_GLOSSARY, GlossaryEntry } from '../constants'; import { X, Search, BookOpen, Brain, Activity, HelpCircle } from 'lucide-react'; interface CBTReferenceProps { onClose: () => void; } const CBTReference: React.FC = ({ onClose }) => { const [search, setSearch] = useState(''); const [activeCategory, setActiveCategory] = useState<'All' | 'Distortion' | 'Technique' | 'Concept'>('All'); const filtered = CBT_GLOSSARY.filter(entry => { const matchesSearch = entry.term.toLowerCase().includes(search.toLowerCase()) || entry.definition.toLowerCase().includes(search.toLowerCase()); const matchesCategory = activeCategory === 'All' || entry.category === activeCategory; return matchesSearch && matchesCategory; }); const categories: ('All' | 'Distortion' | 'Technique' | 'Concept')[] = ['All', 'Distortion', 'Technique', 'Concept']; const getCategoryIcon = (cat: string) => { switch (cat) { case 'Distortion': return ; case 'Technique': return ; case 'Concept': return ; default: return ; } }; return (
{/* Header */}

CBT Clinical Reference

Evidence-Based Concepts & Frameworks

{/* Filters */}
setSearch(e.target.value)} className="w-full pl-12 pr-4 py-3 bg-slate-50 border border-slate-200 rounded-xl focus:ring-4 focus:ring-teal-500/10 focus:border-teal-500 focus:outline-none transition-all text-sm" />
{categories.map(cat => ( ))}
{/* Content */}
{filtered.map((entry, idx) => (

{entry.term}

{getCategoryIcon(entry.category)} {entry.category}

{entry.definition}

{entry.example && (
Clinical Example

"{entry.example}"

)}
))} {filtered.length === 0 && (

No concepts matching your search parameters.

)}
{/* Footer */}

References compiled from clinical CBT standard frameworks.

); }; export default CBTReference;