panelui-native 0.35.2 → 0.38.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -1
- package/lib/module/components/combobox/index.js +718 -0
- package/lib/module/components/combobox/index.js.map +1 -0
- package/lib/module/components/form/use-field.js +18 -0
- package/lib/module/components/form/use-field.js.map +1 -1
- package/lib/module/components/form/use-form.js +91 -8
- package/lib/module/components/form/use-form.js.map +1 -1
- package/lib/module/components/input/index.js +142 -32
- package/lib/module/components/input/index.js.map +1 -1
- package/lib/module/components/otp-input/index.js +4 -1
- package/lib/module/components/otp-input/index.js.map +1 -1
- package/lib/module/components/panelside/index.js +1 -1
- package/lib/module/components/panelside/index.js.map +1 -1
- package/lib/module/components/select/index.js +116 -15
- package/lib/module/components/select/index.js.map +1 -1
- package/lib/module/components/textarea/index.js +3 -1
- package/lib/module/components/textarea/index.js.map +1 -1
- package/lib/module/components/time-picker/index.js +801 -0
- package/lib/module/components/time-picker/index.js.map +1 -0
- package/lib/module/icons/index.js +59 -0
- package/lib/module/icons/index.js.map +1 -1
- package/lib/module/index.js +4 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/theme/use-theme.js +1 -1
- package/lib/module/utils/time.js +180 -0
- package/lib/module/utils/time.js.map +1 -0
- package/lib/typescript/src/components/combobox/index.d.ts +164 -0
- package/lib/typescript/src/components/combobox/index.d.ts.map +1 -0
- package/lib/typescript/src/components/form/use-field.d.ts.map +1 -1
- package/lib/typescript/src/components/form/use-form.d.ts.map +1 -1
- package/lib/typescript/src/components/input/index.d.ts +106 -0
- package/lib/typescript/src/components/input/index.d.ts.map +1 -1
- package/lib/typescript/src/components/otp-input/index.d.ts.map +1 -1
- package/lib/typescript/src/components/select/index.d.ts +32 -0
- package/lib/typescript/src/components/select/index.d.ts.map +1 -1
- package/lib/typescript/src/components/textarea/index.d.ts.map +1 -1
- package/lib/typescript/src/components/time-picker/index.d.ts +104 -0
- package/lib/typescript/src/components/time-picker/index.d.ts.map +1 -0
- package/lib/typescript/src/icons/index.d.ts +4 -0
- package/lib/typescript/src/icons/index.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +5 -2
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/theme/use-theme.d.ts +1 -1
- package/lib/typescript/src/utils/time.d.ts +88 -0
- package/lib/typescript/src/utils/time.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/components/combobox/index.tsx +927 -0
- package/src/components/form/use-field.ts +23 -0
- package/src/components/form/use-form.ts +106 -16
- package/src/components/input/index.tsx +185 -29
- package/src/components/otp-input/index.tsx +4 -1
- package/src/components/panelside/index.tsx +1 -1
- package/src/components/select/index.tsx +114 -15
- package/src/components/textarea/index.tsx +3 -1
- package/src/components/time-picker/index.tsx +971 -0
- package/src/icons/index.tsx +47 -0
- package/src/index.ts +35 -0
- package/src/theme/use-theme.ts +1 -1
- package/src/utils/time.ts +192 -0
- package/theme.css +32 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Children","cloneElement","createContext","isValidElement","useCallback","useContext","useEffect","useMemo","useRef","useState","Pressable","ScrollView","TextInput","useWindowDimensions","View","Animated","FadeIn","FadeOut","interpolateColor","useAnimatedStyle","useSharedValue","withTiming","tv","useCSSVariable","CheckIcon","ChevronDownIcon","XIcon","Portal","Text","textChildren","useBackHandler","useKeyboard","cn","Chip","Spinner","jsx","_jsx","jsxs","_jsxs","FOCUS_DURATION","comboboxVariants","slots","root","field","fieldContent","input","action","list","item","itemLabel","itemIndicator","group","groupLabel","status","variants","selected","true","disabled","itemDisabled","presentation","overlay","inline","defaultVariants","ComboboxContext","ComboboxItem","value","label","start","description","context","Error","values","includes","checkColor","accessibilityRole","accessibilityState","onPress","onSelect","className","children","size","muted","numberOfLines","color","ComboboxGroup","labelClassName","weight","eachOption","visit","forEach","child","type","props","filterOptions","matches","kept","inner","length","push","ComboboxRoot","mode","defaultValue","onValueChange","inputValue","defaultInputValue","onInputValueChange","placeholder","filter","allowCustomValue","loading","emptyMessage","loadingMessage","clearable","openOnFocus","onOpenChange","contentWidth","offset","listClassName","accessibilityLabel","multiple","open","setOpen","focused","setFocused","anchor","setAnchor","listHeight","setListHeight","fieldRef","inputRef","height","screenHeight","keyboardHeight","internalValue","setInternalValue","undefined","selection","internalQuery","setInternalQuery","query","Array","isArray","options","collected","option","labelOf","candidate","find","setQuery","next","commit","setOpenState","current","openList","measureInWindow","x","y","width","close","singleValue","matcher","needle","trim","toLowerCase","filtered","exactMatch","some","select","without","entry","updated","blur","submit","typed","match","remove","target","clear","focus","mutedColor","restColor","focusColor","placeholderColor","duration","fieldStyle","idle","active","borderColor","chevron","chevronStyle","transform","rotate","hasContent","shown","isEmpty","body","bounces","showsVerticalScrollIndicator","keyboardShouldPersistTaps","keyboardDismissMode","style","expanded","map","onClose","closeLabel","ref","onChangeText","onFocus","onBlur","onSubmitEditing","onKeyPress","nativeEvent","key","editable","placeholderTextColor","autoCapitalize","autoCorrect","autoComplete","returnKeyType","submitBehavior","Provider","entering","exiting","viewportBottom","spaceBelow","flip","overlayPosition","position","left","bottom","top","minWidth","maxHeight","Math","max","accessible","importantForAccessibility","accessibilityElementsHidden","right","onLayout","event","layout","accessibilityViewIsModal","displayName","Combobox","Object","assign","Item","Group"],"sourceRoot":"../../../../src","sources":["components/combobox/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -28,6 +28,24 @@ export function useField(form, name, {
|
|
|
28
28
|
return () => registerValidator(name, undefined);
|
|
29
29
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
30
30
|
}, [registerValidator, name, !!validate]);
|
|
31
|
+
|
|
32
|
+
/*
|
|
33
|
+
* A name the form never declared is the one mistake this hook cannot
|
|
34
|
+
* recover from: there is no value to hand a validator, so a rule as ordinary
|
|
35
|
+
* as `value.length > 0` throws on a field that was only blurred, and nothing
|
|
36
|
+
* the user types is ever submitted. Both failures point away from the cause,
|
|
37
|
+
* so it is named here instead. Development only — the check costs a key
|
|
38
|
+
* lookup, but the message is for whoever is writing the form.
|
|
39
|
+
*/
|
|
40
|
+
const formValues = form.values;
|
|
41
|
+
useEffect(() => {
|
|
42
|
+
if (process.env.NODE_ENV === 'production') return;
|
|
43
|
+
if (name in formValues) return;
|
|
44
|
+
console.warn(`[PanelUI] Form field "${String(name)}" is not declared in the form's ` + `defaultValues, so its value is undefined and it will not be submitted. ` + `Add "${String(name)}" to defaultValues — an empty field is still a ` + `declared one ("" for text, false for a toggle).`);
|
|
45
|
+
// The declared names come from `defaultValues`, which is read once, so
|
|
46
|
+
// this is a question about the name and nothing else.
|
|
47
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
48
|
+
}, [name]);
|
|
31
49
|
const {
|
|
32
50
|
value,
|
|
33
51
|
error,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useRef","useField","form","name","validate","validateOn","validateRef","current","registerValidator","value","values","undefined","error","touched","getFieldState","onChange","next","setFieldValue","validateField","onBlur","setFieldTouched"],"sourceRoot":"../../../../src","sources":["components/form/use-field.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAkBzC,OAAO,SAASC,QAAQA,CACtBC,IAAgB,EAChBC,IAAO,EACP;EAAEC,QAAQ;EAAEC,UAAU,GAAG;AAA8B,CAAC,GAAG,CAAC,CAAC,EACjC;EAC5B;EACA;EACA;EACA,MAAMC,WAAW,GAAGN,MAAM,CAACI,QAAQ,CAAC;EACpCE,WAAW,CAACC,OAAO,GAAGH,QAAQ;EAE9B,MAAM;IAAEI;EAAkB,CAAC,GAAGN,IAAI;EAClCH,SAAS,CAAC,MAAM;IACdS,iBAAiB,CACfL,IAAI,EACJC,QAAQ,GAAG,CAACK,KAAK,EAAEC,MAAM,KAAKJ,WAAW,CAACC,OAAO,CAAEE,KAAK,EAAEC,MAAM,CAAC,GAAGC,SACtE,CAAC;IACD,OAAO,MAAMH,iBAAiB,CAACL,IAAI,EAAEQ,SAAS,CAAC;IAC/C;EACF,CAAC,EAAE,CAACH,iBAAiB,EAAEL,IAAI,EAAE,CAAC,CAACC,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"names":["useEffect","useRef","useField","form","name","validate","validateOn","validateRef","current","registerValidator","value","values","undefined","formValues","process","env","NODE_ENV","console","warn","String","error","touched","getFieldState","onChange","next","setFieldValue","validateField","onBlur","setFieldTouched"],"sourceRoot":"../../../../src","sources":["components/form/use-field.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAkBzC,OAAO,SAASC,QAAQA,CACtBC,IAAgB,EAChBC,IAAO,EACP;EAAEC,QAAQ;EAAEC,UAAU,GAAG;AAA8B,CAAC,GAAG,CAAC,CAAC,EACjC;EAC5B;EACA;EACA;EACA,MAAMC,WAAW,GAAGN,MAAM,CAACI,QAAQ,CAAC;EACpCE,WAAW,CAACC,OAAO,GAAGH,QAAQ;EAE9B,MAAM;IAAEI;EAAkB,CAAC,GAAGN,IAAI;EAClCH,SAAS,CAAC,MAAM;IACdS,iBAAiB,CACfL,IAAI,EACJC,QAAQ,GAAG,CAACK,KAAK,EAAEC,MAAM,KAAKJ,WAAW,CAACC,OAAO,CAAEE,KAAK,EAAEC,MAAM,CAAC,GAAGC,SACtE,CAAC;IACD,OAAO,MAAMH,iBAAiB,CAACL,IAAI,EAAEQ,SAAS,CAAC;IAC/C;EACF,CAAC,EAAE,CAACH,iBAAiB,EAAEL,IAAI,EAAE,CAAC,CAACC,QAAQ,CAAC,CAAC;;EAEzC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAMQ,UAAU,GAAGV,IAAI,CAACQ,MAAM;EAC9BX,SAAS,CAAC,MAAM;IACd,IAAIc,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;IAC3C,IAAIZ,IAAI,IAAIS,UAAU,EAAE;IACxBI,OAAO,CAACC,IAAI,CACV,yBAAyBC,MAAM,CAACf,IAAI,CAAC,kCAAkC,GACrE,yEAAyE,GACzE,QAAQe,MAAM,CAACf,IAAI,CAAC,iDAAiD,GACrE,iDACJ,CAAC;IACD;IACA;IACA;EACF,CAAC,EAAE,CAACA,IAAI,CAAC,CAAC;EAEV,MAAM;IAAEM,KAAK;IAAEU,KAAK;IAAEC;EAAQ,CAAC,GAAGlB,IAAI,CAACmB,aAAa,CAAClB,IAAI,CAAC;EAE1D,OAAO;IACLM,KAAK;IACLU,KAAK,EAAEC,OAAO,GAAGD,KAAK,GAAGR,SAAS;IAClCS,OAAO;IACPE,QAAQ,EAAGC,IAAU,IAAK;MACxBrB,IAAI,CAACsB,aAAa,CAACrB,IAAI,EAAEoB,IAAI,CAAC;MAC9B,IAAIlB,UAAU,KAAK,QAAQ,EAAEH,IAAI,CAACuB,aAAa,CAACtB,IAAI,CAAC;IACvD,CAAC;IACDuB,MAAM,EAAEA,CAAA,KAAM;MACZxB,IAAI,CAACyB,eAAe,CAACxB,IAAI,EAAE,IAAI,CAAC;MAChC,IAAIE,UAAU,KAAK,MAAM,EAAEH,IAAI,CAACuB,aAAa,CAACtB,IAAI,CAAC;IACrD;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -26,6 +26,12 @@
|
|
|
26
26
|
* `defaultValues` is read once, on the first render. If default values
|
|
27
27
|
* arrive asynchronously, mount the form once you have them (e.g. behind a
|
|
28
28
|
* loading check) rather than expecting the hook to pick up a later change.
|
|
29
|
+
*
|
|
30
|
+
* It also declares the fields. A field's `name` has to be a key of it —
|
|
31
|
+
* including the empty ones, as `''`, `false`, `null`. A name it does not
|
|
32
|
+
* declare has no value to give a validator and nothing to submit, so
|
|
33
|
+
* `useField` says so in development rather than letting the field quietly do
|
|
34
|
+
* nothing.
|
|
29
35
|
*/
|
|
30
36
|
import { useCallback, useMemo, useReducer, useRef } from 'react';
|
|
31
37
|
function reducer(state, action) {
|
|
@@ -98,6 +104,34 @@ function reducer(state, action) {
|
|
|
98
104
|
return state;
|
|
99
105
|
}
|
|
100
106
|
}
|
|
107
|
+
|
|
108
|
+
/** Stands in for the message a rule that crashed never got to return. */
|
|
109
|
+
const VALIDATOR_THREW = 'This field could not be validated.';
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Run one field's rule, and survive a rule that throws.
|
|
113
|
+
*
|
|
114
|
+
* A validator is caller code reached from a path nothing awaits — `onBlur`
|
|
115
|
+
* fires and forgets, and `handleSubmit` is wired straight to a press. A throw
|
|
116
|
+
* in there becomes an unhandled rejection: a red box whose message ("cannot
|
|
117
|
+
* read property 'length' of undefined") names neither the field nor the rule,
|
|
118
|
+
* and which takes the screen for one line of one validator.
|
|
119
|
+
*
|
|
120
|
+
* So it is caught, reported against the field by name, and counted as a
|
|
121
|
+
* failure. Counted, rather than waved through: a rule that crashed reached no
|
|
122
|
+
* verdict, and a form that submits past a rule that never ran is the worse of
|
|
123
|
+
* the two outcomes — it puts unchecked values somewhere they cannot be taken
|
|
124
|
+
* back from. The placeholder message is what stands between the two; the
|
|
125
|
+
* console entry beside it is for whoever can fix the rule.
|
|
126
|
+
*/
|
|
127
|
+
async function runValidator(name, validator, values) {
|
|
128
|
+
try {
|
|
129
|
+
return await validator(values[name], values);
|
|
130
|
+
} catch (error) {
|
|
131
|
+
console.error(`[PanelUI] The validator for form field "${String(name)}" threw, so the ` + `field is being treated as invalid.`, error);
|
|
132
|
+
return VALIDATOR_THREW;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
101
135
|
export function useForm({
|
|
102
136
|
defaultValues,
|
|
103
137
|
validate,
|
|
@@ -111,7 +145,25 @@ export function useForm({
|
|
|
111
145
|
touched: {},
|
|
112
146
|
isSubmitting: false
|
|
113
147
|
});
|
|
148
|
+
|
|
149
|
+
/*
|
|
150
|
+
* The values as of the last *change*, not as of the last render.
|
|
151
|
+
*
|
|
152
|
+
* Validation runs in the same tick as the edit that triggered it —
|
|
153
|
+
* `validateOn="change"` calls `validateField` immediately after
|
|
154
|
+
* `setFieldValue`, and submit runs from a press handler. React state is a
|
|
155
|
+
* render behind at that point, so a validator reading it would judge the
|
|
156
|
+
* character before the one just typed, and a submit fired straight after an
|
|
157
|
+
* edit would submit the value before it. The ref is written on the way into
|
|
158
|
+
* the dispatch so both see what the user actually entered.
|
|
159
|
+
*/
|
|
160
|
+
const valuesRef = useRef(state.values);
|
|
161
|
+
valuesRef.current = state.values;
|
|
114
162
|
const setFieldValue = useCallback((name, value) => {
|
|
163
|
+
valuesRef.current = {
|
|
164
|
+
...valuesRef.current,
|
|
165
|
+
[name]: value
|
|
166
|
+
};
|
|
115
167
|
dispatch({
|
|
116
168
|
type: 'SET_VALUE',
|
|
117
169
|
name,
|
|
@@ -147,26 +199,56 @@ export function useForm({
|
|
|
147
199
|
const validateField = useCallback(async name => {
|
|
148
200
|
const validator = validatorsRef.current[name];
|
|
149
201
|
if (!validator) return true;
|
|
150
|
-
const
|
|
202
|
+
const values = valuesRef.current;
|
|
203
|
+
const error = await runValidator(name, validator, values);
|
|
151
204
|
dispatch({
|
|
152
205
|
type: 'SET_ERROR',
|
|
153
206
|
name,
|
|
154
207
|
error
|
|
155
208
|
});
|
|
156
209
|
return !error;
|
|
157
|
-
}, [
|
|
210
|
+
}, []);
|
|
158
211
|
const handleSubmit = useCallback(async () => {
|
|
159
|
-
const
|
|
212
|
+
const values = valuesRef.current;
|
|
213
|
+
/*
|
|
214
|
+
* Every field the form knows of, which is not the same as every key of
|
|
215
|
+
* `defaultValues`: a field can register a validator under a name that was
|
|
216
|
+
* never declared there. Submitting only the declared ones meant such a
|
|
217
|
+
* field was never validated and never blocked anything, so a form of
|
|
218
|
+
* required-but-undeclared fields submitted itself while still empty.
|
|
219
|
+
*
|
|
220
|
+
* It is still a mistake to name a field that `defaultValues` does not
|
|
221
|
+
* declare — its value stays undefined and never reaches `onSubmit` —
|
|
222
|
+
* which is why `useField` says so. Validating it anyway is what turns
|
|
223
|
+
* that mistake into a visible error instead of a silent submit.
|
|
224
|
+
*/
|
|
225
|
+
const names = Array.from(new Set([...Object.keys(values), ...Object.keys(validatorsRef.current)]));
|
|
160
226
|
dispatch({
|
|
161
227
|
type: 'TOUCH_ALL',
|
|
162
228
|
names
|
|
163
229
|
});
|
|
164
230
|
const fieldErrorEntries = await Promise.all(names.map(async name => {
|
|
165
231
|
const validator = validatorsRef.current[name];
|
|
166
|
-
const error = validator ? await
|
|
232
|
+
const error = validator ? await runValidator(name, validator, values) : undefined;
|
|
167
233
|
return [name, error];
|
|
168
234
|
}));
|
|
169
|
-
|
|
235
|
+
|
|
236
|
+
/*
|
|
237
|
+
* Same reasoning as a field's rule, one level up: a cross-field check that
|
|
238
|
+
* throws must not take the screen, and must not let the submit through.
|
|
239
|
+
* It belongs to no single field, so it blocks without marking one — there
|
|
240
|
+
* is no field whose error line would be the honest place to put it.
|
|
241
|
+
*/
|
|
242
|
+
let formErrors = {};
|
|
243
|
+
let formValidateThrew = false;
|
|
244
|
+
if (validate) {
|
|
245
|
+
try {
|
|
246
|
+
formErrors = await validate(values);
|
|
247
|
+
} catch (error) {
|
|
248
|
+
console.error('[PanelUI] The form-level validate() threw, so the form is being ' + 'treated as invalid and the submit was not run.', error);
|
|
249
|
+
formValidateThrew = true;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
170
252
|
const cleared = Object.fromEntries(names.map(name => [name, undefined]));
|
|
171
253
|
const nextErrors = {
|
|
172
254
|
...cleared,
|
|
@@ -177,19 +259,20 @@ export function useForm({
|
|
|
177
259
|
type: 'SET_ERRORS',
|
|
178
260
|
errors: nextErrors
|
|
179
261
|
});
|
|
180
|
-
if (Object.values(nextErrors).some(Boolean)) return;
|
|
262
|
+
if (formValidateThrew || Object.values(nextErrors).some(Boolean)) return;
|
|
181
263
|
dispatch({
|
|
182
264
|
type: 'SUBMIT_START'
|
|
183
265
|
});
|
|
184
266
|
try {
|
|
185
|
-
await onSubmit(
|
|
267
|
+
await onSubmit(values);
|
|
186
268
|
} finally {
|
|
187
269
|
dispatch({
|
|
188
270
|
type: 'SUBMIT_END'
|
|
189
271
|
});
|
|
190
272
|
}
|
|
191
|
-
}, [
|
|
273
|
+
}, [validate, onSubmit]);
|
|
192
274
|
const reset = useCallback((values = defaultsRef.current) => {
|
|
275
|
+
valuesRef.current = values;
|
|
193
276
|
dispatch({
|
|
194
277
|
type: 'RESET',
|
|
195
278
|
values
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useMemo","useReducer","useRef","reducer","state","action","type","values","name","value","errors","undefined","touched","error","names","isSubmitting","useForm","defaultValues","validate","onSubmit","defaultsRef","validatorsRef","dispatch","setFieldValue","setFieldTouched","setFieldError","registerValidator","
|
|
1
|
+
{"version":3,"names":["useCallback","useMemo","useReducer","useRef","reducer","state","action","type","values","name","value","errors","undefined","touched","error","names","isSubmitting","VALIDATOR_THREW","runValidator","validator","console","String","useForm","defaultValues","validate","onSubmit","defaultsRef","validatorsRef","dispatch","valuesRef","current","setFieldValue","setFieldTouched","setFieldError","registerValidator","getFieldState","validateField","handleSubmit","Array","from","Set","Object","keys","fieldErrorEntries","Promise","all","map","formErrors","formValidateThrew","cleared","fromEntries","nextErrors","filter","some","Boolean","reset","isDirty","JSON","stringify","isValid","every"],"sourceRoot":"../../../../src","sources":["components/form/use-form.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -16,29 +16,64 @@
|
|
|
16
16
|
* ```tsx
|
|
17
17
|
* <Input label="Email" placeholder="you@example.com" />
|
|
18
18
|
* <Input variant="filled" size="lg" label="Name" isRequired />
|
|
19
|
+
* <Input label="Note" startContent={<PencilIcon size={18} />} />
|
|
19
20
|
* ```
|
|
20
21
|
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
22
|
+
* ## An icon inside the field, and why it lives here
|
|
23
|
+
*
|
|
24
|
+
* `startContent` and `endContent` are measured and turned into padding on the
|
|
25
|
+
* text, so a value never runs underneath them however wide they turn out to
|
|
26
|
+
* be. They are positioned against the *field box* rather than against the
|
|
27
|
+
* component, which is the whole reason they are a prop rather than something
|
|
28
|
+
* you compose: a label and a description are laid out above and below the
|
|
29
|
+
* field, so anything centred on the component as a whole drifts upward the
|
|
30
|
+
* moment a label is added.
|
|
31
|
+
*
|
|
32
|
+
* Both are pressable. A button dropped in there — a clear ✕, a show-password
|
|
33
|
+
* eye — gets its own touches, while the padding around it stays transparent so
|
|
34
|
+
* a tap that misses still lands on the field and puts the caret in it. An icon
|
|
35
|
+
* that is only decoration should say so with `interactiveContent={false}`,
|
|
36
|
+
* which gives the whole field back to the caret and takes the icon out of the
|
|
37
|
+
* accessibility tree.
|
|
38
|
+
*
|
|
39
|
+
* `InputGroup` is still the right answer for a decorator that is not part of
|
|
40
|
+
* the field — a button attached to its end, a select bolted to its start, an
|
|
41
|
+
* addon with its own background. It measures the same way; it just spans a
|
|
42
|
+
* different box.
|
|
23
43
|
*/
|
|
24
44
|
import { forwardRef, useCallback, useEffect, useState } from 'react';
|
|
25
45
|
import { TextInput, View } from 'react-native';
|
|
26
46
|
import Animated, { interpolateColor, useAnimatedStyle, useSharedValue, withTiming } from 'react-native-reanimated';
|
|
27
47
|
import { tv } from 'tailwind-variants';
|
|
28
48
|
import { useCSSVariable } from 'uniwind';
|
|
49
|
+
import { IconColorProvider } from "../../icons/index.js";
|
|
29
50
|
import { KeyboardAvoider } from "../../primitives/keyboard-avoider.js";
|
|
30
|
-
import { Text } from "../../primitives/text.js";
|
|
51
|
+
import { Text, textChildren } from "../../primitives/text.js";
|
|
31
52
|
import { Label } from "../label/index.js";
|
|
32
53
|
|
|
33
54
|
/** Long enough to read as a transition, short enough not to lag a fast tab. */
|
|
34
|
-
import { jsx as _jsx,
|
|
55
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
35
56
|
const FOCUS_DURATION = 150;
|
|
36
57
|
const inputVariants = tv({
|
|
37
58
|
slots: {
|
|
38
59
|
container: 'w-full gap-1.5',
|
|
39
|
-
|
|
60
|
+
/*
|
|
61
|
+
* `font-normal` on a field that is not bold: this is a TextInput, so it
|
|
62
|
+
* does not go through the Text primitive and inherits nothing. The class
|
|
63
|
+
* is what an app's `--font-normal` token attaches to, and without it a
|
|
64
|
+
* custom font would stop at the edge of every field in the library.
|
|
65
|
+
*/
|
|
66
|
+
field: 'w-full rounded-lg border font-normal text-foreground',
|
|
40
67
|
description: 'text-sm text-muted-foreground',
|
|
41
|
-
error: 'text-sm text-destructive'
|
|
68
|
+
error: 'text-sm text-destructive',
|
|
69
|
+
/*
|
|
70
|
+
* The box the content is positioned against, and the reason this works
|
|
71
|
+
* where wrapping the whole component does not: it is the field alone, so
|
|
72
|
+
* a label above it and a description below it cannot move what is inside.
|
|
73
|
+
*/
|
|
74
|
+
fieldBox: 'relative w-full',
|
|
75
|
+
startContent: 'absolute bottom-0 start-0 top-0 z-10 flex-row items-center justify-center gap-2',
|
|
76
|
+
endContent: 'absolute bottom-0 end-0 top-0 z-10 flex-row items-center justify-center gap-2'
|
|
42
77
|
},
|
|
43
78
|
variants: {
|
|
44
79
|
variant: {
|
|
@@ -60,14 +95,22 @@ const inputVariants = tv({
|
|
|
60
95
|
* below the middle of the box, a few pixels off whatever is beside them.
|
|
61
96
|
* A length sets the size alone and leaves the line box the font's own.
|
|
62
97
|
*/
|
|
98
|
+
// The content boxes take the field's own horizontal padding, so an icon
|
|
99
|
+
// sits at exactly the inset the text would have started at.
|
|
63
100
|
sm: {
|
|
64
|
-
field: 'h-10 px-3 text-[14px]'
|
|
101
|
+
field: 'h-10 px-3 text-[14px]',
|
|
102
|
+
startContent: 'px-3',
|
|
103
|
+
endContent: 'px-3'
|
|
65
104
|
},
|
|
66
105
|
md: {
|
|
67
|
-
field: 'h-12 px-3.5 text-[16px]'
|
|
106
|
+
field: 'h-12 px-3.5 text-[16px]',
|
|
107
|
+
startContent: 'px-3.5',
|
|
108
|
+
endContent: 'px-3.5'
|
|
68
109
|
},
|
|
69
110
|
lg: {
|
|
70
|
-
field: 'h-14 px-4 text-[16px]'
|
|
111
|
+
field: 'h-14 px-4 text-[16px]',
|
|
112
|
+
startContent: 'px-4',
|
|
113
|
+
endContent: 'px-4'
|
|
71
114
|
}
|
|
72
115
|
},
|
|
73
116
|
multiline: {
|
|
@@ -75,13 +118,21 @@ const inputVariants = tv({
|
|
|
75
118
|
// at the top rather than floating in the middle of an empty box — and
|
|
76
119
|
// once there are several lines the leading is wanted back, since here it
|
|
77
120
|
// separates the lines instead of pushing one off centre.
|
|
121
|
+
//
|
|
122
|
+
// The content follows the text to the top for the same reason: centred
|
|
123
|
+
// in a box that grows, an icon slides further from the line it belongs
|
|
124
|
+
// to with every line typed.
|
|
78
125
|
true: {
|
|
79
|
-
field: 'h-auto min-h-24 py-3 leading-normal'
|
|
126
|
+
field: 'h-auto min-h-24 py-3 leading-normal',
|
|
127
|
+
startContent: 'bottom-auto py-3',
|
|
128
|
+
endContent: 'bottom-auto py-3'
|
|
80
129
|
}
|
|
81
130
|
},
|
|
82
131
|
disabled: {
|
|
83
132
|
true: {
|
|
84
|
-
field: 'opacity-[0.64]'
|
|
133
|
+
field: 'opacity-[0.64]',
|
|
134
|
+
startContent: 'opacity-[0.64]',
|
|
135
|
+
endContent: 'opacity-[0.64]'
|
|
85
136
|
}
|
|
86
137
|
}
|
|
87
138
|
},
|
|
@@ -99,6 +150,9 @@ export const Input = /*#__PURE__*/forwardRef(({
|
|
|
99
150
|
errorMessage,
|
|
100
151
|
isRequired,
|
|
101
152
|
disabled,
|
|
153
|
+
startContent,
|
|
154
|
+
endContent,
|
|
155
|
+
interactiveContent = true,
|
|
102
156
|
variant,
|
|
103
157
|
size,
|
|
104
158
|
avoidKeyboard = false,
|
|
@@ -112,6 +166,10 @@ export const Input = /*#__PURE__*/forwardRef(({
|
|
|
112
166
|
}, ref) => {
|
|
113
167
|
const [focused, setFocused] = useState(false);
|
|
114
168
|
const invalid = !!errorMessage;
|
|
169
|
+
// Measured so the text can be padded clear of the content, whatever it
|
|
170
|
+
// turns out to be — an icon, a unit, a two-word label.
|
|
171
|
+
const [startWidth, setStartWidth] = useState(0);
|
|
172
|
+
const [endWidth, setEndWidth] = useState(0);
|
|
115
173
|
const placeholderColor = useCSSVariable('--color-muted-foreground');
|
|
116
174
|
const restColor = useCSSVariable('--color-input');
|
|
117
175
|
const focusColor = useCSSVariable('--color-ring');
|
|
@@ -151,33 +209,85 @@ export const Input = /*#__PURE__*/forwardRef(({
|
|
|
151
209
|
setFocused(false);
|
|
152
210
|
onBlur?.(event);
|
|
153
211
|
}, [onBlur]);
|
|
212
|
+
const handleStartLayout = useCallback(event => {
|
|
213
|
+
setStartWidth(event.nativeEvent.layout.width);
|
|
214
|
+
}, []);
|
|
215
|
+
const handleEndLayout = useCallback(event => {
|
|
216
|
+
setEndWidth(event.nativeEvent.layout.width);
|
|
217
|
+
}, []);
|
|
218
|
+
|
|
219
|
+
/*
|
|
220
|
+
* The content is quieter than the value. An icon at the same weight as the
|
|
221
|
+
* text reads as part of what was typed, and the placeholder colour is
|
|
222
|
+
* already the field's own word for "not the value".
|
|
223
|
+
*/
|
|
224
|
+
const iconColor = typeof placeholderColor === 'string' ? placeholderColor : undefined;
|
|
225
|
+
const field = /*#__PURE__*/_jsx(AnimatedTextInput, {
|
|
226
|
+
ref: ref,
|
|
227
|
+
editable: !disabled,
|
|
228
|
+
onFocus: handleFocus,
|
|
229
|
+
onBlur: handleBlur,
|
|
230
|
+
accessibilityLabel: label,
|
|
231
|
+
accessibilityState: {
|
|
232
|
+
disabled: !!disabled
|
|
233
|
+
},
|
|
234
|
+
"aria-required": isRequired,
|
|
235
|
+
"aria-invalid": invalid,
|
|
236
|
+
className: slots.field({
|
|
237
|
+
className
|
|
238
|
+
}),
|
|
239
|
+
style: [borderStyle,
|
|
240
|
+
// Only the side that has content, and only once it has been
|
|
241
|
+
// measured — a 0 here would wipe out the field's own padding.
|
|
242
|
+
startWidth ? {
|
|
243
|
+
paddingStart: startWidth
|
|
244
|
+
} : null, endWidth ? {
|
|
245
|
+
paddingEnd: endWidth
|
|
246
|
+
} : null,
|
|
247
|
+
// Caller styles come last so InputGroup can pad the field around its
|
|
248
|
+
// decorators, but never last enough to drop the animated border.
|
|
249
|
+
style],
|
|
250
|
+
placeholderTextColor: typeof placeholderColor === 'string' ? placeholderColor : undefined,
|
|
251
|
+
...props
|
|
252
|
+
});
|
|
154
253
|
const body = /*#__PURE__*/_jsxs(_Fragment, {
|
|
155
254
|
children: [label ? /*#__PURE__*/_jsx(Label, {
|
|
156
255
|
isRequired: isRequired,
|
|
157
256
|
isInvalid: invalid,
|
|
158
257
|
isDisabled: !!disabled,
|
|
159
258
|
children: label
|
|
160
|
-
}) : null,
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
259
|
+
}) : null, startContent || endContent ?
|
|
260
|
+
/*#__PURE__*/
|
|
261
|
+
/*
|
|
262
|
+
* Only wrapped when there is something to position. An extra view
|
|
263
|
+
* around every field in an app is a real cost in a long form, and
|
|
264
|
+
* the field is `w-full` either way so the wrapper changes nothing
|
|
265
|
+
* else about the layout.
|
|
266
|
+
*/
|
|
267
|
+
_jsxs(View, {
|
|
268
|
+
className: slots.fieldBox(),
|
|
269
|
+
children: [startContent ? /*#__PURE__*/_jsx(View, {
|
|
270
|
+
onLayout: handleStartLayout,
|
|
271
|
+
pointerEvents: interactiveContent ? 'box-none' : 'none',
|
|
272
|
+
accessibilityElementsHidden: !interactiveContent,
|
|
273
|
+
importantForAccessibility: interactiveContent ? 'auto' : 'no-hide-descendants',
|
|
274
|
+
className: slots.startContent(),
|
|
275
|
+
children: /*#__PURE__*/_jsx(IconColorProvider, {
|
|
276
|
+
color: iconColor,
|
|
277
|
+
children: textChildren(startContent)
|
|
278
|
+
})
|
|
279
|
+
}) : null, field, endContent ? /*#__PURE__*/_jsx(View, {
|
|
280
|
+
onLayout: handleEndLayout,
|
|
281
|
+
pointerEvents: interactiveContent ? 'box-none' : 'none',
|
|
282
|
+
accessibilityElementsHidden: !interactiveContent,
|
|
283
|
+
importantForAccessibility: interactiveContent ? 'auto' : 'no-hide-descendants',
|
|
284
|
+
className: slots.endContent(),
|
|
285
|
+
children: /*#__PURE__*/_jsx(IconColorProvider, {
|
|
286
|
+
color: iconColor,
|
|
287
|
+
children: textChildren(endContent)
|
|
288
|
+
})
|
|
289
|
+
}) : null]
|
|
290
|
+
}) : field, errorMessage ? /*#__PURE__*/_jsx(Text, {
|
|
181
291
|
className: slots.error(),
|
|
182
292
|
children: errorMessage
|
|
183
293
|
}) : description ? /*#__PURE__*/_jsx(Text, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["forwardRef","useCallback","useEffect","useState","TextInput","View","Animated","interpolateColor","useAnimatedStyle","useSharedValue","withTiming","tv","useCSSVariable","KeyboardAvoider","Text","Label","jsx","_jsx","
|
|
1
|
+
{"version":3,"names":["forwardRef","useCallback","useEffect","useState","TextInput","View","Animated","interpolateColor","useAnimatedStyle","useSharedValue","withTiming","tv","useCSSVariable","IconColorProvider","KeyboardAvoider","Text","textChildren","Label","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","FOCUS_DURATION","inputVariants","slots","container","field","description","error","fieldBox","startContent","endContent","variants","variant","outline","filled","size","sm","md","lg","multiline","true","disabled","defaultVariants","AnimatedTextInput","createAnimatedComponent","Input","className","containerClassName","label","errorMessage","isRequired","interactiveContent","avoidKeyboard","keyboardMode","keyboardOffset","keyboardBottomInset","onFocus","onBlur","style","props","ref","focused","setFocused","invalid","startWidth","setStartWidth","endWidth","setEndWidth","placeholderColor","restColor","focusColor","errorColor","focus","value","duration","resting","active","idle","borderStyle","borderColor","handleFocus","event","handleBlur","handleStartLayout","nativeEvent","layout","width","handleEndLayout","iconColor","undefined","editable","accessibilityLabel","accessibilityState","paddingStart","paddingEnd","placeholderTextColor","body","children","isInvalid","isDisabled","onLayout","pointerEvents","accessibilityElementsHidden","importantForAccessibility","color","containerClasses","mode","offset","bottomInset","displayName"],"sourceRoot":"../../../../src","sources":["components/input/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -42,7 +42,10 @@ const otpVariants = tv({
|
|
|
42
42
|
container: 'gap-1.5',
|
|
43
43
|
row: 'flex-row items-center',
|
|
44
44
|
cell: 'items-center justify-center rounded-lg border border-input bg-background',
|
|
45
|
-
|
|
45
|
+
/* The typed character is drawn by an Animated.Text rather than the Text
|
|
46
|
+
primitive, so its weight class has to be written here for an app's
|
|
47
|
+
--font-normal token to reach it. */
|
|
48
|
+
char: 'font-normal text-foreground',
|
|
46
49
|
caret: 'w-0.5 rounded-full bg-foreground',
|
|
47
50
|
separator: 'h-0.5 rounded-full bg-border',
|
|
48
51
|
error: 'text-sm text-destructive'
|