-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathInput.js
More file actions
68 lines (67 loc) · 2.15 KB
/
Copy pathInput.js
File metadata and controls
68 lines (67 loc) · 2.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import React from 'react';
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
/**
* Input — single-line text field with optional mono label.
*/
function Input({
label,
hint,
error,
value,
placeholder,
type = 'text',
disabled = false,
onChange,
style,
...rest
}) {
const [focused, setFocused] = React.useState(false);
const borderColor = error ? 'var(--danger)' : focused ? 'var(--ink-900)' : 'var(--border-hairline)';
return /*#__PURE__*/React.createElement("label", {
style: {
display: 'flex',
flexDirection: 'column',
gap: 6,
...style
}
}, label && /*#__PURE__*/React.createElement("span", {
style: {
fontFamily: 'var(--font-mono)',
fontSize: 11,
fontWeight: 500,
letterSpacing: 'var(--tracking-wide)',
textTransform: 'uppercase',
color: 'var(--text-muted)'
}
}, label), /*#__PURE__*/React.createElement("input", _extends({
type: type,
value: value,
placeholder: placeholder,
disabled: disabled,
onChange: onChange,
onFocus: () => setFocused(true),
onBlur: () => setFocused(false),
style: {
height: 40,
padding: '0 12px',
fontFamily: 'var(--font-sans)',
fontSize: 14,
letterSpacing: 'var(--tracking-tight)',
color: 'var(--text-strong)',
background: disabled ? 'var(--stone-bg)' : 'var(--surface-card)',
border: `1px solid ${borderColor}`,
borderRadius: 'var(--radius)',
outline: 'none',
opacity: disabled ? 0.6 : 1,
transition: 'border-color var(--dur) var(--ease)'
}
}, rest)), (hint || error) && /*#__PURE__*/React.createElement("span", {
style: {
fontSize: 12,
letterSpacing: 'var(--tracking-tight)',
color: error ? 'var(--danger)' : 'var(--text-muted)'
}
}, error || hint));
}
export default Input;
})(); } catch (e) { __ds_ns.__errors.push({ path: "components/forms/Input.jsx", error: String((e && e.message) || e) }); }