SYMBOL INDEX (893 symbols across 231 files) FILE: packages/cli/src/cli.ts constant VERSION (line 7) | const VERSION = process.env.VERSION ?? "0.0.1"; constant VERSION_API_URL (line 8) | const VERSION_API_URL = "https://www.react-grab.com/api/version"; FILE: packages/cli/src/commands/add.ts constant VERSION (line 38) | const VERSION = process.env.VERSION ?? "0.0.1"; FILE: packages/cli/src/commands/configure.ts constant VERSION (line 23) | const VERSION = process.env.VERSION ?? "0.0.1"; type ConfigOption (line 25) | interface ConfigOption { constant META_LABEL (line 32) | const META_LABEL = isMac ? "Cmd" : "Win"; constant ALT_LABEL (line 33) | const ALT_LABEL = isMac ? "Option" : "Alt"; constant MODIFIER_ALIASES (line 35) | const MODIFIER_ALIASES: Record = { constant MODIFIERS (line 49) | const MODIFIERS = ["meta", "ctrl", "shift", "alt"] as const; constant BASE_KEYS (line 51) | const BASE_KEYS: Array<{ key: string; aliases: string[] }> = [ type KeyCombo (line 92) | interface KeyCombo { type KeyChoice (line 100) | interface KeyChoice { constant POPULAR_KEYS (line 142) | const POPULAR_KEYS = ["g", "k", "e", "d", "b", " ", "Escape", "Enter"]; constant CONFIG_OPTIONS (line 230) | const CONFIG_OPTIONS: ConfigOption[] = [ FILE: packages/cli/src/commands/init.ts constant VERSION (line 49) | const VERSION = process.env.VERSION ?? "0.0.1"; constant REPORT_URL (line 50) | const REPORT_URL = "https://react-grab.com/api/report-cli"; constant DOCS_URL (line 51) | const DOCS_URL = "https://github.com/aidenybai/react-grab"; type ReportConfig (line 53) | interface ReportConfig { constant FRAMEWORK_NAMES (line 79) | const FRAMEWORK_NAMES: Record = { constant PACKAGE_MANAGER_NAMES (line 87) | const PACKAGE_MANAGER_NAMES: Record = { constant UNSUPPORTED_FRAMEWORK_NAMES (line 94) | const UNSUPPORTED_FRAMEWORK_NAMES: Record< FILE: packages/cli/src/commands/remove.ts constant VERSION (line 20) | const VERSION = process.env.VERSION ?? "0.0.1"; FILE: packages/cli/src/utils/constants.ts constant MAX_SUGGESTIONS_COUNT (line 1) | const MAX_SUGGESTIONS_COUNT = 30; constant MAX_KEY_HOLD_DURATION_MS (line 2) | const MAX_KEY_HOLD_DURATION_MS = 2000; constant MAX_CONTEXT_LINES (line 3) | const MAX_CONTEXT_LINES = 50; FILE: packages/cli/src/utils/detect.ts type PackageManager (line 7) | type PackageManager = "npm" | "yarn" | "pnpm" | "bun"; type Framework (line 8) | type Framework = "next" | "vite" | "tanstack" | "webpack" | "unknown"; type NextRouterType (line 9) | type NextRouterType = "app" | "pages" | "unknown"; type UnsupportedFramework (line 10) | type UnsupportedFramework = type ProjectInfo (line 17) | interface ProjectInfo { constant VALID_PACKAGE_MANAGERS (line 28) | const VALID_PACKAGE_MANAGERS: ReadonlySet = new Set([ type WorkspaceProject (line 126) | interface WorkspaceProject { constant ALWAYS_IGNORED_DIRECTORIES (line 261) | const ALWAYS_IGNORED_DIRECTORIES = [ constant MAX_SCAN_DEPTH (line 328) | const MAX_SCAN_DEPTH = 2; constant AGENT_PACKAGES (line 421) | const AGENT_PACKAGES = [ type AgentCLI (line 493) | type AgentCLI = constant AGENT_CLI_COMMANDS (line 503) | const AGENT_CLI_COMMANDS: AgentCLI[] = [ FILE: packages/cli/src/utils/diff.ts type DiffLine (line 1) | interface DiffLine { constant RED (line 7) | const RED = "\x1b[31m"; constant GREEN (line 8) | const GREEN = "\x1b[32m"; constant GRAY (line 9) | const GRAY = "\x1b[90m"; constant RESET (line 10) | const RESET = "\x1b[0m"; constant BOLD (line 11) | const BOLD = "\x1b[1m"; FILE: packages/cli/src/utils/install-mcp.ts constant SERVER_NAME (line 12) | const SERVER_NAME = "react-grab-mcp"; constant PACKAGE_NAME (line 13) | const PACKAGE_NAME = "@react-grab/mcp"; type ClientDefinition (line 15) | interface ClientDefinition { type InstallResult (line 23) | interface InstallResult { constant JSONC_FORMAT_OPTIONS (line 150) | const JSONC_FORMAT_OPTIONS: jsonc.FormattingOptions = { FILE: packages/cli/src/utils/install.ts constant INSTALL_COMMANDS (line 5) | const INSTALL_COMMANDS: Record = { constant UNINSTALL_COMMANDS (line 12) | const UNINSTALL_COMMANDS: Record = { FILE: packages/cli/src/utils/is-non-interactive.ts constant AGENT_ENVIRONMENT_VARIABLES (line 1) | const AGENT_ENVIRONMENT_VARIABLES = [ FILE: packages/cli/src/utils/logger.ts method error (line 4) | error(...args: unknown[]) { method warn (line 7) | warn(...args: unknown[]) { method info (line 10) | info(...args: unknown[]) { method success (line 13) | success(...args: unknown[]) { method dim (line 16) | dim(...args: unknown[]) { method log (line 19) | log(...args: unknown[]) { method break (line 22) | break() { FILE: packages/cli/src/utils/spinner.ts type SpinnerOptions (line 3) | interface SpinnerOptions { FILE: packages/cli/src/utils/templates.ts constant AGENTS (line 1) | const AGENTS = [ type Agent (line 12) | type Agent = (typeof AGENTS)[number]; type AgentIntegration (line 14) | type AgentIntegration = Agent | "mcp" | "none"; constant AGENT_NAMES (line 16) | const AGENT_NAMES: Record = { constant NEXT_APP_ROUTER_SCRIPT (line 35) | const NEXT_APP_ROUTER_SCRIPT = `{process.env.NODE_ENV === "development" ... constant NEXT_PAGES_ROUTER_SCRIPT (line 63) | const NEXT_PAGES_ROUTER_SCRIPT = `{process.env.NODE_ENV === "development... constant VITE_IMPORT (line 91) | const VITE_IMPORT = `if (import.meta.env.DEV) { constant WEBPACK_IMPORT (line 104) | const WEBPACK_IMPORT = `if (process.env.NODE_ENV === "development") { constant TANSTACK_EFFECT (line 117) | const TANSTACK_EFFECT = `useEffect(() => { constant SCRIPT_IMPORT (line 134) | const SCRIPT_IMPORT = 'import Script from "next/script";'; FILE: packages/cli/src/utils/transform.ts type TransformResult (line 20) | interface TransformResult { type ReactGrabOptions (line 29) | interface ReactGrabOptions { type PackageJsonTransformResult (line 37) | interface PackageJsonTransformResult { constant AGENT_PACKAGES (line 851) | const AGENT_PACKAGES: Record = { FILE: packages/design-system/src/index.tsx type ComponentType (line 15) | type ComponentType = "label" | "context-menu" | "toolbar" | "history-dro... type DesignSystemStateProps (line 17) | interface DesignSystemStateProps { type AnimationFrame (line 52) | interface AnimationFrame { type DesignSystemState (line 57) | interface DesignSystemState { constant DESIGN_SYSTEM_STATES (line 66) | const DESIGN_SYSTEM_STATES: DesignSystemState[] = [ constant CELL_SIZE_PX (line 2080) | const CELL_SIZE_PX = 300; constant TARGET_HEIGHT_PX (line 2081) | const TARGET_HEIGHT_PX = 48; constant GAP_PX (line 2082) | const GAP_PX = 16; constant CARD_BORDER_RADIUS_PX (line 2084) | const CARD_BORDER_RADIUS_PX = 8; constant CARD_HEADER_PADDING (line 2085) | const CARD_HEADER_PADDING = "12px 14px"; constant CARD_CONTENT_PADDING_PX (line 2086) | const CARD_CONTENT_PADDING_PX = 16; constant CARD_TITLE_FONT_SIZE_PX (line 2087) | const CARD_TITLE_FONT_SIZE_PX = 13; constant CARD_DESCRIPTION_FONT_SIZE_PX (line 2088) | const CARD_DESCRIPTION_FONT_SIZE_PX = 11; constant CARD_TITLE_GAP_PX (line 2089) | const CARD_TITLE_GAP_PX = 2; constant REFRESH_BUTTON_SIZE_PX (line 2091) | const REFRESH_BUTTON_SIZE_PX = 20; constant REFRESH_BUTTON_BORDER_RADIUS_PX (line 2092) | const REFRESH_BUTTON_BORDER_RADIUS_PX = 4; constant HEADER_PADDING (line 2094) | const HEADER_PADDING = "16px 24px"; constant HEADER_TITLE_FONT_SIZE_PX (line 2095) | const HEADER_TITLE_FONT_SIZE_PX = 14; constant HEADER_BUTTONS_GAP_PX (line 2096) | const HEADER_BUTTONS_GAP_PX = 8; constant TOGGLE_BUTTON_PADDING (line 2098) | const TOGGLE_BUTTON_PADDING = "5px 10px"; constant TOGGLE_BUTTON_GAP_PX (line 2099) | const TOGGLE_BUTTON_GAP_PX = 6; constant TOGGLE_BUTTON_BORDER_RADIUS_PX (line 2100) | const TOGGLE_BUTTON_BORDER_RADIUS_PX = 6; constant TOGGLE_BUTTON_FONT_SIZE_PX (line 2101) | const TOGGLE_BUTTON_FONT_SIZE_PX = 12; constant SECTION_TITLE_FONT_SIZE_PX (line 2103) | const SECTION_TITLE_FONT_SIZE_PX = 11; constant SECTION_TITLE_MARGIN_BOTTOM_PX (line 2104) | const SECTION_TITLE_MARGIN_BOTTOM_PX = 12; constant FPS_METER_POSITION_PX (line 2106) | const FPS_METER_POSITION_PX = 16; constant FPS_METER_PADDING (line 2107) | const FPS_METER_PADDING = "6px 10px"; constant FPS_METER_BORDER_RADIUS_PX (line 2108) | const FPS_METER_BORDER_RADIUS_PX = 6; constant FPS_METER_FONT_SIZE_PX (line 2109) | const FPS_METER_FONT_SIZE_PX = 12; constant TARGET_BORDER_RADIUS_PX (line 2111) | const TARGET_BORDER_RADIUS_PX = 6; constant TARGET_FONT_SIZE_PX (line 2112) | const TARGET_FONT_SIZE_PX = 12; constant TRANSITION_DURATION (line 2114) | const TRANSITION_DURATION = "0.15s ease"; constant STORAGE_KEY_THEME (line 2116) | const STORAGE_KEY_THEME = "react-grab-design-system-theme"; constant STORAGE_KEY_STARRED (line 2117) | const STORAGE_KEY_STARRED = "react-grab-design-system-starred"; type ThemeColors (line 2183) | interface ThemeColors { constant DARK_THEME (line 2200) | const DARK_THEME: ThemeColors = { constant LIGHT_THEME (line 2217) | const LIGHT_THEME: ThemeColors = { type StateCardProps (line 2300) | interface StateCardProps { type FpsMeterProps (line 2700) | interface FpsMeterProps { type DesignSystemPreviewOptions (line 3305) | interface DesignSystemPreviewOptions { FILE: packages/e2e-playground/src/App.tsx type Todo (line 3) | interface Todo { function App (line 684) | function App() { FILE: packages/e2e-playground/src/main.tsx type Window (line 8) | interface Window { FILE: packages/gym/app/api/provider/[name]/route.ts constant PROVIDER_MAP (line 5) | const PROVIDER_MAP: Record = { FILE: packages/gym/app/dashboard/page.tsx function Page (line 12) | function Page() { FILE: packages/gym/app/freeze-demo/layout.tsx function FreezeDemoLayout (line 1) | function FreezeDemoLayout({ FILE: packages/gym/app/freeze-demo/page.tsx constant TIMER_INTERVAL_MS (line 5) | const TIMER_INTERVAL_MS = 10; constant VELOCITY_PX (line 6) | const VELOCITY_PX = 3; function FreezeDemoPage (line 95) | function FreezeDemoPage() { FILE: packages/gym/app/layout.tsx function RootLayout (line 22) | function RootLayout({ FILE: packages/gym/app/login/page.tsx function Page (line 3) | function Page() { FILE: packages/gym/app/page.tsx function Home (line 3) | function Home() { FILE: packages/gym/app/playground/page.tsx function PlaygroundPage (line 6) | function PlaygroundPage() { FILE: packages/gym/components/agent-playground.tsx type RelayClient (line 10) | interface RelayClient { type RelayMessage (line 18) | interface RelayMessage { type Window (line 27) | interface Window { type LogEntry (line 33) | interface LogEntry { constant LOG_TYPE_STYLES (line 39) | const LOG_TYPE_STYLES: Record = { constant MAX_LOG_ENTRIES (line 49) | const MAX_LOG_ENTRIES = 50; constant STATUS_TRUNCATE_LENGTH (line 50) | const STATUS_TRUNCATE_LENGTH = 60; constant RELAY_CHECK_INTERVAL_MS (line 51) | const RELAY_CHECK_INTERVAL_MS = 100; constant PROVIDER_SCRIPTS (line 53) | const PROVIDER_SCRIPTS: Record = { type ProviderBadgeProps (line 64) | interface ProviderBadgeProps { type AgentPlaygroundProps (line 82) | interface AgentPlaygroundProps { FILE: packages/gym/components/app-sidebar.tsx function AppSidebar (line 102) | function AppSidebar({ ...props }: React.ComponentProps) { FILE: packages/gym/components/chart-area-interactive.tsx function ChartAreaInteractive (line 140) | function ChartAreaInteractive() { FILE: packages/gym/components/counter.tsx constant COUNTER_INTERVAL_MS (line 5) | const COUNTER_INTERVAL_MS = 100; FILE: packages/gym/components/data-table.tsx function DragHandle (line 115) | function DragHandle({ id }: { id: number }) { function DraggableRow (line 309) | function DraggableRow({ row }: { row: Row> }) { function DataTable (line 334) | function DataTable({ function TableCellViewer (line 646) | function TableCellViewer({ item }: { item: z.infer }) { FILE: packages/gym/components/login-form.tsx function LoginForm (line 18) | function LoginForm({ FILE: packages/gym/components/nav-user.tsx function NavUser (line 28) | function NavUser({ FILE: packages/gym/components/search-form.tsx function SearchForm (line 10) | function SearchForm({ ...props }: React.ComponentProps<"form">) { FILE: packages/gym/components/section-cards.tsx function SectionCards (line 13) | function SectionCards() { FILE: packages/gym/components/ui/avatar.tsx function Avatar (line 8) | function Avatar({ function AvatarImage (line 24) | function AvatarImage({ function AvatarFallback (line 37) | function AvatarFallback({ FILE: packages/gym/components/ui/badge.tsx function Badge (line 28) | function Badge({ FILE: packages/gym/components/ui/button.tsx function Button (line 39) | function Button({ FILE: packages/gym/components/ui/card.tsx function Card (line 5) | function Card({ className, ...props }: React.ComponentProps<"div">) { function CardHeader (line 18) | function CardHeader({ className, ...props }: React.ComponentProps<"div">) { function CardTitle (line 31) | function CardTitle({ className, ...props }: React.ComponentProps<"div">) { function CardDescription (line 41) | function CardDescription({ className, ...props }: React.ComponentProps<"... function CardAction (line 51) | function CardAction({ className, ...props }: React.ComponentProps<"div">) { function CardContent (line 64) | function CardContent({ className, ...props }: React.ComponentProps<"div"... function CardFooter (line 74) | function CardFooter({ className, ...props }: React.ComponentProps<"div">) { FILE: packages/gym/components/ui/chart.tsx constant THEMES (line 9) | const THEMES = { light: "", dark: ".dark" } as const; type ChartConfig (line 11) | type ChartConfig = { type ChartContextProps (line 21) | type ChartContextProps = { function useChart (line 27) | function useChart() { function ChartContainer (line 37) | function ChartContainer({ function ChartTooltipContent (line 107) | function ChartTooltipContent({ function ChartLegendContent (line 255) | function ChartLegendContent({ function getPayloadConfigFromPayload (line 312) | function getPayloadConfigFromPayload( FILE: packages/gym/components/ui/checkbox.tsx function Checkbox (line 9) | function Checkbox({ FILE: packages/gym/components/ui/drawer.tsx function Drawer (line 8) | function Drawer({ function DrawerTrigger (line 14) | function DrawerTrigger({ function DrawerPortal (line 20) | function DrawerPortal({ function DrawerClose (line 26) | function DrawerClose({ function DrawerOverlay (line 32) | function DrawerOverlay({ function DrawerContent (line 48) | function DrawerContent({ function DrawerHeader (line 75) | function DrawerHeader({ className, ...props }: React.ComponentProps<"div... function DrawerFooter (line 88) | function DrawerFooter({ className, ...props }: React.ComponentProps<"div... function DrawerTitle (line 98) | function DrawerTitle({ function DrawerDescription (line 111) | function DrawerDescription({ FILE: packages/gym/components/ui/dropdown-menu.tsx function DropdownMenu (line 9) | function DropdownMenu({ function DropdownMenuPortal (line 15) | function DropdownMenuPortal({ function DropdownMenuTrigger (line 23) | function DropdownMenuTrigger({ function DropdownMenuContent (line 34) | function DropdownMenuContent({ function DropdownMenuGroup (line 54) | function DropdownMenuGroup({ function DropdownMenuItem (line 62) | function DropdownMenuItem({ function DropdownMenuCheckboxItem (line 85) | function DropdownMenuCheckboxItem({ function DropdownMenuRadioGroup (line 111) | function DropdownMenuRadioGroup({ function DropdownMenuRadioItem (line 122) | function DropdownMenuRadioItem({ function DropdownMenuLabel (line 146) | function DropdownMenuLabel({ function DropdownMenuSeparator (line 166) | function DropdownMenuSeparator({ function DropdownMenuShortcut (line 179) | function DropdownMenuShortcut({ function DropdownMenuSub (line 195) | function DropdownMenuSub({ function DropdownMenuSubTrigger (line 201) | function DropdownMenuSubTrigger({ function DropdownMenuSubContent (line 225) | function DropdownMenuSubContent({ FILE: packages/gym/components/ui/field.tsx function FieldSet (line 10) | function FieldSet({ className, ...props }: React.ComponentProps<"fieldse... function FieldLegend (line 24) | function FieldLegend({ function FieldGroup (line 44) | function FieldGroup({ className, ...props }: React.ComponentProps<"div">) { function Field (line 81) | function Field({ function FieldContent (line 97) | function FieldContent({ className, ...props }: React.ComponentProps<"div... function FieldLabel (line 110) | function FieldLabel({ function FieldTitle (line 128) | function FieldTitle({ className, ...props }: React.ComponentProps<"div">) { function FieldDescription (line 141) | function FieldDescription({ className, ...props }: React.ComponentProps<... function FieldSeparator (line 156) | function FieldSeparator({ function FieldError (line 186) | function FieldError({ FILE: packages/gym/components/ui/input.tsx function Input (line 5) | function Input({ className, type, ...props }: React.ComponentProps<"inpu... FILE: packages/gym/components/ui/label.tsx function Label (line 8) | function Label({ FILE: packages/gym/components/ui/select.tsx function Select (line 9) | function Select({ function SelectGroup (line 15) | function SelectGroup({ function SelectValue (line 21) | function SelectValue({ function SelectTrigger (line 27) | function SelectTrigger({ function SelectContent (line 53) | function SelectContent({ function SelectLabel (line 90) | function SelectLabel({ function SelectItem (line 103) | function SelectItem({ function SelectSeparator (line 130) | function SelectSeparator({ function SelectScrollUpButton (line 143) | function SelectScrollUpButton({ function SelectScrollDownButton (line 161) | function SelectScrollDownButton({ FILE: packages/gym/components/ui/separator.tsx function Separator (line 8) | function Separator({ FILE: packages/gym/components/ui/sheet.tsx function Sheet (line 9) | function Sheet({ ...props }: React.ComponentProps) { function SidebarMenuItem (line 465) | function SidebarMenuItem({ className, ...props }: React.ComponentProps<"... function SidebarMenuButton (line 498) | function SidebarMenuButton({ function SidebarMenuAction (line 548) | function SidebarMenuAction({ function SidebarMenuBadge (line 580) | function SidebarMenuBadge({ function SidebarMenuSkeleton (line 602) | function SidebarMenuSkeleton({ function SidebarMenuSub (line 643) | function SidebarMenuSub({ className, ...props }: React.ComponentProps<"u... function SidebarMenuSubItem (line 658) | function SidebarMenuSubItem({ function SidebarMenuSubButton (line 672) | function SidebarMenuSubButton({ FILE: packages/gym/components/ui/skeleton.tsx function Skeleton (line 3) | function Skeleton({ className, ...props }: React.ComponentProps<"div">) { FILE: packages/gym/components/ui/table.tsx function Table (line 7) | function Table({ className, ...props }: React.ComponentProps<"table">) { function TableHeader (line 22) | function TableHeader({ className, ...props }: React.ComponentProps<"thea... function TableBody (line 32) | function TableBody({ className, ...props }: React.ComponentProps<"tbody"... function TableFooter (line 42) | function TableFooter({ className, ...props }: React.ComponentProps<"tfoo... function TableRow (line 55) | function TableRow({ className, ...props }: React.ComponentProps<"tr">) { function TableHead (line 68) | function TableHead({ className, ...props }: React.ComponentProps<"th">) { function TableCell (line 81) | function TableCell({ className, ...props }: React.ComponentProps<"td">) { function TableCaption (line 94) | function TableCaption({ FILE: packages/gym/components/ui/tabs.tsx function Tabs (line 8) | function Tabs({ function TabsList (line 21) | function TabsList({ function TabsTrigger (line 37) | function TabsTrigger({ function TabsContent (line 53) | function TabsContent({ FILE: packages/gym/components/ui/toggle-group.tsx function ToggleGroup (line 20) | function ToggleGroup({ function ToggleGroupItem (line 51) | function ToggleGroupItem({ FILE: packages/gym/components/ui/toggle.tsx function Toggle (line 31) | function Toggle({ FILE: packages/gym/components/ui/tooltip.tsx function TooltipProvider (line 8) | function TooltipProvider({ function Tooltip (line 21) | function Tooltip({ function TooltipTrigger (line 31) | function TooltipTrigger({ function TooltipContent (line 37) | function TooltipContent({ FILE: packages/gym/components/version-switcher.tsx function VersionSwitcher (line 18) | function VersionSwitcher({ FILE: packages/gym/hooks/use-mobile.ts constant MOBILE_BREAKPOINT (line 3) | const MOBILE_BREAKPOINT = 768; FILE: packages/gym/next.config.ts method rewrites (line 4) | async rewrites() { FILE: packages/gym/scripts/start-all-servers.js constant PROVIDERS_WITH_SERVERS (line 9) | const PROVIDERS_WITH_SERVERS = [ FILE: packages/mcp/src/client.ts type McpPluginOptions (line 4) | interface McpPluginOptions { type Window (line 44) | interface Window { constant MCP_REACHABLE_KEY (line 49) | const MCP_REACHABLE_KEY = "react-grab-mcp-reachable"; FILE: packages/mcp/src/constants.ts constant CONTEXT_TTL_MS (line 1) | const CONTEXT_TTL_MS = 5 * 60 * 1000; constant DEFAULT_MCP_PORT (line 2) | const DEFAULT_MCP_PORT = 4723; constant HEALTH_CHECK_TIMEOUT_MS (line 3) | const HEALTH_CHECK_TIMEOUT_MS = 1000; constant POST_KILL_DELAY_MS (line 4) | const POST_KILL_DELAY_MS = 100; FILE: packages/mcp/src/server.ts type AgentContext (line 25) | type AgentContext = z.infer; type StoredContext (line 27) | interface StoredContext { type McpSession (line 90) | interface McpSession { type StartMcpServerOptions (line 229) | interface StartMcpServerOptions { FILE: packages/provider-amp/src/handler.ts type AmpAgentOptions (line 9) | interface AmpAgentOptions extends AgentRunOptions {} type ThreadState (line 11) | interface ThreadState { FILE: packages/provider-claude-code/src/handler.ts type ClaudeAgentOptions (line 15) | interface ClaudeAgentOptions type ContentBlock (line 18) | type ContentBlock = SDKAssistantMessage["message"]["content"][number]; type TextContentBlock (line 19) | type TextContentBlock = Extract; FILE: packages/provider-codex/src/handler.ts type CodexAgentOptions (line 9) | interface CodexAgentOptions extends AgentRunOptions { type CodexThread (line 14) | type CodexThread = ReturnType; type ThreadState (line 16) | interface ThreadState { type CodexEventItem (line 21) | interface CodexEventItem { type CodexEvent (line 27) | interface CodexEvent { FILE: packages/provider-copilot/src/handler.ts type CopilotAgentOptions (line 10) | interface CopilotAgentOptions extends AgentRunOptions { FILE: packages/provider-cursor/src/handler.ts type CursorAgentOptions (line 10) | interface CursorAgentOptions extends AgentRunOptions { type CursorStreamEvent (line 15) | interface CursorStreamEvent { FILE: packages/provider-droid/src/handler.ts type DroidAgentOptions (line 10) | interface DroidAgentOptions extends AgentRunOptions { type DroidStreamEvent (line 17) | interface DroidStreamEvent { FILE: packages/provider-gemini/src/handler.ts type GeminiAgentOptions (line 10) | interface GeminiAgentOptions extends AgentRunOptions { type GeminiStreamEvent (line 15) | interface GeminiStreamEvent { FILE: packages/provider-opencode/src/constants.ts constant OPENCODE_SDK_PORT (line 1) | const OPENCODE_SDK_PORT = 4096; constant STATUS_TEXT_TRUNCATE_LENGTH (line 2) | const STATUS_TEXT_TRUNCATE_LENGTH = 100; FILE: packages/provider-opencode/src/handler.ts type OpenCodeAgentOptions (line 12) | interface OpenCodeAgentOptions extends AgentRunOptions { type OpenCodeInstance (line 18) | interface OpenCodeInstance { type OpenCodeEvent (line 23) | interface OpenCodeEvent { type LastMessageInfo (line 39) | interface LastMessageInfo { FILE: packages/react-grab/e2e/agent-resume-race.spec.ts constant OLD_STREAM_ABORT_DELAY_MS (line 3) | const OLD_STREAM_ABORT_DELAY_MS = 150; constant RESUME_STATUS_INTERVAL_MS (line 4) | const RESUME_STATUS_INTERVAL_MS = 40; constant RACE_SETTLE_WAIT_MS (line 5) | const RACE_SETTLE_WAIT_MS = 500; type ResumeRaceAgentActionContext (line 7) | interface ResumeRaceAgentActionContext { type ResumeRaceAgentInstallerWindow (line 11) | interface ResumeRaceAgentInstallerWindow extends Window { method send (line 55) | async *send(_context: unknown, signal: AbortSignal) { method resume (line 59) | async *resume(_sessionId: string, signal: AbortSignal) { FILE: packages/react-grab/e2e/context-menu.spec.ts method send (line 558) | *send() { method send (line 611) | *send() { FILE: packages/react-grab/e2e/copy-feedback.spec.ts constant FEEDBACK_DURATION_MS (line 3) | const FEEDBACK_DURATION_MS = 1500; FILE: packages/react-grab/e2e/disabled-elements.spec.ts constant CONTAINER_ID (line 3) | const CONTAINER_ID = "disabled-test-container"; FILE: packages/react-grab/e2e/fixtures.ts constant ATTRIBUTE_NAME (line 3) | const ATTRIBUTE_NAME = "data-react-grab"; constant DEFAULT_KEY_HOLD_DURATION_MS (line 4) | const DEFAULT_KEY_HOLD_DURATION_MS = 200; constant ACTIVATION_BUFFER_MS (line 5) | const ACTIVATION_BUFFER_MS = 200; constant PAGE_SETUP_MAX_ATTEMPTS (line 6) | const PAGE_SETUP_MAX_ATTEMPTS = 2; constant PAGE_SETUP_NAVIGATION_TIMEOUT_MS (line 7) | const PAGE_SETUP_NAVIGATION_TIMEOUT_MS = 8_000; constant PAGE_SETUP_API_TIMEOUT_MS (line 8) | const PAGE_SETUP_API_TIMEOUT_MS = 8_000; constant MODIFIER_KEY (line 9) | const MODIFIER_KEY = process.platform === "darwin" ? "Meta" : "Control"; type ContextMenuInfo (line 11) | interface ContextMenuInfo { type SelectionLabelInfo (line 18) | interface SelectionLabelInfo { type SelectionLabelBounds (line 27) | interface SelectionLabelBounds { type ToolbarInfo (line 33) | interface ToolbarInfo { type AgentSessionInfo (line 42) | interface AgentSessionInfo { type LabelInstanceInfo (line 50) | interface LabelInstanceInfo { type ReactGrabState (line 58) | interface ReactGrabState { type GrabbedBoxInfo (line 73) | interface GrabbedBoxInfo { type HistoryDropdownInfo (line 81) | interface HistoryDropdownInfo { type ToolbarMenuInfo (line 86) | interface ToolbarMenuInfo { type ReactGrabPageObject (line 92) | interface ReactGrabPageObject { method send (line 1901) | async *send() { FILE: packages/react-grab/e2e/focus-trap.spec.ts constant FOCUS_TRAP_CONTAINER_ID (line 3) | const FOCUS_TRAP_CONTAINER_ID = "focus-trap-test-container"; FILE: packages/react-grab/e2e/freeze-animations.spec.ts constant ATTRIBUTE_NAME (line 4) | const ATTRIBUTE_NAME = "data-react-grab"; FILE: packages/react-grab/e2e/history-reacquire.spec.ts type ViewportRect (line 4) | interface ViewportRect { FILE: packages/react-grab/e2e/ssr.spec.ts constant DIRECTORY (line 6) | const DIRECTORY = path.dirname(fileURLToPath(import.meta.url)); constant PACKAGE_DIRECTORY (line 7) | const PACKAGE_DIRECTORY = path.resolve(DIRECTORY, ".."); FILE: packages/react-grab/e2e/toggle-position-stability.spec.ts constant POSITION_TOLERANCE_PX (line 4) | const POSITION_TOLERANCE_PX = 3; constant TOGGLE_ANIMATION_SETTLE_MS (line 5) | const TOGGLE_ANIMATION_SETTLE_MS = 300; FILE: packages/react-grab/e2e/toolbar-selection-hover.spec.ts constant ATTRIBUTE_NAME (line 3) | const ATTRIBUTE_NAME = "data-react-grab"; FILE: packages/react-grab/scripts/css-rem-to-px.mjs constant BROWSER_DEFAULT_FONT_SIZE_PX (line 14) | const BROWSER_DEFAULT_FONT_SIZE_PX = 16; constant CSS_OUTPUT_PATH (line 15) | const CSS_OUTPUT_PATH = "./dist/styles.css"; FILE: packages/react-grab/scripts/postinstall.cjs constant AUTOMATION_ENVIRONMENT_VARIABLE_NAMES (line 1) | const AUTOMATION_ENVIRONMENT_VARIABLE_NAMES = [ constant REACT_GRAB_INIT_COMMAND (line 11) | const REACT_GRAB_INIT_COMMAND = "npx -y grab@latest init"; constant INSTALL_HINT_MESSAGE (line 12) | const INSTALL_HINT_MESSAGE = `[react-grab] Package installed via automat... FILE: packages/react-grab/src/components/clear-history-prompt.tsx type ClearHistoryPromptProps (line 11) | interface ClearHistoryPromptProps { FILE: packages/react-grab/src/components/context-menu.tsx type ContextMenuProps (line 35) | interface ContextMenuProps { type MenuItem (line 47) | interface MenuItem { FILE: packages/react-grab/src/components/history-dropdown.tsx constant ITEM_ACTION_CLASS (line 33) | const ITEM_ACTION_CLASS = type HistoryDropdownProps (line 36) | interface HistoryDropdownProps { FILE: packages/react-grab/src/components/icons/icon-check.tsx type IconCheckProps (line 3) | interface IconCheckProps { FILE: packages/react-grab/src/components/icons/icon-chevron.tsx type IconChevronProps (line 3) | interface IconChevronProps { FILE: packages/react-grab/src/components/icons/icon-clock.tsx type IconClockProps (line 3) | interface IconClockProps { FILE: packages/react-grab/src/components/icons/icon-copy.tsx type IconCopyProps (line 3) | interface IconCopyProps { FILE: packages/react-grab/src/components/icons/icon-ellipsis.tsx type IconEllipsisProps (line 3) | interface IconEllipsisProps { FILE: packages/react-grab/src/components/icons/icon-loader.tsx type IconLoaderProps (line 3) | interface IconLoaderProps { FILE: packages/react-grab/src/components/icons/icon-open.tsx type IconOpenProps (line 3) | interface IconOpenProps { FILE: packages/react-grab/src/components/icons/icon-reply.tsx type IconReplyProps (line 3) | interface IconReplyProps { FILE: packages/react-grab/src/components/icons/icon-retry.tsx type IconRetryProps (line 3) | interface IconRetryProps { FILE: packages/react-grab/src/components/icons/icon-return.tsx type IconReturnProps (line 3) | interface IconReturnProps { FILE: packages/react-grab/src/components/icons/icon-select.tsx type IconSelectProps (line 3) | interface IconSelectProps { FILE: packages/react-grab/src/components/icons/icon-submit.tsx type IconSubmitProps (line 3) | interface IconSubmitProps { FILE: packages/react-grab/src/components/icons/icon-trash.tsx type IconTrashProps (line 3) | interface IconTrashProps { FILE: packages/react-grab/src/components/overlay-canvas.tsx constant LAYER_STYLES (line 29) | const LAYER_STYLES = { type LayerName (line 52) | type LayerName = "drag" | "selection" | "grabbed" | "processing"; type OffscreenLayer (line 54) | interface OffscreenLayer { type AnimatedBounds (line 59) | interface AnimatedBounds { type OverlayCanvasProps (line 70) | interface OverlayCanvasProps { FILE: packages/react-grab/src/components/selection-label/arrow-navigation-menu.tsx type ArrowNavigationMenuProps (line 7) | interface ArrowNavigationMenuProps { FILE: packages/react-grab/src/components/selection-label/completion-view.tsx type MoreOptionsButtonProps (line 21) | interface MoreOptionsButtonProps { FILE: packages/react-grab/src/components/selection-label/index.tsx type LabelPosition (line 40) | interface LabelPosition { constant DEFAULT_OFFSCREEN_POSITION (line 48) | const DEFAULT_OFFSCREEN_POSITION: LabelPosition = { type PositionResult (line 56) | interface PositionResult { FILE: packages/react-grab/src/components/toolbar/index.tsx type ToolbarProps (line 75) | interface ToolbarProps { type FreezeHandlersOptions (line 103) | interface FreezeHandlersOptions { FILE: packages/react-grab/src/components/toolbar/state.ts type SnapEdge (line 5) | type SnapEdge = "top" | "bottom" | "left" | "right"; constant STORAGE_KEY (line 7) | const STORAGE_KEY = "react-grab-toolbar-state"; FILE: packages/react-grab/src/components/toolbar/toolbar-content.tsx type ToolbarContentProps (line 15) | interface ToolbarContentProps { FILE: packages/react-grab/src/components/toolbar/toolbar-menu.tsx type ToolbarMenuProps (line 17) | interface ToolbarMenuProps { FILE: packages/react-grab/src/components/tooltip.tsx type TooltipProps (line 16) | interface TooltipProps { FILE: packages/react-grab/src/constants.ts constant VERSION (line 3) | const VERSION = process.env.VERSION as string; constant VIEWPORT_MARGIN_PX (line 5) | const VIEWPORT_MARGIN_PX = 8; constant OFFSCREEN_POSITION (line 6) | const OFFSCREEN_POSITION = -1000; constant SELECTION_LERP_FACTOR (line 8) | const SELECTION_LERP_FACTOR = 0.95; constant FEEDBACK_DURATION_MS (line 10) | const FEEDBACK_DURATION_MS = 1500; constant FADE_DURATION_MS (line 11) | const FADE_DURATION_MS = 100; constant FADE_COMPLETE_BUFFER_MS (line 12) | const FADE_COMPLETE_BUFFER_MS = 150; constant DISMISS_ANIMATION_BUFFER_MS (line 13) | const DISMISS_ANIMATION_BUFFER_MS = 50; constant KEYDOWN_SPAM_TIMEOUT_MS (line 14) | const KEYDOWN_SPAM_TIMEOUT_MS = 200; constant BLUR_DEACTIVATION_THRESHOLD_MS (line 15) | const BLUR_DEACTIVATION_THRESHOLD_MS = 500; constant WINDOW_REFOCUS_GRACE_PERIOD_MS (line 16) | const WINDOW_REFOCUS_GRACE_PERIOD_MS = 200; constant INPUT_FOCUS_ACTIVATION_DELAY_MS (line 17) | const INPUT_FOCUS_ACTIVATION_DELAY_MS = 400; constant INPUT_TEXT_SELECTION_ACTIVATION_DELAY_MS (line 18) | const INPUT_TEXT_SELECTION_ACTIVATION_DELAY_MS = 600; constant DEFAULT_KEY_HOLD_DURATION_MS (line 19) | const DEFAULT_KEY_HOLD_DURATION_MS = 100; constant DEFAULT_MAX_CONTEXT_LINES (line 20) | const DEFAULT_MAX_CONTEXT_LINES = 3; constant MIN_HOLD_FOR_ACTIVATION_AFTER_COPY_MS (line 21) | const MIN_HOLD_FOR_ACTIVATION_AFTER_COPY_MS = 200; constant RECENT_THRESHOLD_MS (line 22) | const RECENT_THRESHOLD_MS = 10_000; constant FINDER_TIMEOUT_MS (line 23) | const FINDER_TIMEOUT_MS = 200; constant SELECTOR_ATTR_VALUE_MAX_LENGTH_CHARS (line 24) | const SELECTOR_ATTR_VALUE_MAX_LENGTH_CHARS = 120; constant ACTION_CYCLE_IDLE_TRIGGER_MS (line 26) | const ACTION_CYCLE_IDLE_TRIGGER_MS = 600; constant DRAG_THRESHOLD_PX (line 28) | const DRAG_THRESHOLD_PX = 2; constant ELEMENT_DETECTION_THROTTLE_MS (line 30) | const ELEMENT_DETECTION_THROTTLE_MS = 32; constant PENDING_DETECTION_STALENESS_MS (line 31) | const PENDING_DETECTION_STALENESS_MS = 200; constant COMPONENT_NAME_DEBOUNCE_MS (line 32) | const COMPONENT_NAME_DEBOUNCE_MS = 100; constant DRAG_PREVIEW_DEBOUNCE_MS (line 33) | const DRAG_PREVIEW_DEBOUNCE_MS = 32; constant BOUNDS_CACHE_TTL_MS (line 34) | const BOUNDS_CACHE_TTL_MS = 16; constant BOUNDS_RECALC_INTERVAL_MS (line 35) | const BOUNDS_RECALC_INTERVAL_MS = 100; constant AUTO_SCROLL_EDGE_THRESHOLD_PX (line 37) | const AUTO_SCROLL_EDGE_THRESHOLD_PX = 25; constant AUTO_SCROLL_SPEED_PX (line 38) | const AUTO_SCROLL_SPEED_PX = 10; constant Z_INDEX_HOST (line 40) | const Z_INDEX_HOST = 2147483647; constant Z_INDEX_LABEL (line 41) | const Z_INDEX_LABEL = 2147483647; constant Z_INDEX_OVERLAY_CANVAS (line 42) | const Z_INDEX_OVERLAY_CANVAS = 2147483645; constant DRAG_LERP_FACTOR (line 44) | const DRAG_LERP_FACTOR = 0.7; constant LERP_CONVERGENCE_THRESHOLD_PX (line 45) | const LERP_CONVERGENCE_THRESHOLD_PX = 0.5; constant OPACITY_CONVERGENCE_THRESHOLD (line 46) | const OPACITY_CONVERGENCE_THRESHOLD = 0.01; constant FADE_OUT_BUFFER_MS (line 47) | const FADE_OUT_BUFFER_MS = 100; constant MIN_DEVICE_PIXEL_RATIO (line 48) | const MIN_DEVICE_PIXEL_RATIO = 2; constant OVERLAY_BORDER_COLOR_DRAG (line 50) | const OVERLAY_BORDER_COLOR_DRAG = overlayColor(0.4); constant OVERLAY_FILL_COLOR_DRAG (line 51) | const OVERLAY_FILL_COLOR_DRAG = overlayColor(0.05); constant OVERLAY_BORDER_COLOR_DEFAULT (line 52) | const OVERLAY_BORDER_COLOR_DEFAULT = overlayColor(0.5); constant OVERLAY_FILL_COLOR_DEFAULT (line 53) | const OVERLAY_FILL_COLOR_DEFAULT = overlayColor(0.08); constant FROZEN_GLOW_COLOR (line 54) | const FROZEN_GLOW_COLOR = overlayColor(0.15); constant FROZEN_GLOW_EDGE_PX (line 55) | const FROZEN_GLOW_EDGE_PX = 50; constant ARROW_HEIGHT_PX (line 57) | const ARROW_HEIGHT_PX = 8; constant ARROW_MIN_SIZE_PX (line 58) | const ARROW_MIN_SIZE_PX = 4; constant ARROW_MAX_LABEL_WIDTH_RATIO (line 59) | const ARROW_MAX_LABEL_WIDTH_RATIO = 0.2; constant ARROW_CENTER_PERCENT (line 60) | const ARROW_CENTER_PERCENT = 50; constant ARROW_LABEL_MARGIN_PX (line 61) | const ARROW_LABEL_MARGIN_PX = 16; constant LABEL_GAP_PX (line 62) | const LABEL_GAP_PX = 4; constant PREVIEW_TEXT_MAX_LENGTH (line 63) | const PREVIEW_TEXT_MAX_LENGTH = 100; constant PREVIEW_ATTR_VALUE_MAX_LENGTH (line 64) | const PREVIEW_ATTR_VALUE_MAX_LENGTH = 15; constant PREVIEW_MAX_ATTRS (line 65) | const PREVIEW_MAX_ATTRS = 3; constant PREVIEW_PRIORITY_ATTRS (line 66) | const PREVIEW_PRIORITY_ATTRS: readonly string[] = [ constant MODIFIER_KEYS (line 76) | const MODIFIER_KEYS: readonly string[] = [ constant ARROW_KEYS (line 83) | const ARROW_KEYS = new Set([ constant FROZEN_ELEMENT_ATTRIBUTE (line 90) | const FROZEN_ELEMENT_ATTRIBUTE = "data-react-grab-frozen"; constant USER_IGNORE_ATTRIBUTE (line 92) | const USER_IGNORE_ATTRIBUTE = "data-react-grab-ignore"; constant VIEWPORT_COVERAGE_THRESHOLD (line 94) | const VIEWPORT_COVERAGE_THRESHOLD = 0.9; constant OVERLAY_Z_INDEX_THRESHOLD (line 95) | const OVERLAY_Z_INDEX_THRESHOLD = 1000; constant DEV_TOOLS_OVERLAY_Z_INDEX_THRESHOLD (line 96) | const DEV_TOOLS_OVERLAY_Z_INDEX_THRESHOLD = 2147483600; constant TOOLTIP_DELAY_MS (line 98) | const TOOLTIP_DELAY_MS = 400; constant TOOLTIP_GRACE_PERIOD_MS (line 99) | const TOOLTIP_GRACE_PERIOD_MS = 100; constant TOOLBAR_SNAP_MARGIN_PX (line 101) | const TOOLBAR_SNAP_MARGIN_PX = 16; constant TOOLBAR_FADE_IN_DELAY_MS (line 102) | const TOOLBAR_FADE_IN_DELAY_MS = 500; constant TOOLBAR_SNAP_ANIMATION_DURATION_MS (line 103) | const TOOLBAR_SNAP_ANIMATION_DURATION_MS = 300; constant TOOLBAR_DRAG_THRESHOLD_PX (line 104) | const TOOLBAR_DRAG_THRESHOLD_PX = 5; constant TOOLBAR_VELOCITY_MULTIPLIER_MS (line 105) | const TOOLBAR_VELOCITY_MULTIPLIER_MS = 150; constant TOOLBAR_COLLAPSED_SHORT_PX (line 106) | const TOOLBAR_COLLAPSED_SHORT_PX = 14; constant TOOLBAR_COLLAPSED_LONG_PX (line 107) | const TOOLBAR_COLLAPSED_LONG_PX = 28; constant TOOLBAR_COLLAPSE_ANIMATION_DURATION_MS (line 108) | const TOOLBAR_COLLAPSE_ANIMATION_DURATION_MS = 150; constant TOGGLE_ANIMATION_BUFFER_MS (line 109) | const TOGGLE_ANIMATION_BUFFER_MS = 50; constant TOOLBAR_DEFAULT_WIDTH_PX (line 110) | const TOOLBAR_DEFAULT_WIDTH_PX = 78; constant TOOLBAR_DEFAULT_HEIGHT_PX (line 111) | const TOOLBAR_DEFAULT_HEIGHT_PX = 28; constant TOOLBAR_DEFAULT_POSITION_RATIO (line 112) | const TOOLBAR_DEFAULT_POSITION_RATIO = 0.5; constant TOOLBAR_SHAKE_TOOLTIP_DURATION_MS (line 113) | const TOOLBAR_SHAKE_TOOLTIP_DURATION_MS = 1500; constant SELECTION_HINT_CYCLE_INTERVAL_MS (line 114) | const SELECTION_HINT_CYCLE_INTERVAL_MS = 3000; constant SELECTION_HINT_COUNT (line 115) | const SELECTION_HINT_COUNT = 3; constant HINT_FLIP_IN_ANIMATION (line 117) | const HINT_FLIP_IN_ANIMATION = constant DRAG_SELECTION_COVERAGE_THRESHOLD (line 120) | const DRAG_SELECTION_COVERAGE_THRESHOLD = 0.75; constant DRAG_SELECTION_SAMPLE_SPACING_PX (line 121) | const DRAG_SELECTION_SAMPLE_SPACING_PX = 32; constant DRAG_SELECTION_MIN_SAMPLES_PER_AXIS (line 122) | const DRAG_SELECTION_MIN_SAMPLES_PER_AXIS = 3; constant DRAG_SELECTION_MAX_SAMPLES_PER_AXIS (line 123) | const DRAG_SELECTION_MAX_SAMPLES_PER_AXIS = 20; constant DRAG_SELECTION_MAX_TOTAL_SAMPLE_POINTS (line 124) | const DRAG_SELECTION_MAX_TOTAL_SAMPLE_POINTS = 100; constant DRAG_SELECTION_EDGE_INSET_PX (line 125) | const DRAG_SELECTION_EDGE_INSET_PX = 1; constant MAX_ARROW_NAVIGATION_HISTORY (line 127) | const MAX_ARROW_NAVIGATION_HISTORY = 50; constant MAX_MEMORY_SESSIONS (line 128) | const MAX_MEMORY_SESSIONS = 50; constant MAX_TRANSFORM_ANCESTOR_DEPTH (line 130) | const MAX_TRANSFORM_ANCESTOR_DEPTH = 6; constant TRANSFORM_EARLY_BAIL_DEPTH (line 131) | const TRANSFORM_EARLY_BAIL_DEPTH = 3; constant ELEMENT_POSITION_CACHE_DISTANCE_THRESHOLD_PX (line 133) | const ELEMENT_POSITION_CACHE_DISTANCE_THRESHOLD_PX = 2; constant ELEMENT_POSITION_THROTTLE_MS (line 134) | const ELEMENT_POSITION_THROTTLE_MS = 16; constant POINTER_EVENTS_RESUME_DEBOUNCE_MS (line 135) | const POINTER_EVENTS_RESUME_DEBOUNCE_MS = 100; constant VISIBILITY_CACHE_TTL_MS (line 136) | const VISIBILITY_CACHE_TTL_MS = 50; constant ZOOM_DETECTION_THRESHOLD (line 138) | const ZOOM_DETECTION_THRESHOLD = 0.01; constant MOUNT_ROOT_RECHECK_DELAY_MS (line 140) | const MOUNT_ROOT_RECHECK_DELAY_MS = 1000; constant MAX_HISTORY_ITEMS (line 142) | const MAX_HISTORY_ITEMS = 20; constant MAX_SESSION_STORAGE_SIZE_BYTES (line 143) | const MAX_SESSION_STORAGE_SIZE_BYTES = 2 * 1024 * 1024; constant DROPDOWN_ANIMATION_DURATION_MS (line 144) | const DROPDOWN_ANIMATION_DURATION_MS = 100; constant DROPDOWN_HOVER_OPEN_DELAY_MS (line 145) | const DROPDOWN_HOVER_OPEN_DELAY_MS = 200; constant DROPDOWN_VIEWPORT_PADDING_PX (line 146) | const DROPDOWN_VIEWPORT_PADDING_PX = 8; constant DROPDOWN_ANCHOR_GAP_PX (line 147) | const DROPDOWN_ANCHOR_GAP_PX = 8; constant SAFE_POLYGON_BUFFER_PX (line 148) | const SAFE_POLYGON_BUFFER_PX = 8; constant DROPDOWN_ICON_SIZE_PX (line 149) | const DROPDOWN_ICON_SIZE_PX = 11; constant DROPDOWN_MIN_WIDTH_PX (line 150) | const DROPDOWN_MIN_WIDTH_PX = 180; constant DROPDOWN_MAX_WIDTH_PX (line 151) | const DROPDOWN_MAX_WIDTH_PX = 280; constant TOOLBAR_MENU_MIN_WIDTH_PX (line 152) | const TOOLBAR_MENU_MIN_WIDTH_PX = 100; constant DROPDOWN_OFFSCREEN_POSITION (line 154) | const DROPDOWN_OFFSCREEN_POSITION = { left: -9999, top: -9999 }; constant DROPDOWN_EDGE_TRANSFORM_ORIGIN (line 156) | const DROPDOWN_EDGE_TRANSFORM_ORIGIN = { constant NEXTJS_REVALIDATION_DELAY_MS (line 163) | const NEXTJS_REVALIDATION_DELAY_MS = 1000; constant TEXTAREA_MAX_HEIGHT_PX (line 165) | const TEXTAREA_MAX_HEIGHT_PX = 95; constant IME_COMPOSING_KEY_CODE (line 167) | const IME_COMPOSING_KEY_CODE = 229; constant SELECTION_LABEL_OFFSCREEN_PX (line 168) | const SELECTION_LABEL_OFFSCREEN_PX = -9999; constant RELEVANT_CSS_PROPERTIES (line 170) | const RELEVANT_CSS_PROPERTIES = new Set([ FILE: packages/react-grab/src/core/agent/manager.ts type StartSessionParams (line 32) | interface StartSessionParams { type AgentManagerHooks (line 41) | interface AgentManagerHooks { type SessionOperations (line 48) | interface SessionOperations { type HistoryOperations (line 60) | interface HistoryOperations { type InternalOperations (line 65) | interface InternalOperations { type AgentManager (line 71) | interface AgentManager { FILE: packages/react-grab/src/core/agent/session.ts constant STORAGE_KEY (line 12) | const STORAGE_KEY = "react-grab:agent-sessions"; FILE: packages/react-grab/src/core/arrow-navigation.ts type ElementValidator (line 7) | interface ElementValidator { type BoundsCalculator (line 11) | interface BoundsCalculator { type ArrowNavigator (line 15) | interface ArrowNavigator { FILE: packages/react-grab/src/core/auto-scroll.ts type AutoScrollDirection (line 11) | interface AutoScrollDirection { type AutoScroller (line 30) | interface AutoScroller { FILE: packages/react-grab/src/core/context.ts constant NON_COMPONENT_PREFIXES (line 31) | const NON_COMPONENT_PREFIXES = new Set([ constant NEXT_INTERNAL_COMPONENT_NAMES (line 42) | const NEXT_INTERNAL_COMPONENT_NAMES = new Set([ constant REACT_INTERNAL_COMPONENT_NAMES (line 70) | const REACT_INTERNAL_COMPONENT_NAMES = new Set([ type StackContextOptions (line 119) | interface StackContextOptions { type FormatPriorityAttrsOptions (line 212) | interface FormatPriorityAttrsOptions { FILE: packages/react-grab/src/core/copy.ts type CopyOptions (line 6) | interface CopyOptions { type CopyHooks (line 12) | interface CopyHooks { FILE: packages/react-grab/src/core/events.ts type EventListenerManager (line 1) | interface EventListenerManager { FILE: packages/react-grab/src/core/index.tsx type CopyWithLabelOptions (line 169) | interface CopyWithLabelOptions { type BuildActionContextOptions (line 184) | interface BuildActionContextOptions { method start (line 520) | start() { method clear (line 530) | clear() { FILE: packages/react-grab/src/core/keyboard-handlers.ts type ModifierKeys (line 4) | interface ModifierKeys { type PatchableGetter (line 18) | interface PatchableGetter { type KeyDescriptor (line 23) | interface KeyDescriptor extends PropertyDescriptor { type KeyboardEventClaimer (line 27) | interface KeyboardEventClaimer { FILE: packages/react-grab/src/core/logo-svg.ts constant LOGO_SVG (line 1) | const LOGO_SVG = ` = { FILE: packages/react-grab/src/index.ts type Window (line 50) | interface Window { FILE: packages/react-grab/src/primitives.ts type ReactGrabElementContext (line 22) | interface ReactGrabElementContext { FILE: packages/react-grab/src/types.ts type Position (line 1) | interface Position { type DeepPartial (line 6) | type DeepPartial = { type Theme (line 14) | interface Theme { type ReactGrabState (line 77) | interface ReactGrabState { type ElementLabelVariant (line 106) | type ElementLabelVariant = "hover" | "processing" | "success"; type PromptModeContext (line 108) | interface PromptModeContext { type ElementLabelContext (line 114) | interface ElementLabelContext { type ActivationKey (line 125) | type ActivationKey = string | ((event: KeyboardEvent) => boolean); type AgentContext (line 127) | interface AgentContext { type AgentSession (line 134) | interface AgentSession { type AgentProvider (line 149) | interface AgentProvider { type AgentSessionStorage (line 171) | interface AgentSessionStorage { type AgentCompleteResult (line 177) | interface AgentCompleteResult { type AgentOptions (line 181) | interface AgentOptions { type ActivationMode (line 198) | type ActivationMode = "toggle" | "hold"; type ActionContextHooks (line 200) | interface ActionContextHooks { type ActionContext (line 210) | interface ActionContext { type ContextMenuActionContext (line 224) | interface ContextMenuActionContext extends ActionContext { type ContextMenuAction (line 228) | interface ContextMenuAction { type ActionCycleItem (line 238) | interface ActionCycleItem { type ActionCycleState (line 244) | interface ActionCycleState { type ArrowNavigationItem (line 250) | interface ArrowNavigationItem { type ArrowNavigationState (line 255) | interface ArrowNavigationState { type PerformWithFeedbackOptions (line 261) | interface PerformWithFeedbackOptions { type PluginHooks (line 267) | interface PluginHooks { type ToolbarMenuAction (line 322) | interface ToolbarMenuAction { type PluginAction (line 332) | type PluginAction = ContextMenuAction | ToolbarMenuAction; type PluginConfig (line 334) | interface PluginConfig { type Plugin (line 342) | interface Plugin { type Options (line 351) | interface Options { type SettableOptions (line 367) | interface SettableOptions extends Options { type SourceInfo (line 371) | interface SourceInfo { type ToolbarState (line 377) | interface ToolbarState { type DropdownAnchor (line 384) | interface DropdownAnchor { type ReactGrabAPI (line 391) | interface ReactGrabAPI { type OverlayBounds (line 414) | interface OverlayBounds { type SelectionLabelStatus (line 423) | type SelectionLabelStatus = type SelectionLabelInstance (line 430) | interface SelectionLabelInstance { type HistoryItem (line 451) | interface HistoryItem { type ReactGrabRendererProps (line 465) | interface ReactGrabRendererProps { type GrabbedBox (line 565) | interface GrabbedBox { type Rect (line 572) | interface Rect { type DragRect (line 579) | interface DragRect { type ArrowPosition (line 586) | type ArrowPosition = "bottom" | "top"; type ArrowProps (line 588) | interface ArrowProps { type TagBadgeProps (line 596) | interface TagBadgeProps { type BottomSectionProps (line 606) | interface BottomSectionProps { type DiscardPromptProps (line 610) | interface DiscardPromptProps { type ErrorViewProps (line 617) | interface ErrorViewProps { type CompletionViewProps (line 623) | interface CompletionViewProps { type SelectionLabelProps (line 637) | interface SelectionLabelProps { FILE: packages/react-grab/src/utils/combine-bounds.ts type Bounds (line 1) | interface Bounds { FILE: packages/react-grab/src/utils/copy-content.ts constant REACT_GRAB_MIME_TYPE (line 3) | const REACT_GRAB_MIME_TYPE = "application/x-react-grab"; type ReactGrabEntry (line 5) | interface ReactGrabEntry { type CopyContentOptions (line 12) | interface CopyContentOptions { type ReactGrabMetadata (line 20) | interface ReactGrabMetadata { FILE: packages/react-grab/src/utils/create-anchored-dropdown.ts type AnchoredDropdownResult (line 16) | interface AnchoredDropdownResult { FILE: packages/react-grab/src/utils/create-bounds-from-drag-rect.ts type DragRectWithPageCoords (line 3) | interface DragRectWithPageCoords { type BaseBounds (line 10) | interface BaseBounds { FILE: packages/react-grab/src/utils/create-element-bounds.ts type CachedBounds (line 12) | interface CachedBounds { FILE: packages/react-grab/src/utils/create-element-selector.ts constant PREFERRED_SELECTOR_ATTRIBUTE_NAMES (line 17) | const PREFERRED_SELECTOR_ATTRIBUTE_NAMES = new Set([ FILE: packages/react-grab/src/utils/create-menu-highlight.ts type AnimatedBoundsFollowerOptions (line 1) | interface AnimatedBoundsFollowerOptions { type AnimatedBoundsFollowerController (line 6) | interface AnimatedBoundsFollowerController { type MenuHighlightController (line 13) | interface MenuHighlightController { constant DEFAULT_HIDDEN_OPACITY (line 20) | const DEFAULT_HIDDEN_OPACITY = "0"; constant DEFAULT_VISIBLE_OPACITY (line 21) | const DEFAULT_VISIBLE_OPACITY = "1"; FILE: packages/react-grab/src/utils/create-toolbar-drag.ts type ToolbarDragConfig (line 16) | interface ToolbarDragConfig { type ToolbarDragResult (line 32) | interface ToolbarDragResult { FILE: packages/react-grab/src/utils/extract-element-css.ts constant BORDER_FILTER_SIDE_MAP (line 3) | const BORDER_FILTER_SIDE_MAP = new Map( FILE: packages/react-grab/src/utils/format-relative-time.ts constant SECONDS_PER_MINUTE (line 1) | const SECONDS_PER_MINUTE = 60; constant MINUTES_PER_HOUR (line 2) | const MINUTES_PER_HOUR = 60; constant HOURS_PER_DAY (line 3) | const HOURS_PER_DAY = 24; FILE: packages/react-grab/src/utils/freeze-animations.ts constant FROZEN_STYLES (line 5) | const FROZEN_STYLES = ` constant GLOBAL_FREEZE_STYLES (line 13) | const GLOBAL_FREEZE_STYLES = ` constant SVG_ROOT_SELECTOR (line 20) | const SVG_ROOT_SELECTOR = "svg"; FILE: packages/react-grab/src/utils/freeze-pseudo-states.ts constant POINTER_EVENTS_STYLES (line 4) | const POINTER_EVENTS_STYLES = "html { pointer-events: none !important; }"; constant MOUSE_EVENTS_TO_BLOCK (line 6) | const MOUSE_EVENTS_TO_BLOCK = [ constant FOCUS_EVENTS_TO_BLOCK (line 17) | const FOCUS_EVENTS_TO_BLOCK = ["focus", "blur", "focusin", "focusout"] a... constant HOVER_STYLE_PROPERTIES (line 19) | const HOVER_STYLE_PROPERTIES = [ constant FOCUS_STYLE_PROPERTIES (line 32) | const FOCUS_STYLE_PROPERTIES = [ type FrozenPseudoState (line 48) | interface FrozenPseudoState { FILE: packages/react-grab/src/utils/freeze-updates.ts type FiberRootLike (line 12) | interface FiberRootLike extends FiberRoot { type PendingUpdate (line 16) | interface PendingUpdate { type HookQueue (line 22) | interface HookQueue { type HookState (line 28) | interface HookState { type ContextDependency (line 33) | interface ContextDependency { type PausedQueueState (line 38) | interface PausedQueueState { type PausedContextState (line 46) | interface PausedContextState { type DispatchFunction (line 67) | type DispatchFunction = (...args: unknown[]) => void; type TransitionFunction (line 68) | type TransitionFunction = (callback: () => void) => void; type OriginalHooks (line 70) | interface OriginalHooks { method get (line 265) | get() { method set (line 272) | set(value: unknown) { type UseSyncExternalStore (line 451) | type UseSyncExternalStore = ( FILE: packages/react-grab/src/utils/generate-snippet.ts type GenerateSnippetOptions (line 3) | interface GenerateSnippetOptions { FILE: packages/react-grab/src/utils/get-anchored-dropdown-position.ts type DropdownPosition (line 4) | interface DropdownPosition { type GetAnchoredDropdownPositionOptions (line 9) | interface GetAnchoredDropdownPositionOptions { FILE: packages/react-grab/src/utils/get-bounds-center.ts type BoundsCenter (line 3) | interface BoundsCenter { FILE: packages/react-grab/src/utils/get-element-at-position.ts type PositionCache (line 12) | interface PositionCache { FILE: packages/react-grab/src/utils/get-elements-in-drag.ts type SamplePoint (line 51) | interface SamplePoint { FILE: packages/react-grab/src/utils/get-tag-display.ts type TagDisplayInput (line 1) | interface TagDisplayInput { type TagDisplayOutput (line 7) | interface TagDisplayOutput { FILE: packages/react-grab/src/utils/get-visible-bounds-center.ts type Point (line 3) | interface Point { FILE: packages/react-grab/src/utils/get-visual-viewport.ts type VisualViewportInfo (line 1) | interface VisualViewportInfo { FILE: packages/react-grab/src/utils/history-storage.ts constant SESSION_STORAGE_KEY (line 9) | const SESSION_STORAGE_KEY = "react-grab-history-items"; FILE: packages/react-grab/src/utils/is-c-like-key.ts constant C_LIKE_CHARACTERS (line 1) | const C_LIKE_CHARACTERS = new Set([ FILE: packages/react-grab/src/utils/is-keyboard-event-triggered-by-input.ts constant EDITABLE_TAGS_AND_ROLES (line 3) | const EDITABLE_TAGS_AND_ROLES: readonly string[] = [ FILE: packages/react-grab/src/utils/is-target-key-combination.ts type HotkeyOptions (line 6) | interface HotkeyOptions { FILE: packages/react-grab/src/utils/is-valid-grabbable-element.ts type VisibilityCache (line 70) | interface VisibilityCache { FILE: packages/react-grab/src/utils/mount-root.ts constant ATTRIBUTE_NAME (line 3) | const ATTRIBUTE_NAME = "data-react-grab"; constant FONT_LINK_ID (line 5) | const FONT_LINK_ID = "react-grab-fonts"; constant FONT_LINK_URL (line 6) | const FONT_LINK_URL = FILE: packages/react-grab/src/utils/on-idle.ts type BackgroundTaskScheduler (line 1) | interface BackgroundTaskScheduler { type Window (line 9) | interface Window { FILE: packages/react-grab/src/utils/open-file.ts constant OPEN_FILE_BASE_URL (line 5) | const OPEN_FILE_BASE_URL = FILE: packages/react-grab/src/utils/overlay-color.ts constant SRGB_COMPONENTS (line 4) | const SRGB_COMPONENTS = "210, 57, 192"; constant P3_COMPONENTS (line 5) | const P3_COMPONENTS = "0.84 0.19 0.78"; FILE: packages/react-grab/src/utils/parse-activation-key.ts type ParsedModifiers (line 5) | interface ParsedModifiers { constant MODIFIER_MAP (line 13) | const MODIFIER_MAP: Record> = { FILE: packages/react-grab/src/utils/recalculate-session-position.ts type RecalculateSessionPositionOptions (line 4) | interface RecalculateSessionPositionOptions { FILE: packages/react-grab/src/utils/register-overlay-dismiss.ts type RegisterOverlayDismissOptions (line 8) | interface RegisterOverlayDismissOptions { FILE: packages/react-grab/src/utils/safe-polygon.ts type Point (line 1) | interface Point { type TargetRect (line 6) | interface TargetRect { FILE: packages/react-grab/src/utils/toolbar-position.ts type Dimensions (line 105) | interface Dimensions { type SnapResult (line 224) | interface SnapResult extends Position { FILE: packages/react-grab/tsup.config.ts constant DEFAULT_OPTIONS (line 36) | const DEFAULT_OPTIONS: Options = { FILE: packages/relay/src/client.ts type RelayClient (line 12) | interface RelayClient { type RelayClientOptions (line 26) | interface RelayClientOptions { type AgentProvider (line 244) | interface AgentProvider { type CreateRelayAgentProviderOptions (line 254) | interface CreateRelayAgentProviderOptions { type ReactGrabApi (line 483) | interface ReactGrabApi { type Window (line 488) | interface Window { type ProviderPluginConfig (line 513) | interface ProviderPluginConfig { FILE: packages/relay/src/connection.ts constant VERSION (line 13) | const VERSION = process.env.VERSION ?? "0.0.0"; type ConnectRelayOptions (line 15) | interface ConnectRelayOptions { type RelayConnection (line 21) | interface RelayConnection { FILE: packages/relay/src/protocol.ts constant DEFAULT_RELAY_PORT (line 1) | const DEFAULT_RELAY_PORT = 4722; constant DEFAULT_RECONNECT_INTERVAL_MS (line 2) | const DEFAULT_RECONNECT_INTERVAL_MS = 3000; constant HEALTH_CHECK_TIMEOUT_MS (line 3) | const HEALTH_CHECK_TIMEOUT_MS = 1000; constant POST_KILL_DELAY_MS (line 4) | const POST_KILL_DELAY_MS = 100; constant RELAY_TOKEN_PARAM (line 5) | const RELAY_TOKEN_PARAM = "token"; constant COMPLETED_STATUS (line 6) | const COMPLETED_STATUS = "Completed"; type AgentMessage (line 8) | interface AgentMessage { type AgentContext (line 13) | interface AgentContext { type AgentRunOptions (line 20) | interface AgentRunOptions { type AgentHandler (line 26) | interface AgentHandler { type HandlerRegistrationMessage (line 37) | interface HandlerRegistrationMessage { type HandlerUnregisterMessage (line 42) | interface HandlerUnregisterMessage { type RelayToHandlerMessage (line 47) | interface RelayToHandlerMessage { type HandlerToRelayMessage (line 57) | interface HandlerToRelayMessage { type BrowserToRelayMessage (line 64) | interface BrowserToRelayMessage { type RelayToBrowserMessage (line 76) | interface RelayToBrowserMessage { type HandlerMessage (line 84) | type HandlerMessage = type RelayMessage (line 89) | type RelayMessage = RelayToHandlerMessage | RelayToBrowserMessage; FILE: packages/relay/src/server.ts type RegisteredHandler (line 14) | interface RegisteredHandler { type SessionMessageQueue (line 20) | interface SessionMessageQueue { type ActiveSession (line 75) | interface ActiveSession { type RelayServerOptions (line 83) | interface RelayServerOptions { type RelayServer (line 88) | interface RelayServer { FILE: packages/shadcn-registry/registry/react-grab.tsx constant SCRIPT_ID (line 5) | const SCRIPT_ID = "react-grab-script"; constant SCRIPT_SRC (line 6) | const SCRIPT_SRC = "https://unpkg.com/react-grab/dist/index.global.js"; FILE: packages/shadcn-registry/scripts/build.js constant CURRENT_DIRECTORY (line 5) | const CURRENT_DIRECTORY = dirname(fileURLToPath(import.meta.url)); constant ROOT_DIRECTORY (line 6) | const ROOT_DIRECTORY = resolve(CURRENT_DIRECTORY, ".."); constant OUTPUT_DIRECTORY (line 7) | const OUTPUT_DIRECTORY = resolve(ROOT_DIRECTORY, "r"); FILE: packages/utils/src/server.ts constant COMMAND_INSTALL_MAP (line 4) | const COMMAND_INSTALL_MAP: Record = { type SpawnError (line 13) | interface SpawnError extends Error { FILE: packages/web-extension/src/background/service-worker.ts constant STORAGE_KEY (line 1) | const STORAGE_KEY = "react_grab_enabled"; FILE: packages/web-extension/src/constants.ts constant LOCALHOST_INIT_DELAY_MS (line 1) | const LOCALHOST_INIT_DELAY_MS = 500; constant STATE_QUERY_TIMEOUT_MS (line 2) | const STATE_QUERY_TIMEOUT_MS = 500; FILE: packages/web-extension/src/content/react-grab.ts type Window (line 10) | interface Window { type ToolbarState (line 22) | interface ToolbarState { type InitialState (line 153) | interface InitialState { FILE: packages/website/app/api/og/route.tsx constant BRAND_PINK (line 5) | const BRAND_PINK = "#fc4efd"; constant BACKGROUND_DARK_PURPLE (line 6) | const BACKGROUND_DARK_PURPLE = "#1a0815"; FILE: packages/website/app/api/report-cli/route.ts type ReportPayload (line 3) | interface ReportPayload { FILE: packages/website/app/blog/1-0/layout.tsx type BlogPostLayoutProps (line 41) | interface BlogPostLayoutProps { FILE: packages/website/app/blog/1-0/page.tsx type ToolWithIconProps (line 18) | interface ToolWithIconProps { FILE: packages/website/app/blog/agent/layout.tsx type AgentLayoutProps (line 41) | interface AgentLayoutProps { FILE: packages/website/app/blog/agent/page.tsx type HighlightedCodeBlockProps (line 17) | interface HighlightedCodeBlockProps { FILE: packages/website/app/blog/bets/layout.tsx type BetsLayoutProps (line 40) | interface BetsLayoutProps { FILE: packages/website/app/blog/intro/layout.tsx type BlogPostLayoutProps (line 41) | interface BlogPostLayoutProps { FILE: packages/website/app/blog/layout.tsx type BlogLayoutProps (line 34) | interface BlogLayoutProps { FILE: packages/website/app/blog/page.tsx type BlogPost (line 8) | interface BlogPost { FILE: packages/website/app/design-system/layout.tsx type DesignSystemLayoutProps (line 43) | interface DesignSystemLayoutProps { FILE: packages/website/app/open-file/layout.tsx type OpenFileLayoutProps (line 34) | interface OpenFileLayoutProps { FILE: packages/website/app/open-file/page.tsx constant EDITOR_OPTIONS (line 15) | const EDITOR_OPTIONS = ["cursor", "vscode", "zed", "webstorm"] as const; type Editor (line 16) | type Editor = (typeof EDITOR_OPTIONS)[number]; type EditorOption (line 18) | interface EditorOption { constant EDITORS (line 24) | const EDITORS: EditorOption[] = [ constant STORAGE_KEY (line 31) | const STORAGE_KEY = "react-grab-preferred-editor"; FILE: packages/website/app/sitemap.ts constant BASE_URL (line 5) | const BASE_URL = "https://react-grab.com"; constant EXCLUDED_PATHS (line 7) | const EXCLUDED_PATHS = new Set(["api", "open-file"]); FILE: packages/website/components/benchmark-tooltip.tsx type BenchmarkTooltipProps (line 16) | interface BenchmarkTooltipProps { type MiniBarProps (line 22) | interface MiniBarProps { type MiniChartProps (line 75) | interface MiniChartProps { FILE: packages/website/components/benchmarks/benchmark-charts.tsx type BenchmarkChartsProps (line 39) | interface BenchmarkChartsProps { type CustomTooltipProps (line 43) | interface CustomTooltipProps { type AnimatedBarProps (line 104) | interface AnimatedBarProps { type AnimatedBarTreatmentProps (line 293) | interface AnimatedBarTreatmentProps { type LiveCounterProps (line 352) | interface LiveCounterProps { FILE: packages/website/components/benchmarks/benchmark-detailed-table.tsx type BenchmarkDetailedTableProps (line 10) | interface BenchmarkDetailedTableProps { type SortField (line 16) | type SortField = type SortDirection (line 23) | type SortDirection = "asc" | "desc"; type SortIconProps (line 25) | interface SortIconProps { type MetricColumn (line 31) | interface MetricColumn { constant METRIC_COLUMNS (line 43) | const METRIC_COLUMNS: MetricColumn[] = [ constant HEADER_CLASS (line 101) | const HEADER_CLASS = constant CONTROL_SUBHEADER_CLASS (line 103) | const CONTROL_SUBHEADER_CLASS = constant TREATMENT_SUBHEADER_CLASS (line 105) | const TREATMENT_SUBHEADER_CLASS = FILE: packages/website/components/benchmarks/types.ts type BenchmarkResult (line 1) | interface BenchmarkResult { type TestCase (line 12) | interface TestCase { type GroupedResult (line 17) | interface GroupedResult { type Metric (line 22) | interface Metric { type ChangeInfo (line 30) | interface ChangeInfo { type Stats (line 35) | interface Stats { FILE: packages/website/components/blocks/grep-search-group.tsx type ExploredHeaderProps (line 8) | interface ExploredHeaderProps { type GrepSearchGroupProps (line 31) | interface GrepSearchGroupProps { FILE: packages/website/components/blocks/grep-tool-call-block.tsx type GrepToolCallBlockProps (line 4) | interface GrepToolCallBlockProps { FILE: packages/website/components/blocks/message-block.tsx type MessageBlockProps (line 7) | interface MessageBlockProps { FILE: packages/website/components/blocks/read-tool-call-block.tsx type ReadToolCallBlockProps (line 6) | interface ReadToolCallBlockProps { FILE: packages/website/components/blocks/streaming-text.tsx type StreamChunk (line 6) | interface StreamChunk { type FadeInProps (line 11) | interface FadeInProps { type StreamingChunksProps (line 40) | interface StreamingChunksProps { type StreamingTextProps (line 67) | interface StreamingTextProps { FILE: packages/website/components/blocks/thought-block.tsx type ThoughtBlockProps (line 9) | interface ThoughtBlockProps { FILE: packages/website/components/blog-article-layout.tsx type TocHeading (line 9) | interface TocHeading { type Author (line 15) | interface Author { type BlogArticleLayoutProps (line 20) | interface BlogArticleLayoutProps { FILE: packages/website/components/grab-element-button.tsx type RecordedHotkey (line 21) | interface RecordedHotkey { type SelectedElementInfo (line 29) | interface SelectedElementInfo { type GrabElementButtonProps (line 40) | interface GrabElementButtonProps { constant EMPTY_MODIFIERS (line 46) | const EMPTY_MODIFIERS: Readonly> = { type ReactGrabModule (line 53) | type ReactGrabModule = typeof import("react-grab"); type KbdProps (line 88) | interface KbdProps { FILE: packages/website/components/homepage-demo.tsx constant GREP_SEARCHES (line 50) | const GREP_SEARCHES = ["submit", "button", 'type="submit"']; constant FALLBACK_ELEMENT (line 52) | const FALLBACK_ELEMENT = { constant PATH_START_MARKERS (line 58) | const PATH_START_MARKERS = ["src", "components", "app", "pages"]; type BlockConfig (line 60) | interface BlockConfig { type AgentEntry (line 108) | interface AgentEntry { constant AGENTS (line 113) | const AGENTS: AgentEntry[] = [ type ElementAnalysisContentProps (line 184) | interface ElementAnalysisContentProps { type ElementSelectContentProps (line 247) | interface ElementSelectContentProps { constant BLOCK_CONFIGS (line 297) | const BLOCK_CONFIGS: BlockConfig[] = [ type RenderBlockProps (line 403) | interface RenderBlockProps { constant GREP_INDEX (line 432) | const GREP_INDEX = BLOCK_CONFIGS.findIndex((c) => c.role === "grep"); constant GREP_ERROR_INDEX (line 433) | const GREP_ERROR_INDEX = BLOCK_CONFIGS.findIndex((c) => c.role === "grep... FILE: packages/website/components/hotkey-context.tsx type HotkeyContextValue (line 12) | interface HotkeyContextValue { type HotkeyProviderProps (line 19) | interface HotkeyProviderProps { FILE: packages/website/components/icons/icon-claude.tsx type IconClaudeProps (line 1) | interface IconClaudeProps { FILE: packages/website/components/icons/icon-codex.tsx type IconCodexProps (line 1) | interface IconCodexProps { FILE: packages/website/components/icons/icon-copilot.tsx type IconCopilotProps (line 1) | interface IconCopilotProps { FILE: packages/website/components/icons/icon-cursor.tsx type IconCursorProps (line 1) | interface IconCursorProps { FILE: packages/website/components/icons/icon-droid.tsx type IconDroidProps (line 1) | interface IconDroidProps { FILE: packages/website/components/icons/icon-github.tsx type IconGithubProps (line 1) | interface IconGithubProps { FILE: packages/website/components/icons/icon-nextjs.tsx type IconNextjsProps (line 1) | interface IconNextjsProps { FILE: packages/website/components/icons/icon-opencode.tsx type IconOpenCodeProps (line 1) | interface IconOpenCodeProps { FILE: packages/website/components/icons/icon-tanstack.tsx type IconTanstackProps (line 1) | interface IconTanstackProps { FILE: packages/website/components/icons/icon-vite.tsx type IconViteProps (line 1) | interface IconViteProps { FILE: packages/website/components/icons/icon-vscode.tsx type IconVSCodeProps (line 1) | interface IconVSCodeProps { FILE: packages/website/components/icons/icon-webstorm.tsx type IconWebStormProps (line 1) | interface IconWebStormProps { FILE: packages/website/components/icons/icon-zed.tsx type IconZedProps (line 1) | interface IconZedProps { FILE: packages/website/components/install-tabs.tsx type InlineCodeProps (line 26) | interface InlineCodeProps { type InstallTab (line 38) | interface InstallTab { constant HEADING_TEXT_BY_VARIANT (line 242) | const HEADING_TEXT_BY_VARIANT: Record = { type InstallTabsProps (line 248) | interface InstallTabsProps { FILE: packages/website/components/mobile-demo-animation.tsx type Position (line 27) | interface Position { type BoxState (line 34) | interface BoxState extends Position { constant HIDDEN_BOX (line 38) | const HIDDEN_BOX: BoxState = { type LabelState (line 46) | interface LabelState { constant HIDDEN_LABEL (line 54) | const HIDDEN_LABEL: LabelState = { type LabelMode (line 62) | type LabelMode = type CursorType (line 70) | type CursorType = "default" | "crosshair" | "grabbing"; type HitElement (line 72) | interface HitElement { constant METRIC_CARD_NAMES (line 78) | const METRIC_CARD_NAMES = ["RevenueCard", "UsersCard", "OrdersCard"]; constant ACTIVITY_DATA (line 80) | const ACTIVITY_DATA = [ constant INITIAL_CURSOR_POSITION (line 94) | const INITIAL_CURSOR_POSITION = { x: 150, y: 80 }; FILE: packages/website/components/react-grab-logo.tsx constant BASE_ANIMATION_DURATION_MS (line 5) | const BASE_ANIMATION_DURATION_MS = 400; constant SPEED_INCREMENT (line 6) | const SPEED_INCREMENT = 0.5; type ReactGrabLogoProps (line 8) | interface ReactGrabLogoProps { FILE: packages/website/components/table-of-contents.tsx type TocHeading (line 5) | interface TocHeading { type TableOfContentsProps (line 11) | interface TableOfContentsProps { FILE: packages/website/components/ui/button.tsx function Button (line 45) | function Button({ FILE: packages/website/components/ui/collapsible.tsx type CollapsibleProps (line 7) | interface CollapsibleProps { FILE: packages/website/components/ui/data-table-card.tsx type DataTableCardProps (line 3) | interface DataTableCardProps { FILE: packages/website/components/ui/scrollable.tsx type ScrollableProps (line 5) | interface ScrollableProps { FILE: packages/website/components/user-message.tsx type UserMessageProps (line 7) | interface UserMessageProps { FILE: packages/website/constants.ts constant INITIAL_STREAM_DELAY_MS (line 1) | const INITIAL_STREAM_DELAY_MS = 100; constant BLOCK_TRANSITION_DELAY_MS (line 2) | const BLOCK_TRANSITION_DELAY_MS = 50; constant DEFAULT_CHUNK_SIZE (line 3) | const DEFAULT_CHUNK_SIZE = 4; constant IMMEDIATE_TIMEOUT_MS (line 4) | const IMMEDIATE_TIMEOUT_MS = 0; constant STREAM_DEMO_CHUNK_DELAY_MS (line 5) | const STREAM_DEMO_CHUNK_DELAY_MS = 20; constant STREAM_DEMO_BLOCK_DELAY_MS (line 6) | const STREAM_DEMO_BLOCK_DELAY_MS = 400; constant STREAM_DEMO_PRELOAD_ANIMATION_DELAY_MULTIPLIER (line 7) | const STREAM_DEMO_PRELOAD_ANIMATION_DELAY_MULTIPLIER = 0.03; constant GREP_SEARCH_DELAY_MS (line 8) | const GREP_SEARCH_DELAY_MS = 400; constant BENCHMARK_GRID_INTERVAL_SECONDS (line 10) | const BENCHMARK_GRID_INTERVAL_SECONDS = 5; constant BENCHMARK_CHART_HEIGHT_PX (line 11) | const BENCHMARK_CHART_HEIGHT_PX = 320; constant BENCHMARK_BAR_SIZE_PX (line 12) | const BENCHMARK_BAR_SIZE_PX = 40; constant BENCHMARK_BAR_GAP_PX (line 13) | const BENCHMARK_BAR_GAP_PX = 12; constant BENCHMARK_ANIMATION_DURATION_MS (line 14) | const BENCHMARK_ANIMATION_DURATION_MS = 1000; constant BENCHMARK_CONTROL_COLOR (line 15) | const BENCHMARK_CONTROL_COLOR = "#525252"; constant BENCHMARK_TREATMENT_COLOR (line 16) | const BENCHMARK_TREATMENT_COLOR = "#ff4fff"; constant BENCHMARK_LIVE_COUNTER_INTERVAL_MS (line 17) | const BENCHMARK_LIVE_COUNTER_INTERVAL_MS = 50; constant BENCHMARK_TOOLTIP_CONTROL_SECONDS (line 18) | const BENCHMARK_TOOLTIP_CONTROL_SECONDS = 16.8; constant BENCHMARK_TOOLTIP_TREATMENT_SECONDS (line 19) | const BENCHMARK_TOOLTIP_TREATMENT_SECONDS = 5.8; constant BENCHMARK_TOOLTIP_MAX_SECONDS (line 20) | const BENCHMARK_TOOLTIP_MAX_SECONDS = 20; constant BENCHMARK_TOOLTIP_SPEEDUP_FACTOR (line 21) | const BENCHMARK_TOOLTIP_SPEEDUP_FACTOR = "3"; constant CLICK_FEEDBACK_DURATION_MS (line 23) | const CLICK_FEEDBACK_DURATION_MS = 300; constant COPY_FEEDBACK_DURATION_MS (line 24) | const COPY_FEEDBACK_DURATION_MS = 1200; constant TOOLTIP_HOVER_DELAY_MS (line 25) | const TOOLTIP_HOVER_DELAY_MS = 150; constant HOTKEY_KEYUP_DELAY_MS (line 26) | const HOTKEY_KEYUP_DELAY_MS = 150; constant CODE_BLOCK_COLLAPSE_LINE_THRESHOLD (line 27) | const CODE_BLOCK_COLLAPSE_LINE_THRESHOLD = 15; constant CODE_BLOCK_MAX_HEIGHT_PX (line 28) | const CODE_BLOCK_MAX_HEIGHT_PX = 400; constant PROMPT_INSTALL_COLLAPSE_LINE_THRESHOLD (line 29) | const PROMPT_INSTALL_COLLAPSE_LINE_THRESHOLD = 12; constant PROMPT_INSTALL_MAX_HEIGHT_PX (line 30) | const PROMPT_INSTALL_MAX_HEIGHT_PX = 260; constant TIMER_UPDATE_INTERVAL_MS (line 31) | const TIMER_UPDATE_INTERVAL_MS = 100; constant AGENT_CYCLE_INTERVAL_MS (line 32) | const AGENT_CYCLE_INTERVAL_MS = 3000; constant VIBRATION_DURATION_MS (line 34) | const VIBRATION_DURATION_MS = 100; constant TAP_FEEDBACK_DISPLAY_MS (line 35) | const TAP_FEEDBACK_DISPLAY_MS = 800; constant TAP_FEEDBACK_FADE_MS (line 36) | const TAP_FEEDBACK_FADE_MS = 300; constant LABEL_OFFSET_BELOW_PX (line 37) | const LABEL_OFFSET_BELOW_PX = 10; constant ANIMATION_RESTART_DELAY_MS (line 38) | const ANIMATION_RESTART_DELAY_MS = 200; constant SELECTION_PADDING_PX (line 39) | const SELECTION_PADDING_PX = 4; constant CURSOR_OFFSET_PX (line 40) | const CURSOR_OFFSET_PX = 16; constant HINT_OVERLAY_DELAY_MS (line 41) | const HINT_OVERLAY_DELAY_MS = 3000; constant IDLE_RESTART_DELAY_MS (line 42) | const IDLE_RESTART_DELAY_MS = 5000; FILE: packages/website/hooks/use-stream.ts type BlockContent (line 11) | type BlockContent = string | ReactNode | Array; type StreamStatus (line 23) | type StreamStatus = "pending" | "streaming" | "complete"; type StreamBlock (line 25) | interface StreamBlock { type StreamChunk (line 39) | interface StreamChunk { type StreamRenderedBlock (line 44) | interface StreamRenderedBlock { type UseStreamOptions (line 62) | interface UseStreamOptions { type StreamState (line 72) | interface StreamState { type UseStreamReturn (line 81) | interface UseStreamReturn extends StreamState { FILE: packages/website/instrumentation-client.ts type Window (line 4) | interface Window { FILE: packages/website/lib/api-helpers.ts type HttpMethod (line 1) | type HttpMethod = "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | "OPTIONS"; type CorsHeadersOptions (line 3) | interface CorsHeadersOptions { FILE: packages/website/lib/shiki.ts constant SHIKI_COLOR_OVERRIDES (line 7) | const SHIKI_COLOR_OVERRIDES: Record = { constant LINE_SPAN_REGEX (line 12) | const LINE_SPAN_REGEX = //g; type HighlightCodeOptions (line 79) | interface HighlightCodeOptions { FILE: packages/website/utils/get-key-from-code.ts constant SPECIAL_KEY_SYMBOLS (line 1) | const SPECIAL_KEY_SYMBOLS: Record = { FILE: packages/website/utils/parse-changelog.ts type ChangelogEntry (line 1) | interface ChangelogEntry {