@cwncollab-org/mui-component-kit 0.2.1 → 0.2.3
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 +124 -0
- package/dist/form/Autocomplete.d.ts +24 -0
- package/dist/form/Autocomplete.d.ts.map +1 -0
- package/dist/form/Autocomplete.js +111 -0
- package/dist/form/Autocomplete.js.map +1 -0
- package/dist/form/RadioGroup.d.ts +1 -0
- package/dist/form/RadioGroup.d.ts.map +1 -1
- package/dist/form/RadioGroup.js +2 -2
- package/dist/form/RadioGroup.js.map +1 -1
- package/dist/form/SubscribeAutocomplete.d.ts +4 -0
- package/dist/form/SubscribeAutocomplete.d.ts.map +1 -0
- package/dist/form/SubscribeAutocomplete.js +9 -0
- package/dist/form/SubscribeAutocomplete.js.map +1 -0
- package/dist/form/formHooks.d.ts +8 -0
- package/dist/form/formHooks.d.ts.map +1 -1
- package/dist/form/formHooks.js +4 -0
- package/dist/form/formHooks.js.map +1 -1
- package/dist/form/index.d.ts +2 -0
- package/dist/form/index.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -515,6 +515,130 @@ function MyForm() {
|
|
|
515
515
|
| `slotProps` | `object` | - | Props for underlying MUI components |
|
|
516
516
|
|
|
517
517
|
|
|
518
|
+
### Autocomplete Component
|
|
519
|
+
|
|
520
|
+
The Autocomplete component provides a searchable dropdown with support for single and multiple selection, built on top of MUI's Autocomplete component and integrated with TanStack Form.
|
|
521
|
+
|
|
522
|
+
```tsx
|
|
523
|
+
import { useAppForm } from '@cwncollab-org/component-kit'
|
|
524
|
+
import { z } from 'zod'
|
|
525
|
+
|
|
526
|
+
// Define your form schema
|
|
527
|
+
const formSchema = z.object({
|
|
528
|
+
country: z.string().optional(),
|
|
529
|
+
skills: z.array(z.string()).optional(),
|
|
530
|
+
})
|
|
531
|
+
|
|
532
|
+
// Define your options
|
|
533
|
+
const countries = [
|
|
534
|
+
{ value: 'us', label: 'United States' },
|
|
535
|
+
{ value: 'ca', label: 'Canada' },
|
|
536
|
+
{ value: 'uk', label: 'United Kingdom' },
|
|
537
|
+
{ value: 'de', label: 'Germany' },
|
|
538
|
+
{ value: 'fr', label: 'France' },
|
|
539
|
+
]
|
|
540
|
+
|
|
541
|
+
const skills = [
|
|
542
|
+
{ value: 'javascript', label: 'JavaScript' },
|
|
543
|
+
{ value: 'typescript', label: 'TypeScript' },
|
|
544
|
+
{ value: 'react', label: 'React' },
|
|
545
|
+
{ value: 'vue', label: 'Vue.js' },
|
|
546
|
+
{ value: 'angular', label: 'Angular' },
|
|
547
|
+
]
|
|
548
|
+
|
|
549
|
+
function MyForm() {
|
|
550
|
+
const form = useAppForm({
|
|
551
|
+
defaultValues: {
|
|
552
|
+
country: undefined,
|
|
553
|
+
skills: [],
|
|
554
|
+
},
|
|
555
|
+
validators: {
|
|
556
|
+
onSubmit: formSchema,
|
|
557
|
+
},
|
|
558
|
+
onSubmit: ({ value }) => {
|
|
559
|
+
console.log('Selected country:', value.country)
|
|
560
|
+
console.log('Selected skills:', value.skills)
|
|
561
|
+
},
|
|
562
|
+
})
|
|
563
|
+
|
|
564
|
+
return (
|
|
565
|
+
<>
|
|
566
|
+
{/* Single selection autocomplete */}
|
|
567
|
+
<form.AppField
|
|
568
|
+
name="country"
|
|
569
|
+
children={field => (
|
|
570
|
+
<field.Autocomplete
|
|
571
|
+
label="Country"
|
|
572
|
+
labelBehavior="shrink"
|
|
573
|
+
size="small"
|
|
574
|
+
fullWidth
|
|
575
|
+
options={countries}
|
|
576
|
+
placeholder="Select a country"
|
|
577
|
+
/>
|
|
578
|
+
)}
|
|
579
|
+
/>
|
|
580
|
+
|
|
581
|
+
{/* Multiple selection autocomplete */}
|
|
582
|
+
<form.AppField
|
|
583
|
+
name="skills"
|
|
584
|
+
children={field => (
|
|
585
|
+
<field.Autocomplete
|
|
586
|
+
label="Skills"
|
|
587
|
+
labelBehavior="shrink"
|
|
588
|
+
size="small"
|
|
589
|
+
fullWidth
|
|
590
|
+
multiple
|
|
591
|
+
options={skills}
|
|
592
|
+
placeholder="Select skills"
|
|
593
|
+
/>
|
|
594
|
+
)}
|
|
595
|
+
/>
|
|
596
|
+
|
|
597
|
+
{/* SubscribeAutocomplete automatically disables during form submission */}
|
|
598
|
+
<form.AppField
|
|
599
|
+
name="country"
|
|
600
|
+
children={field => (
|
|
601
|
+
<field.SubscribeAutocomplete
|
|
602
|
+
label="Country"
|
|
603
|
+
labelBehavior="auto"
|
|
604
|
+
size="small"
|
|
605
|
+
fullWidth
|
|
606
|
+
options={countries}
|
|
607
|
+
placeholder="Select a country"
|
|
608
|
+
/>
|
|
609
|
+
)}
|
|
610
|
+
/>
|
|
611
|
+
</>
|
|
612
|
+
)
|
|
613
|
+
}
|
|
614
|
+
```
|
|
615
|
+
|
|
616
|
+
#### Autocomplete Props
|
|
617
|
+
|
|
618
|
+
| Prop | Type | Default | Description |
|
|
619
|
+
|------|------|---------|-------------|
|
|
620
|
+
| `label` | `string` | - | The label text for the autocomplete field |
|
|
621
|
+
| `labelBehavior` | `'auto' \| 'shrink' \| 'static'` | `'auto'` | How the label should behave |
|
|
622
|
+
| `size` | `'small' \| 'medium'` | `'medium'` | The size of the autocomplete field |
|
|
623
|
+
| `fullWidth` | `boolean` | `false` | Whether the autocomplete should take full width |
|
|
624
|
+
| `options` | `Array<{ value: string, label: string }> \| string[]` | `[]` | The options to display in the autocomplete |
|
|
625
|
+
| `multiple` | `boolean` | `false` | Whether multiple values can be selected |
|
|
626
|
+
| `freeSolo` | `boolean` | `false` | If true, the Autocomplete is free solo, meaning that the user input is not bound to provided options |
|
|
627
|
+
| `placeholder` | `string` | - | Placeholder text when no option is selected |
|
|
628
|
+
| `slotProps` | `object` | - | Props for underlying MUI components (autocomplete, textField, helperText) |
|
|
629
|
+
| `onChange` | `(value: string \| string[] \| null) => void` | - | Callback fired when the value changes |
|
|
630
|
+
|
|
631
|
+
The Autocomplete component also accepts all standard MUI FormControl props except those that conflict with the managed props.
|
|
632
|
+
|
|
633
|
+
**Label Behaviors:**
|
|
634
|
+
- `'auto'`: Default MUI behavior - label floats when focused or has value
|
|
635
|
+
- `'shrink'`: Label is always in the shrunk (floating) position
|
|
636
|
+
- `'static'`: Label appears as a static label above the input
|
|
637
|
+
|
|
638
|
+
**SubscribeAutocomplete:**
|
|
639
|
+
The `SubscribeAutocomplete` component has the same props as `Autocomplete` but automatically disables the field when the form is submitting, providing better UX during form submission.
|
|
640
|
+
|
|
641
|
+
|
|
518
642
|
### RadioGroup Component
|
|
519
643
|
|
|
520
644
|
The RadioGroup component provides radio button selection, built on top of MUI's FormControl and RadioGroup components and integrated with TanStack Form.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { AutocompleteProps as MuiAutocompleteProps, TextFieldProps as MuiTextFieldProps, FormControlProps as MuiFormControlProps, FormHelperTextProps as MuiFormHelperTextProps } from '@mui/material';
|
|
2
|
+
type Option = {
|
|
3
|
+
value: string;
|
|
4
|
+
label: string;
|
|
5
|
+
};
|
|
6
|
+
export type AutocompleteProps = Omit<MuiFormControlProps, 'onChange'> & {
|
|
7
|
+
label?: string;
|
|
8
|
+
labelBehavior?: 'auto' | 'shrink' | 'static';
|
|
9
|
+
size?: 'small' | 'medium';
|
|
10
|
+
fullWidth?: boolean;
|
|
11
|
+
options?: Option[] | string[];
|
|
12
|
+
multiple?: boolean;
|
|
13
|
+
freeSolo?: boolean;
|
|
14
|
+
placeholder?: string;
|
|
15
|
+
slotProps?: {
|
|
16
|
+
autocomplete?: Omit<MuiAutocompleteProps<Option, boolean, boolean, boolean>, 'options' | 'value' | 'onChange' | 'renderInput' | 'multiple' | 'freeSolo'>;
|
|
17
|
+
textField?: Omit<MuiTextFieldProps, 'value' | 'onChange' | 'name'>;
|
|
18
|
+
helperText?: MuiFormHelperTextProps;
|
|
19
|
+
};
|
|
20
|
+
onChange?: (value: string | string[] | null) => void;
|
|
21
|
+
};
|
|
22
|
+
export declare function Autocomplete(props: AutocompleteProps): import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=Autocomplete.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Autocomplete.d.ts","sourceRoot":"","sources":["../../src/lib/form/Autocomplete.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,iBAAiB,IAAI,oBAAoB,EAEzC,cAAc,IAAI,iBAAiB,EAEnC,gBAAgB,IAAI,mBAAmB,EAEvC,mBAAmB,IAAI,sBAAsB,EAC9C,MAAM,eAAe,CAAA;AAItB,KAAK,MAAM,GAAG;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAC,GAAG;IACtE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAA;IAC5C,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAA;IACzB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAA;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE;QACV,YAAY,CAAC,EAAE,IAAI,CACjB,oBAAoB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EACvD,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,aAAa,GAAG,UAAU,GAAG,UAAU,CAC3E,CAAA;QACD,SAAS,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC,CAAA;QAClE,UAAU,CAAC,EAAE,sBAAsB,CAAA;KACpC,CAAA;IACD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,KAAK,IAAI,CAAA;CACrD,CAAA;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,2CAkKpD"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Autocomplete as MuiAutocomplete, TextField as MuiTextField, FormControl as MuiFormControl, FormHelperText as MuiFormHelperText, } from '@mui/material';
|
|
3
|
+
import { useFieldContext } from './formContext';
|
|
4
|
+
import { useId, useMemo } from 'react';
|
|
5
|
+
export function Autocomplete(props) {
|
|
6
|
+
const field = useFieldContext();
|
|
7
|
+
const { slotProps, options, multiple = false, freeSolo = false, labelBehavior = 'auto', size, fullWidth, placeholder, onChange, ...rest } = props;
|
|
8
|
+
const id = useId();
|
|
9
|
+
const errorText = useMemo(() => {
|
|
10
|
+
if (field.state.meta.errors.length === 0)
|
|
11
|
+
return null;
|
|
12
|
+
return field.state.meta.errors.map(error => error.message).join(', ');
|
|
13
|
+
}, [field.state.meta.errors]);
|
|
14
|
+
const renderedOptions = useMemo(() => {
|
|
15
|
+
if (options) {
|
|
16
|
+
return options.map(option => typeof option === 'string' ? { value: option, label: option } : option);
|
|
17
|
+
}
|
|
18
|
+
return [];
|
|
19
|
+
}, [options]);
|
|
20
|
+
const labelShrink = labelBehavior === 'shrink' ? true : undefined;
|
|
21
|
+
let inputLabelProps = {
|
|
22
|
+
...slotProps?.textField?.slotProps?.inputLabel,
|
|
23
|
+
shrink: labelShrink,
|
|
24
|
+
};
|
|
25
|
+
let inputProps = {
|
|
26
|
+
...slotProps?.textField?.slotProps?.input,
|
|
27
|
+
};
|
|
28
|
+
if (labelBehavior === 'static') {
|
|
29
|
+
inputLabelProps = {
|
|
30
|
+
...inputLabelProps,
|
|
31
|
+
sx: {
|
|
32
|
+
...inputLabelProps?.sx,
|
|
33
|
+
position: 'relative',
|
|
34
|
+
transform: 'none',
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
inputProps = {
|
|
38
|
+
...inputProps,
|
|
39
|
+
notched: true,
|
|
40
|
+
sx: {
|
|
41
|
+
...inputProps?.sx,
|
|
42
|
+
'& legend > span': {
|
|
43
|
+
display: 'none',
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
const textFieldProps = {
|
|
49
|
+
...slotProps?.textField,
|
|
50
|
+
slotProps: {
|
|
51
|
+
...slotProps?.textField?.slotProps,
|
|
52
|
+
inputLabel: inputLabelProps,
|
|
53
|
+
input: inputProps,
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
const getCurrentValue = () => {
|
|
57
|
+
const value = field.state.value;
|
|
58
|
+
if (multiple) {
|
|
59
|
+
if (Array.isArray(value)) {
|
|
60
|
+
return renderedOptions.filter(option => value.includes(option.value));
|
|
61
|
+
}
|
|
62
|
+
return [];
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
if (typeof value === 'string') {
|
|
66
|
+
return renderedOptions.find(option => option.value === value) || null;
|
|
67
|
+
}
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
return (_jsxs(MuiFormControl, { error: Boolean(errorText), fullWidth: fullWidth, size: size, ...rest, children: [_jsx(MuiAutocomplete, { id: id, multiple: multiple, freeSolo: freeSolo, options: renderedOptions, getOptionLabel: option => {
|
|
72
|
+
if (typeof option === 'string')
|
|
73
|
+
return option;
|
|
74
|
+
return option.label;
|
|
75
|
+
}, isOptionEqualToValue: (option, value) => {
|
|
76
|
+
if (typeof option === 'string' && typeof value === 'string') {
|
|
77
|
+
return option === value;
|
|
78
|
+
}
|
|
79
|
+
return option.value === value.value;
|
|
80
|
+
}, value: getCurrentValue(), onChange: (event, newValue) => {
|
|
81
|
+
let processedValue = null;
|
|
82
|
+
if (multiple) {
|
|
83
|
+
if (Array.isArray(newValue)) {
|
|
84
|
+
processedValue = newValue.map(item => typeof item === 'string' ? item : item.value);
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
processedValue = [];
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
if (newValue) {
|
|
92
|
+
processedValue =
|
|
93
|
+
typeof newValue === 'string'
|
|
94
|
+
? newValue
|
|
95
|
+
: newValue.value;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
onChange?.(processedValue);
|
|
99
|
+
if (!event.defaultPrevented) {
|
|
100
|
+
field.handleChange(processedValue);
|
|
101
|
+
}
|
|
102
|
+
}, renderInput: params => (_jsx(MuiTextField, { ...params, label: props.label, placeholder: placeholder, error: Boolean(errorText), name: field.name, slotProps: {
|
|
103
|
+
...textFieldProps.slotProps,
|
|
104
|
+
input: {
|
|
105
|
+
...params.InputProps,
|
|
106
|
+
...inputProps,
|
|
107
|
+
},
|
|
108
|
+
inputLabel: inputLabelProps,
|
|
109
|
+
}, ...(({ slotProps: _, ...rest }) => rest)(textFieldProps) })), ...slotProps?.autocomplete }), Boolean(errorText) && (_jsx(MuiFormHelperText, { ...slotProps?.helperText, children: errorText }))] }));
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=Autocomplete.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Autocomplete.js","sourceRoot":"","sources":["../../src/lib/form/Autocomplete.tsx"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { RadioGroupProps as MuiRadioGroupProps } from '@mui/material';
|
|
|
2
2
|
export type RadioGroupProps = Omit<MuiRadioGroupProps, 'name' | 'value' | 'defaultValue'> & {
|
|
3
3
|
label?: string;
|
|
4
4
|
disabled?: boolean;
|
|
5
|
+
required?: boolean;
|
|
5
6
|
};
|
|
6
7
|
export declare function RadioGroup(props: RadioGroupProps): import("react/jsx-runtime").JSX.Element;
|
|
7
8
|
//# sourceMappingURL=RadioGroup.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RadioGroup.d.ts","sourceRoot":"","sources":["../../src/lib/form/RadioGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,eAAe,IAAI,kBAAkB,EACtC,MAAM,eAAe,CAAA;AAItB,MAAM,MAAM,eAAe,GAAG,IAAI,CAChC,kBAAkB,EAClB,MAAM,GAAG,OAAO,GAAG,cAAc,CAClC,GAAG;IACF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,2CAyBhD"}
|
|
1
|
+
{"version":3,"file":"RadioGroup.d.ts","sourceRoot":"","sources":["../../src/lib/form/RadioGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,eAAe,IAAI,kBAAkB,EACtC,MAAM,eAAe,CAAA;AAItB,MAAM,MAAM,eAAe,GAAG,IAAI,CAChC,kBAAkB,EAClB,MAAM,GAAG,OAAO,GAAG,cAAc,CAClC,GAAG;IACF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,2CAyBhD"}
|
package/dist/form/RadioGroup.js
CHANGED
|
@@ -3,11 +3,11 @@ import { FormControl, FormLabel, RadioGroup as MuiRadioGroup, } from '@mui/mater
|
|
|
3
3
|
import { useFieldContext } from './formContext';
|
|
4
4
|
import { useId } from 'react';
|
|
5
5
|
export function RadioGroup(props) {
|
|
6
|
-
const { label, children, disabled, ...radioGroupProps } = props;
|
|
6
|
+
const { label, children, disabled, required, ...radioGroupProps } = props;
|
|
7
7
|
const field = useFieldContext();
|
|
8
8
|
const id = useId();
|
|
9
9
|
const labelId = `${id}-label`;
|
|
10
|
-
return (_jsxs(FormControl, { disabled: disabled, children: [_jsx(FormLabel, { id: labelId, children: label }), _jsx(MuiRadioGroup, { "aria-labelledby": labelId, name: field.name, value: field.state.value ?? '', onChange: ev => {
|
|
10
|
+
return (_jsxs(FormControl, { disabled: disabled, required: required, children: [_jsx(FormLabel, { id: labelId, children: label }), _jsx(MuiRadioGroup, { "aria-labelledby": labelId, name: field.name, value: field.state.value ?? '', onChange: ev => {
|
|
11
11
|
if (!ev.defaultPrevented) {
|
|
12
12
|
field.handleChange(ev.target.value === '' ? null : ev.target.value);
|
|
13
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RadioGroup.js","sourceRoot":"","sources":["../../src/lib/form/RadioGroup.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,WAAW,EACX,SAAS,EACT,UAAU,IAAI,aAAa,GAE5B,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"RadioGroup.js","sourceRoot":"","sources":["../../src/lib/form/RadioGroup.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,WAAW,EACX,SAAS,EACT,UAAU,IAAI,aAAa,GAE5B,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAW7B,MAAM,UAAU,UAAU,CAAC,KAAsB;IAC/C,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,eAAe,EAAE,GAAG,KAAK,CAAA;IAEzE,MAAM,KAAK,GAAG,eAAe,EAA6B,CAAA;IAC1D,MAAM,EAAE,GAAG,KAAK,EAAE,CAAA;IAClB,MAAM,OAAO,GAAG,GAAG,EAAE,QAAQ,CAAA;IAE7B,OAAO,CACL,MAAC,WAAW,IAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,aACjD,KAAC,SAAS,IAAC,EAAE,EAAE,OAAO,YAAG,KAAK,GAAa,EAC3C,KAAC,aAAa,uBACK,OAAO,EACxB,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,EAC9B,QAAQ,EAAE,EAAE,CAAC,EAAE;oBACb,IAAI,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC;wBACzB,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;oBACrE,CAAC;gBACH,CAAC,KACG,eAAe,YAElB,QAAQ,GACK,IACJ,CACf,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { AutocompleteProps } from './Autocomplete';
|
|
2
|
+
export type SubscribeAutocompleteProps = AutocompleteProps;
|
|
3
|
+
export declare function SubscribeAutocomplete(props: SubscribeAutocompleteProps): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
//# sourceMappingURL=SubscribeAutocomplete.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubscribeAutocomplete.d.ts","sourceRoot":"","sources":["../../src/lib/form/SubscribeAutocomplete.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAgB,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAGhE,MAAM,MAAM,0BAA0B,GAAG,iBAAiB,CAAA;AAE1D,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,0BAA0B,2CAYtE"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Autocomplete } from './Autocomplete';
|
|
3
|
+
import { useFormContext } from './formContext';
|
|
4
|
+
export function SubscribeAutocomplete(props) {
|
|
5
|
+
const form = useFormContext();
|
|
6
|
+
const { disabled, ...rest } = props;
|
|
7
|
+
return (_jsx(form.Subscribe, { selector: state => state.isSubmitting, children: isSubmitting => (_jsx(Autocomplete, { disabled: isSubmitting || disabled, ...rest })) }));
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=SubscribeAutocomplete.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubscribeAutocomplete.js","sourceRoot":"","sources":["../../src/lib/form/SubscribeAutocomplete.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAqB,MAAM,gBAAgB,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAI9C,MAAM,UAAU,qBAAqB,CAAC,KAAiC;IACrE,MAAM,IAAI,GAAG,cAAc,EAAE,CAAA;IAE7B,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAA;IAEnC,OAAO,CACL,KAAC,IAAI,CAAC,SAAS,IAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,YAClD,YAAY,CAAC,EAAE,CAAC,CACf,KAAC,YAAY,IAAC,QAAQ,EAAE,YAAY,IAAI,QAAQ,KAAM,IAAI,GAAI,CAC/D,GACc,CAClB,CAAA;AACH,CAAC"}
|
package/dist/form/formHooks.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Autocomplete } from './Autocomplete';
|
|
1
2
|
import { TextField } from './TextField';
|
|
2
3
|
import { Checkbox } from './Checkbox';
|
|
3
4
|
import { Select } from './Select';
|
|
@@ -5,6 +6,7 @@ import { DatePicker } from './DatePicker';
|
|
|
5
6
|
import { TimePicker } from './TimePicker';
|
|
6
7
|
import { SubscribeButton } from './SubscribeButton';
|
|
7
8
|
import { MultiSelect } from './MultiSelect';
|
|
9
|
+
import { SubscribeAutocomplete } from './SubscribeAutocomplete';
|
|
8
10
|
import { SubscribeTextField } from './SubscribeTextField';
|
|
9
11
|
import { SubscribeSelect } from './SubscribeSelect';
|
|
10
12
|
import { SubscribeMultiSelect } from './SubscribeMultiSelect';
|
|
@@ -17,6 +19,7 @@ export declare const useAppForm: <TFormData, TOnMount extends import("@tanstack/
|
|
|
17
19
|
readonly SubscribeButton: typeof SubscribeButton;
|
|
18
20
|
}> & {
|
|
19
21
|
AppField: import("@tanstack/react-form").FieldComponent<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnServer, TSubmitMeta, NoInfer<{
|
|
22
|
+
readonly Autocomplete: typeof Autocomplete;
|
|
20
23
|
readonly TextField: typeof TextField;
|
|
21
24
|
readonly Checkbox: typeof Checkbox;
|
|
22
25
|
readonly Select: typeof Select;
|
|
@@ -24,6 +27,7 @@ export declare const useAppForm: <TFormData, TOnMount extends import("@tanstack/
|
|
|
24
27
|
readonly RadioGroup: typeof RadioGroup;
|
|
25
28
|
readonly DatePicker: typeof DatePicker;
|
|
26
29
|
readonly TimePicker: typeof TimePicker;
|
|
30
|
+
readonly SubscribeAutocomplete: typeof SubscribeAutocomplete;
|
|
27
31
|
readonly SubscribeTextField: typeof SubscribeTextField;
|
|
28
32
|
readonly SubscribeSelect: typeof SubscribeSelect;
|
|
29
33
|
readonly SubscribeMultiSelect: typeof SubscribeMultiSelect;
|
|
@@ -34,6 +38,7 @@ export declare const useAppForm: <TFormData, TOnMount extends import("@tanstack/
|
|
|
34
38
|
}>>;
|
|
35
39
|
AppForm: import("react").ComponentType<import("react").PropsWithChildren>;
|
|
36
40
|
}, withForm: <TFormData, TOnMount extends import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined, TOnChange extends import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined, TOnChangeAsync extends import("@tanstack/form-core").FormAsyncValidateOrFn<TFormData> | undefined, TOnBlur extends import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined, TOnBlurAsync extends import("@tanstack/form-core").FormAsyncValidateOrFn<TFormData> | undefined, TOnSubmit extends import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined, TOnSubmitAsync extends import("@tanstack/form-core").FormAsyncValidateOrFn<TFormData> | undefined, TOnServer extends import("@tanstack/form-core").FormAsyncValidateOrFn<TFormData> | undefined, TSubmitMeta, TRenderProps extends Record<string, unknown> = {}>({ render, props, }: import("@tanstack/react-form").WithFormProps<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnServer, TSubmitMeta, {
|
|
41
|
+
readonly Autocomplete: typeof Autocomplete;
|
|
37
42
|
readonly TextField: typeof TextField;
|
|
38
43
|
readonly Checkbox: typeof Checkbox;
|
|
39
44
|
readonly Select: typeof Select;
|
|
@@ -41,6 +46,7 @@ export declare const useAppForm: <TFormData, TOnMount extends import("@tanstack/
|
|
|
41
46
|
readonly RadioGroup: typeof RadioGroup;
|
|
42
47
|
readonly DatePicker: typeof DatePicker;
|
|
43
48
|
readonly TimePicker: typeof TimePicker;
|
|
49
|
+
readonly SubscribeAutocomplete: typeof SubscribeAutocomplete;
|
|
44
50
|
readonly SubscribeTextField: typeof SubscribeTextField;
|
|
45
51
|
readonly SubscribeSelect: typeof SubscribeSelect;
|
|
46
52
|
readonly SubscribeMultiSelect: typeof SubscribeMultiSelect;
|
|
@@ -55,6 +61,7 @@ export declare const useAppForm: <TFormData, TOnMount extends import("@tanstack/
|
|
|
55
61
|
readonly SubscribeButton: typeof SubscribeButton;
|
|
56
62
|
}> & {
|
|
57
63
|
AppField: import("@tanstack/react-form").FieldComponent<[unknown] extends [TFormData] ? any : TFormData, [import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined] extends [TOnMount] ? [TOnMount] extends [TOnMount & (import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined)] ? any : TOnMount : TOnMount, [import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined] extends [TOnChange] ? [TOnChange] extends [TOnChange & (import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined)] ? any : TOnChange : TOnChange, [import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined] extends [TOnChangeAsync] ? [TOnChangeAsync] extends [TOnChangeAsync & (import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined)] ? any : TOnChangeAsync : TOnChangeAsync, [import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined] extends [TOnBlur] ? [TOnBlur] extends [TOnBlur & (import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined)] ? any : TOnBlur : TOnBlur, [import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined] extends [TOnBlurAsync] ? [TOnBlurAsync] extends [TOnBlurAsync & (import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined)] ? any : TOnBlurAsync : TOnBlurAsync, [import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined] extends [TOnSubmit] ? [TOnSubmit] extends [TOnSubmit & (import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined)] ? any : TOnSubmit : TOnSubmit, [import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined] extends [TOnSubmitAsync] ? [TOnSubmitAsync] extends [TOnSubmitAsync & (import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined)] ? any : TOnSubmitAsync : TOnSubmitAsync, [import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined] extends [TOnServer] ? [TOnServer] extends [TOnServer & (import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined)] ? any : TOnServer : TOnServer, [unknown] extends [TSubmitMeta] ? any : TSubmitMeta, NoInfer<{
|
|
64
|
+
readonly Autocomplete: typeof Autocomplete;
|
|
58
65
|
readonly TextField: typeof TextField;
|
|
59
66
|
readonly Checkbox: typeof Checkbox;
|
|
60
67
|
readonly Select: typeof Select;
|
|
@@ -62,6 +69,7 @@ export declare const useAppForm: <TFormData, TOnMount extends import("@tanstack/
|
|
|
62
69
|
readonly RadioGroup: typeof RadioGroup;
|
|
63
70
|
readonly DatePicker: typeof DatePicker;
|
|
64
71
|
readonly TimePicker: typeof TimePicker;
|
|
72
|
+
readonly SubscribeAutocomplete: typeof SubscribeAutocomplete;
|
|
65
73
|
readonly SubscribeTextField: typeof SubscribeTextField;
|
|
66
74
|
readonly SubscribeSelect: typeof SubscribeSelect;
|
|
67
75
|
readonly SubscribeMultiSelect: typeof SubscribeMultiSelect;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formHooks.d.ts","sourceRoot":"","sources":["../../src/lib/form/formHooks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE3D,eAAO,MAAQ,UAAU
|
|
1
|
+
{"version":3,"file":"formHooks.d.ts","sourceRoot":"","sources":["../../src/lib/form/formHooks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE3D,eAAO,MAAQ,UAAU;;;;;;;;;;;;;;;;;;;;;;GAAE,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAsBjC,CAAA"}
|
package/dist/form/formHooks.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { createFormHook } from '@tanstack/react-form';
|
|
2
|
+
import { Autocomplete } from './Autocomplete';
|
|
2
3
|
import { TextField } from './TextField';
|
|
3
4
|
import { Checkbox } from './Checkbox';
|
|
4
5
|
import { Select } from './Select';
|
|
@@ -7,6 +8,7 @@ import { TimePicker } from './TimePicker';
|
|
|
7
8
|
import { fieldContext, formContext } from './formContext';
|
|
8
9
|
import { SubscribeButton } from './SubscribeButton';
|
|
9
10
|
import { MultiSelect } from './MultiSelect';
|
|
11
|
+
import { SubscribeAutocomplete } from './SubscribeAutocomplete';
|
|
10
12
|
import { SubscribeTextField } from './SubscribeTextField';
|
|
11
13
|
import { SubscribeSelect } from './SubscribeSelect';
|
|
12
14
|
import { SubscribeMultiSelect } from './SubscribeMultiSelect';
|
|
@@ -19,6 +21,7 @@ export const { useAppForm, withForm } = createFormHook({
|
|
|
19
21
|
fieldContext,
|
|
20
22
|
formContext,
|
|
21
23
|
fieldComponents: {
|
|
24
|
+
Autocomplete,
|
|
22
25
|
TextField,
|
|
23
26
|
Checkbox,
|
|
24
27
|
Select,
|
|
@@ -26,6 +29,7 @@ export const { useAppForm, withForm } = createFormHook({
|
|
|
26
29
|
RadioGroup,
|
|
27
30
|
DatePicker,
|
|
28
31
|
TimePicker,
|
|
32
|
+
SubscribeAutocomplete,
|
|
29
33
|
SubscribeTextField,
|
|
30
34
|
SubscribeSelect,
|
|
31
35
|
SubscribeMultiSelect,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formHooks.js","sourceRoot":"","sources":["../../src/lib/form/formHooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE3D,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;IACrD,YAAY;IACZ,WAAW;IACX,eAAe,EAAE;QACf,SAAS;QACT,QAAQ;QACR,MAAM;QACN,WAAW;QACX,UAAU;QACV,UAAU;QACV,UAAU;QACV,kBAAkB;QAClB,eAAe;QACf,oBAAoB;QACpB,iBAAiB;QACjB,mBAAmB;QACnB,mBAAmB;QACnB,mBAAmB;KACpB;IACD,cAAc,EAAE,EAAE,eAAe,EAAE;CACpC,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"formHooks.js","sourceRoot":"","sources":["../../src/lib/form/formHooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE3D,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;IACrD,YAAY;IACZ,WAAW;IACX,eAAe,EAAE;QACf,YAAY;QACZ,SAAS;QACT,QAAQ;QACR,MAAM;QACN,WAAW;QACX,UAAU;QACV,UAAU;QACV,UAAU;QACV,qBAAqB;QACrB,kBAAkB;QAClB,eAAe;QACf,oBAAoB;QACpB,iBAAiB;QACjB,mBAAmB;QACnB,mBAAmB;QACnB,mBAAmB;KACpB;IACD,cAAc,EAAE,EAAE,eAAe,EAAE;CACpC,CAAC,CAAA"}
|
package/dist/form/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { useAppForm, withForm } from './formHooks';
|
|
2
|
+
export { type AutocompleteProps } from './Autocomplete';
|
|
2
3
|
export { type CheckboxProps } from './Checkbox';
|
|
3
4
|
export { type DatePickerProps } from './DatePicker';
|
|
4
5
|
export { type MultiSelectProps } from './MultiSelect';
|
|
@@ -6,6 +7,7 @@ export { type RadioGroupProps } from './RadioGroup';
|
|
|
6
7
|
export { type SelectProps } from './Select';
|
|
7
8
|
export { type TextFieldProps } from './TextField';
|
|
8
9
|
export { type TimePickerProps } from './TimePicker';
|
|
10
|
+
export { type SubscribeAutocompleteProps } from './SubscribeAutocomplete';
|
|
9
11
|
export { type SubscribeCheckboxProps } from './SubscribeCheckbox';
|
|
10
12
|
export { type SubscribeDatePickerProps } from './SubscribeDatePicker';
|
|
11
13
|
export { type SubscribeMultiSelectProps } from './SubscribeMultiSelect';
|
package/dist/form/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/form/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AACjE,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AACrE,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,wBAAwB,CAAA;AACvE,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AACrE,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/form/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,yBAAyB,CAAA;AACzE,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AACjE,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AACrE,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,wBAAwB,CAAA;AACvE,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AACrE,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAA"}
|