From 3425b97c60a165bdeb095852f1a1dd0b7f189c25 Mon Sep 17 00:00:00 2001 From: sid597 Date: Wed, 15 Apr 2026 15:36:17 +0530 Subject: [PATCH 1/2] ENG-1649: Model selector dropdown for extraction sidebar Adds Select component and supporting shadcn infra (radix-select dep, color tokens in shared tailwind config, CSS variables in globals.css, packages/ui content path). Node type checkboxes render in each node's defined color. --- .../extract-nodes/components/Sidebar.tsx | 74 +++++-- .../app/(extract)/extract-nodes/page.tsx | 9 +- apps/website/app/globals.css | 23 +++ apps/website/app/types/extraction.ts | 13 ++ apps/website/tailwind.config.ts | 3 +- packages/tailwind-config/tailwind.config.ts | 29 ++- packages/ui/package.json | 1 + packages/ui/src/components/ui/select.tsx | 114 ++++++++++ pnpm-lock.yaml | 195 ++++++++++++++++++ 9 files changed, 437 insertions(+), 24 deletions(-) create mode 100644 packages/ui/src/components/ui/select.tsx diff --git a/apps/website/app/(extract)/extract-nodes/components/Sidebar.tsx b/apps/website/app/(extract)/extract-nodes/components/Sidebar.tsx index c6e7424b8..251f6cc07 100644 --- a/apps/website/app/(extract)/extract-nodes/components/Sidebar.tsx +++ b/apps/website/app/(extract)/extract-nodes/components/Sidebar.tsx @@ -2,9 +2,16 @@ import { useRef } from "react"; import { Button } from "@repo/ui/components/ui/button"; import { Checkbox } from "@repo/ui/components/ui/checkbox"; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from "@repo/ui/components/ui/select"; import { Textarea } from "@repo/ui/components/ui/textarea"; import { Upload } from "lucide-react"; -import { NODE_TYPE_DEFINITIONS } from "~/types/extraction"; +import { MODEL_OPTIONS, NODE_TYPE_DEFINITIONS } from "~/types/extraction"; const SECTION_LABEL_CLASS = "mb-3 block px-1 text-[18px] font-semibold tracking-[-0.016em] text-slate-800"; @@ -16,6 +23,8 @@ type SidebarProps = { onResearchQuestionChange: (value: string) => void; selectedTypes: Set; onToggleType: (candidateTag: string) => void; + model: string; + onModelChange: (model: string) => void; onExtract: () => void; canExtract: boolean; isExtracting: boolean; @@ -28,6 +37,8 @@ export const Sidebar = ({ onResearchQuestionChange, selectedTypes, onToggleType, + model, + onModelChange, onExtract, canExtract, isExtracting, @@ -98,6 +109,26 @@ export const Sidebar = ({ )} +
+

Model

+ +
+

Research Question