d15a13e485
- Delete all ops page components (ReviewQueue, AIMonitoring, Governance, SourceMonitoring, ActivityTimeline, SignalPipeline) - Remove OPERATIONS workspace from AppShell config, nav order, path detection - Remove all /ops/* routes from App.tsx - Remove WorkspaceType.OPERATIONS from allowedWorkspaces in authService, sessionStore, permissions - Keep MarketIntelligence page (already moved to /supply/market-intelligence) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
53 lines
990 B
TypeScript
53 lines
990 B
TypeScript
import { TextField } from '@mui/material'
|
|
import type { SxProps, Theme } from '@mui/material'
|
|
|
|
interface TextInputProps {
|
|
label: string
|
|
value: string
|
|
onChange: (value: string) => void
|
|
error?: string
|
|
helperText?: string
|
|
placeholder?: string
|
|
required?: boolean
|
|
disabled?: boolean
|
|
multiline?: boolean
|
|
rows?: number
|
|
size?: 'small' | 'medium'
|
|
fullWidth?: boolean
|
|
sx?: SxProps<Theme>
|
|
}
|
|
|
|
export function TextInput({
|
|
label,
|
|
value,
|
|
onChange,
|
|
error,
|
|
helperText,
|
|
placeholder,
|
|
required,
|
|
disabled,
|
|
multiline,
|
|
rows,
|
|
size = 'small',
|
|
fullWidth = true,
|
|
sx,
|
|
}: TextInputProps) {
|
|
return (
|
|
<TextField
|
|
label={label}
|
|
value={value}
|
|
onChange={e => onChange(e.target.value)}
|
|
error={!!error}
|
|
helperText={error ?? helperText}
|
|
placeholder={placeholder}
|
|
required={required}
|
|
disabled={disabled}
|
|
multiline={multiline}
|
|
rows={rows}
|
|
size={size}
|
|
fullWidth={fullWidth}
|
|
sx={sx}
|
|
/>
|
|
)
|
|
}
|