From 08dbd5f5a2b8dbc563329ae56e8f721733b335eb Mon Sep 17 00:00:00 2001 From: michael Date: Thu, 4 Dec 2025 09:25:31 -0600 Subject: [PATCH] Add word count strength indicator for form text fields MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Implements a traffic light indicator beneath paragraph fields to guide users on content adequacy. Shows red (<33%), yellow (33-99%), or green (≥100%) based on word count progress toward minimum targets. Fields updated: - Research Brief: 150 words minimum - Discussion Topics: 15 words minimum - Audience Brief: 150 words minimum - Research Objective: 150 words minimum 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .../ai-recruiter/AIRecruiterForm.tsx | 5 ++- .../focus-group-session/SetupTab.tsx | 3 ++ src/components/ui/InputStrengthIndicator.tsx | 44 +++++++++++++++++++ 3 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 src/components/ui/InputStrengthIndicator.tsx diff --git a/src/components/ai-recruiter/AIRecruiterForm.tsx b/src/components/ai-recruiter/AIRecruiterForm.tsx index 232a0f18..84731201 100644 --- a/src/components/ai-recruiter/AIRecruiterForm.tsx +++ b/src/components/ai-recruiter/AIRecruiterForm.tsx @@ -42,6 +42,7 @@ import { AccordionTrigger, } from "@/components/ui/accordion"; import { FieldTooltip } from "@/components/ui/field-tooltip"; +import { InputStrengthIndicator } from "@/components/ui/InputStrengthIndicator"; export const formSchema = z.object({ audienceBrief: z.string().min(10, { @@ -184,6 +185,7 @@ export default function AIRecruiterForm({ onSubmit, isGenerating }: AIRecruiterF {...field} /> + )} @@ -208,11 +210,12 @@ export default function AIRecruiterForm({ onSubmit, isGenerating }: AIRecruiterF {...field} /> + )} /> - + {/* Enhance Brief Button */}