import React, { useState } from 'react'; import { Search, ChevronRight, Activity, TrendingUp, CheckCircle, BookOpen, Trash2, Plus, Info, Award, ArrowUp } from 'lucide-react'; const SuccessCriteriaBuilder = () => { const [standardInput, setStandardInput] = useState(""); const [identifiedVerbs, setIdentifiedVerbs] = useState([]); const [rankedVerbs, setRankedVerbs] = useState([]); const [successCriteria, setSuccessCriteria] = useState([]); const [step, setStep] = useState(1); // 1: Input, 2: Verb ID, 3: Ranking, 4: Editing, 5: Visual Ladder // Difficulty tiers for automatic suggestions const verbDifficultyMap = { 'identify': 1, 'list': 1, 'recall': 1, 'locate': 1, 'find': 1, 'describe': 2, 'summarize': 2, 'explain': 2, 'interpret': 2, 'illustrate': 2, 'apply': 3, 'calculate': 3, 'demonstrate': 3, 'solve': 3, 'compare': 3, 'contrast': 3, 'analyze': 4, 'categorize': 4, 'examine': 4, 'organize': 4, 'evaluate': 5, 'justify': 5, 'critique': 5, 'prove': 5, 'create': 6, 'design': 6, 'construct': 6, 'compose': 6, 'develop': 6 }; const handleProcessStandard = () => { const commonVerbs = Object.keys(verbDifficultyMap); const found = commonVerbs.filter(v => new RegExp(`\\b${v}(s|es|ing|ed)?\\b`, 'i').test(standardInput) ); setIdentifiedVerbs([...new Set(found)]); setStep(2); }; const toggleVerb = (verb) => { setIdentifiedVerbs(prev => prev.includes(verb) ? prev.filter(v => v !== verb) : [...prev, verb] ); }; const moveToRanking = () => { const initialRanked = identifiedVerbs.map(v => ({ name: v, level: verbDifficultyMap[v.toLowerCase()] || 3 })).sort((a, b) => a.level - b.level); setRankedVerbs(initialRanked); setStep(3); }; const updateRank = (index, newLevel) => { const updated = [...rankedVerbs]; updated[index].level = parseInt(newLevel); setRankedVerbs(updated.sort((a, b) => a.level - b.level)); }; const buildLadder = () => { const initialCriteria = rankedVerbs.map(v => ({ verb: v.name, text: `I know I am successful when I can ${v.name} ...`, level: v.level })); setSuccessCriteria(initialCriteria); setStep(4); }; const updateCriteria = (index, val) => { const updated = [...successCriteria]; updated[index].text = val; setSuccessCriteria(updated); }; const addCriteria = () => { setSuccessCriteria([...successCriteria, { verb: 'custom', text: 'I know I am successful when I can...', level: 7 }]); }; const removeCriteria = (index) => { setSuccessCriteria(successCriteria.filter((_, i) => i !== index)); }; return (
{/* Header */}

4th Grade Success Ladder

Visible Learning: Kansas Standards to Success Criteria

{/* Stepper - Hidden on Final View/Print */} {step < 5 && (
{[1, 2, 3, 4].map((s) => (
= s ? 'bg-blue-600 text-white' : 'bg-white text-slate-400 border-2 border-slate-200' }`} > {s}
))}
)} {/* Step 1: Input Standard */} {step === 1 && (

Paste Your Standard