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 (
Visible Learning: Kansas Standards to Success Criteria
Which "Doing Words" did you find in the standard?
Arrange verbs from simplest (bottom) to hardest (top).
Edit the details for each step before visualizing the ladder.
Standard Success Criteria