File tree Expand file tree Collapse file tree 2 files changed +51
-0
lines changed
m3-react/src/components/text-field Expand file tree Collapse file tree 2 files changed +51
-0
lines changed Original file line number Diff line number Diff line change 1+ import React , { HTMLAttributes } from 'react'
2+
3+ import makeId from '@/utils/id'
4+ import { toClassName } from '@/utils/styling'
5+
6+ export interface M3TextFieldProps extends HTMLAttributes < HTMLElement > {
7+ id : string ;
8+ type : string ;
9+ value : string | number ;
10+ label : string ;
11+ placeholder : string ;
12+ lazy : boolean ;
13+ multiline : boolean ;
14+ invalid : boolean ;
15+ disabled : boolean ;
16+ readonly : boolean ;
17+ outlined : boolean ;
18+ }
19+
20+ const M3TextField : React . FC < M3TextFieldProps > = ( {
21+ id = makeId ( 'm3-text-field' ) ,
22+ type = 'text' ,
23+ value = '' ,
24+ label = '' ,
25+ placeholder = '' ,
26+ lazy = false ,
27+ multiline = false ,
28+ invalid = false ,
29+ disabled = false ,
30+ readonly = false ,
31+ outlined = false ,
32+ className = '' ,
33+ } ) => (
34+ < div
35+ className = { toClassName ( [ className , {
36+ 'm3-text-field' : true ,
37+ 'm3-text-field_outlined' : outlined ,
38+ // 'm3-text-field_has-leading': 'leading-icon' in $slots,
39+ // 'm3-text-field_has-trailing': 'trailing-icon' in $slots,
40+ // 'm3-text-field_filled': ('' + value).length,
41+ // 'm3-text-field_focused': focused,
42+ 'm3-text-field_invalid' : invalid ,
43+ 'm3-text-field_disabled' : disabled ,
44+ 'm3-text-field_readonly' : readonly ,
45+ } ] ) }
46+ >
47+
48+ </ div >
49+ )
50+
51+ export default M3TextField
You can’t perform that action at this time.
0 commit comments