panelui-native 0.36.0 → 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 +10 -3
- package/lib/module/components/input/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/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/theme/use-theme.js +1 -1
- 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 +18 -4
- package/lib/typescript/src/components/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/index.d.ts +2 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/theme/use-theme.d.ts +1 -1
- 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 +21 -7
- package/src/components/select/index.tsx +114 -15
- package/src/index.ts +10 -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":[]}
|
|
@@ -29,6 +29,13 @@
|
|
|
29
29
|
* field, so anything centred on the component as a whole drifts upward the
|
|
30
30
|
* moment a label is added.
|
|
31
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
|
+
*
|
|
32
39
|
* `InputGroup` is still the right answer for a decorator that is not part of
|
|
33
40
|
* the field — a button attached to its end, a select bolted to its start, an
|
|
34
41
|
* addon with its own background. It measures the same way; it just spans a
|
|
@@ -145,7 +152,7 @@ export const Input = /*#__PURE__*/forwardRef(({
|
|
|
145
152
|
disabled,
|
|
146
153
|
startContent,
|
|
147
154
|
endContent,
|
|
148
|
-
interactiveContent =
|
|
155
|
+
interactiveContent = true,
|
|
149
156
|
variant,
|
|
150
157
|
size,
|
|
151
158
|
avoidKeyboard = false,
|
|
@@ -261,7 +268,7 @@ export const Input = /*#__PURE__*/forwardRef(({
|
|
|
261
268
|
className: slots.fieldBox(),
|
|
262
269
|
children: [startContent ? /*#__PURE__*/_jsx(View, {
|
|
263
270
|
onLayout: handleStartLayout,
|
|
264
|
-
pointerEvents: interactiveContent ? '
|
|
271
|
+
pointerEvents: interactiveContent ? 'box-none' : 'none',
|
|
265
272
|
accessibilityElementsHidden: !interactiveContent,
|
|
266
273
|
importantForAccessibility: interactiveContent ? 'auto' : 'no-hide-descendants',
|
|
267
274
|
className: slots.startContent(),
|
|
@@ -271,7 +278,7 @@ export const Input = /*#__PURE__*/forwardRef(({
|
|
|
271
278
|
})
|
|
272
279
|
}) : null, field, endContent ? /*#__PURE__*/_jsx(View, {
|
|
273
280
|
onLayout: handleEndLayout,
|
|
274
|
-
pointerEvents: interactiveContent ? '
|
|
281
|
+
pointerEvents: interactiveContent ? 'box-none' : 'none',
|
|
275
282
|
accessibilityElementsHidden: !interactiveContent,
|
|
276
283
|
importantForAccessibility: interactiveContent ? 'auto' : 'no-hide-descendants',
|
|
277
284
|
className: slots.endContent(),
|
|
@@ -1 +1 @@
|
|
|
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":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,UAAU,EAAEC,WAAW,EAAEC,SAAS,EAAEC,QAAQ,QAAwB,OAAO;AACpF,SACEC,SAAS,EACTC,IAAI,QAGC,cAAc;AACrB,OAAOC,QAAQ,IACbC,gBAAgB,EAChBC,gBAAgB,EAChBC,cAAc,EACdC,UAAU,QACL,yBAAyB;AAChC,SAASC,EAAE,QAA2B,mBAAmB;AACzD,SAASC,cAAc,QAAQ,SAAS;AAExC,SAASC,iBAAiB,QAAQ,sBAAa;AAC/C,SAASC,eAAe,QAAQ,sCAAmC;AACnE,SAASC,IAAI,EAAEC,YAAY,QAAQ,0BAAuB;AAC1D,SAASC,KAAK,QAAQ,mBAAU;;AAEhC;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAAAC,QAAA,IAAAC,SAAA;AACA,MAAMC,cAAc,GAAG,GAAG;AAE1B,MAAMC,aAAa,GAAGd,EAAE,CAAC;EACvBe,KAAK,EAAE;IACLC,SAAS,EAAE,gBAAgB;IAC3B;AACJ;AACA;AACA;AACA;AACA;IACIC,KAAK,EAAE,sDAAsD;IAC7DC,WAAW,EAAE,+BAA+B;IAC5CC,KAAK,EAAE,0BAA0B;IACjC;AACJ;AACA;AACA;AACA;IACIC,QAAQ,EAAE,iBAAiB;IAC3BC,YAAY,EACV,iFAAiF;IACnFC,UAAU,EACR;EACJ,CAAC;EACDC,QAAQ,EAAE;IACRC,OAAO,EAAE;MACP;MACA;MACAC,OAAO,EAAE;QAAER,KAAK,EAAE;MAAgB,CAAC;MACnCS,MAAM,EAAE;QAAET,KAAK,EAAE;MAAW;IAC9B,CAAC;IACDU,IAAI,EAAE;MACJ;AACN;AACA;AACA;AACA;AACA;AACA;AACA;MACM;MACA;MACAC,EAAE,EAAE;QAAEX,KAAK,EAAE,uBAAuB;QAAEI,YAAY,EAAE,MAAM;QAAEC,UAAU,EAAE;MAAO,CAAC;MAChFO,EAAE,EAAE;QAAEZ,KAAK,EAAE,yBAAyB;QAAEI,YAAY,EAAE,QAAQ;QAAEC,UAAU,EAAE;MAAS,CAAC;MACtFQ,EAAE,EAAE;QAAEb,KAAK,EAAE,uBAAuB;QAAEI,YAAY,EAAE,MAAM;QAAEC,UAAU,EAAE;MAAO;IACjF,CAAC;IACDS,SAAS,EAAE;MACT;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACAC,IAAI,EAAE;QACJf,KAAK,EAAE,qCAAqC;QAC5CI,YAAY,EAAE,kBAAkB;QAChCC,UAAU,EAAE;MACd;IACF,CAAC;IACDW,QAAQ,EAAE;MACRD,IAAI,EAAE;QACJf,KAAK,EAAE,gBAAgB;QACvBI,YAAY,EAAE,gBAAgB;QAC9BC,UAAU,EAAE;MACd;IACF;EACF,CAAC;EACDY,eAAe,EAAE;IACfV,OAAO,EAAE,SAAS;IAClBG,IAAI,EAAE;EACR;AACF,CAAC,CAAC;
|
|
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":[]}
|
|
@@ -28,8 +28,14 @@
|
|
|
28
28
|
* the option labels. The filter narrows what is *shown* — the declared options
|
|
29
29
|
* are still the source of truth, so nothing has to be lifted into state to make
|
|
30
30
|
* it work.
|
|
31
|
+
*
|
|
32
|
+
* A list long enough to need a filter is usually long enough to want dividing,
|
|
33
|
+
* so options can be wrapped in `Select.Group` under a heading. Grouping is
|
|
34
|
+
* presentational — the value is still a flat string — and the filter reaches
|
|
35
|
+
* through it, dropping any group the query empties rather than leaving a
|
|
36
|
+
* heading standing over nothing.
|
|
31
37
|
*/
|
|
32
|
-
import { Children, createContext, isValidElement, useCallback, useContext, useMemo, useRef, useState } from 'react';
|
|
38
|
+
import { Children, cloneElement, createContext, isValidElement, useCallback, useContext, useMemo, useRef, useState } from 'react';
|
|
33
39
|
import { Pressable, ScrollView, useWindowDimensions, View } from 'react-native';
|
|
34
40
|
import Animated, { FadeIn, FadeOut, useAnimatedStyle, useSharedValue, withTiming } from 'react-native-reanimated';
|
|
35
41
|
import { tv } from 'tailwind-variants';
|
|
@@ -39,6 +45,7 @@ import { getNativeUI } from "../../native/index.js";
|
|
|
39
45
|
import { Portal } from "../../primitives/portal.js";
|
|
40
46
|
import { Text, textChildren } from "../../primitives/text.js";
|
|
41
47
|
import { useBackHandler } from "../../hooks/use-back-handler.js";
|
|
48
|
+
import { cn } from "../../utils/cn.js";
|
|
42
49
|
import { BottomSheet } from "../bottom-sheet/index.js";
|
|
43
50
|
import { InputGroup } from "../input-group/index.js";
|
|
44
51
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -52,7 +59,9 @@ const selectVariants = tv({
|
|
|
52
59
|
list: 'overflow-hidden rounded-xl border border-border bg-popover p-2 shadow-sm',
|
|
53
60
|
item: 'flex-row items-center gap-2 rounded-lg px-3 py-3',
|
|
54
61
|
itemLabel: 'flex-1 text-base font-medium text-foreground',
|
|
55
|
-
itemIndicator: 'h-5 w-5 items-center justify-center'
|
|
62
|
+
itemIndicator: 'h-5 w-5 items-center justify-center',
|
|
63
|
+
group: 'gap-1',
|
|
64
|
+
groupLabel: 'px-3 pb-1 pt-2'
|
|
56
65
|
},
|
|
57
66
|
variants: {
|
|
58
67
|
selected: {
|
|
@@ -126,6 +135,97 @@ function SelectItem({
|
|
|
126
135
|
})]
|
|
127
136
|
});
|
|
128
137
|
}
|
|
138
|
+
/**
|
|
139
|
+
* A titled run of options.
|
|
140
|
+
*
|
|
141
|
+
* Purely a way of arranging the list: a grouped Select still reports one flat
|
|
142
|
+
* string, and `Select.Item` needs to know nothing about being inside one.
|
|
143
|
+
*/
|
|
144
|
+
function SelectGroup({
|
|
145
|
+
label,
|
|
146
|
+
className,
|
|
147
|
+
labelClassName,
|
|
148
|
+
children
|
|
149
|
+
}) {
|
|
150
|
+
const {
|
|
151
|
+
group,
|
|
152
|
+
groupLabel
|
|
153
|
+
} = selectVariants();
|
|
154
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
155
|
+
className: cn(group(), className),
|
|
156
|
+
children: [label ? /*#__PURE__*/_jsx(View, {
|
|
157
|
+
accessibilityRole: "header",
|
|
158
|
+
className: cn(groupLabel(), labelClassName),
|
|
159
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
160
|
+
size: "xs",
|
|
161
|
+
weight: "medium",
|
|
162
|
+
muted: true,
|
|
163
|
+
className: "uppercase tracking-wide",
|
|
164
|
+
children: label
|
|
165
|
+
})
|
|
166
|
+
}) : null, textChildren(children)]
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* Walk the declared children, visiting every `Select.Item` — including the ones
|
|
172
|
+
* nested inside a `Select.Group`.
|
|
173
|
+
*
|
|
174
|
+
* Grouping is a rendering concern, but the selected label and the native
|
|
175
|
+
* picker's option list both want the flat set, so the tree is flattened once
|
|
176
|
+
* here rather than in each of them.
|
|
177
|
+
*/
|
|
178
|
+
function eachOption(children, visit) {
|
|
179
|
+
Children.forEach(children, child => {
|
|
180
|
+
if (! /*#__PURE__*/isValidElement(child)) return;
|
|
181
|
+
if (child.type === SelectGroup) {
|
|
182
|
+
eachOption(child.props.children, visit);
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
if (child.type !== SelectItem) return;
|
|
186
|
+
const {
|
|
187
|
+
value,
|
|
188
|
+
label,
|
|
189
|
+
disabled
|
|
190
|
+
} = child.props;
|
|
191
|
+
visit({
|
|
192
|
+
value,
|
|
193
|
+
label,
|
|
194
|
+
disabled
|
|
195
|
+
});
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* The children a query leaves standing.
|
|
201
|
+
*
|
|
202
|
+
* A group is rebuilt around whatever survives inside it and dropped when that
|
|
203
|
+
* is nothing — a heading with no options under it reads as a section that
|
|
204
|
+
* failed to load rather than one the filter emptied. Anything that is neither
|
|
205
|
+
* an item nor a group is left alone: a caption or a divider the caller put in
|
|
206
|
+
* the list is not something a filter has an opinion about.
|
|
207
|
+
*/
|
|
208
|
+
function filterOptions(children, needle) {
|
|
209
|
+
const kept = [];
|
|
210
|
+
Children.forEach(children, child => {
|
|
211
|
+
if (! /*#__PURE__*/isValidElement(child)) return;
|
|
212
|
+
if (child.type === SelectGroup) {
|
|
213
|
+
const props = child.props;
|
|
214
|
+
const inner = filterOptions(props.children, needle);
|
|
215
|
+
if (inner.length) {
|
|
216
|
+
kept.push(/*#__PURE__*/cloneElement(child, {}, inner));
|
|
217
|
+
}
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
if (child.type === SelectItem) {
|
|
221
|
+
const {
|
|
222
|
+
label
|
|
223
|
+
} = child.props;
|
|
224
|
+
if (label.toLowerCase().includes(needle)) kept.push(child);
|
|
225
|
+
}
|
|
226
|
+
});
|
|
227
|
+
return kept;
|
|
228
|
+
}
|
|
129
229
|
|
|
130
230
|
/** Trigger frame in window coordinates, measured when the list opens. */
|
|
131
231
|
|
|
@@ -159,15 +259,7 @@ function SelectRoot({
|
|
|
159
259
|
const nativeUI = native ? getNativeUI() : null;
|
|
160
260
|
const options = useMemo(() => {
|
|
161
261
|
const collected = [];
|
|
162
|
-
|
|
163
|
-
if (/*#__PURE__*/isValidElement(child)) {
|
|
164
|
-
collected.push({
|
|
165
|
-
value: child.props.value,
|
|
166
|
-
label: child.props.label,
|
|
167
|
-
disabled: child.props.disabled
|
|
168
|
-
});
|
|
169
|
-
}
|
|
170
|
-
});
|
|
262
|
+
eachOption(children, option => collected.push(option));
|
|
171
263
|
return collected;
|
|
172
264
|
}, [children]);
|
|
173
265
|
const selectedLabel = useMemo(() => options.find(option => option.value === value)?.label, [options, value]);
|
|
@@ -181,7 +273,7 @@ function SelectRoot({
|
|
|
181
273
|
const filtered = useMemo(() => {
|
|
182
274
|
const needle = searchable ? query.trim().toLowerCase() : '';
|
|
183
275
|
if (!needle) return null;
|
|
184
|
-
return
|
|
276
|
+
return filterOptions(children, needle);
|
|
185
277
|
}, [children, query, searchable]);
|
|
186
278
|
const close = useCallback(() => {
|
|
187
279
|
chevron.value = withTiming(0, {
|
|
@@ -275,8 +367,14 @@ function SelectRoot({
|
|
|
275
367
|
);
|
|
276
368
|
}
|
|
277
369
|
const trigger = /*#__PURE__*/_jsxs(Pressable, {
|
|
278
|
-
ref: triggerRef
|
|
279
|
-
|
|
370
|
+
ref: triggerRef
|
|
371
|
+
/*
|
|
372
|
+
* A trigger that owns a list of options and reports whether that list is
|
|
373
|
+
* open is a combobox, not a button — and `expanded` only means anything
|
|
374
|
+
* on a role that can be expanded. Announced as "collapsed"/"expanded"
|
|
375
|
+
* rather than as a button whose state has nowhere to be read.
|
|
376
|
+
*/,
|
|
377
|
+
accessibilityRole: "combobox",
|
|
280
378
|
accessibilityState: {
|
|
281
379
|
disabled: !!disabled,
|
|
282
380
|
expanded: open
|
|
@@ -461,7 +559,10 @@ function SelectRoot({
|
|
|
461
559
|
}) : null]
|
|
462
560
|
});
|
|
463
561
|
}
|
|
562
|
+
SelectItem.displayName = 'Select.Item';
|
|
563
|
+
SelectGroup.displayName = 'Select.Group';
|
|
464
564
|
export const Select = Object.assign(SelectRoot, {
|
|
465
|
-
Item: SelectItem
|
|
565
|
+
Item: SelectItem,
|
|
566
|
+
Group: SelectGroup
|
|
466
567
|
});
|
|
467
568
|
//# sourceMappingURL=index.js.map
|