import { useState } from "react"; import { BookOpen, Search } from "lucide-react"; import { Button } from "@/components/ui/button"; import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, DialogTrigger, } from "@/components/ui/dialog"; import { Input } from "@/components/ui/input"; import { ScrollArea } from "@/components/ui/scroll-area"; import { Badge } from "@/components/ui/badge"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { getAllCategories, getTermsByCategory, searchGlossary, type GlossaryTerm } from "@/lib/glossary"; export function TerminologyDialog() { const [open, setOpen] = useState(false); const [searchQuery, setSearchQuery] = useState(""); const categories = getAllCategories(); const searchResults = searchQuery ? searchGlossary(searchQuery) : []; const renderTermCard = (term: GlossaryTerm) => (

{term.term}

{term.category.replace('-', ' ')}

{term.definition}

{term.example && (

Example: {term.example}

)} {term.relatedTerms && term.relatedTerms.length > 0 && (
Related: {term.relatedTerms.map(rt => ( {rt.replace(/-/g, ' ')} ))}
)}
); return ( Theme Park Terminology Reference Quick reference for technical terms, manufacturers, and ride types
{/* Search */}
setSearchQuery(e.target.value)} className="pl-9" />
{/* Results */} {searchQuery ? (
{searchResults.length > 0 ? ( searchResults.map(renderTermCard) ) : (
No terms found matching "{searchQuery}"
)}
) : ( {categories.map(cat => ( {cat === 'manufacturer' ? 'Mfg.' : cat === 'technology' ? 'Tech' : cat === 'measurement' ? 'Units' : cat.charAt(0).toUpperCase() + cat.slice(1).substring(0, 4)} ))} {categories.map(cat => { const terms = getTermsByCategory(cat); return (

{cat.replace('-', ' ')}

{terms.length} terms
{terms.map(renderTermCard)}
); })}
)}
Tip Hover over underlined terms in forms to see quick definitions
); }