@cwncollab-org/mui-component-kit 0.0.9 → 0.1.1

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 CHANGED
@@ -272,7 +272,7 @@ export default function ExampleDialog2({
272
272
  ### Form Example with Zod Validation
273
273
 
274
274
  ```tsx
275
- import { Box, Button, Paper, Stack, Typography } from '@mui/material'
275
+ import { Box, Button, Paper, Stack, Typography, Radio, FormControlLabel } from '@mui/material'
276
276
  import { useAppForm } from '@cwncollab-org/component-kit'
277
277
  import { useState } from 'react'
278
278
  import { z } from 'zod'
@@ -293,6 +293,8 @@ const formSchema = z.object({
293
293
  .refine(val => val === true, 'You must subscribe to continue'),
294
294
  role: z.string()
295
295
  .min(1, 'Please select a role'),
296
+ priority: z.enum(['low', 'medium', 'high'])
297
+ .refine(val => val !== undefined, 'Please select a priority'),
296
298
  birthDate: z.date()
297
299
  .min(new Date('1900-01-01'), 'Please enter a valid birth date')
298
300
  .max(new Date(), 'Birth date cannot be in the future'),
@@ -308,6 +310,7 @@ export function FormExample() {
308
310
  age: 18,
309
311
  subscribe: false,
310
312
  role: '',
313
+ priority: undefined,
311
314
  birthDate: new Date(),
312
315
  })
313
316
 
@@ -318,6 +321,7 @@ export function FormExample() {
318
321
  age: 18,
319
322
  subscribe: false,
320
323
  role: '',
324
+ priority: undefined,
321
325
  birthDate: new Date(),
322
326
  },
323
327
  onSubmit: ({ value }) => {
@@ -401,6 +405,28 @@ export function FormExample() {
401
405
  />
402
406
  )}
403
407
  />
408
+ <form.AppField
409
+ name='priority'
410
+ children={field => (
411
+ <field.RadioGroup label='Priority'>
412
+ <FormControlLabel
413
+ value='low'
414
+ control={<Radio />}
415
+ label='Low Priority'
416
+ />
417
+ <FormControlLabel
418
+ value='medium'
419
+ control={<Radio />}
420
+ label='Medium Priority'
421
+ />
422
+ <FormControlLabel
423
+ value='high'
424
+ control={<Radio />}
425
+ label='High Priority'
426
+ />
427
+ </field.RadioGroup>
428
+ )}
429
+ />
404
430
  <form.AppForm>
405
431
  <form.SubscribeButton type='submit' variant='contained'>
406
432
  Submit
@@ -489,6 +515,89 @@ function MyForm() {
489
515
  | `slotProps` | `object` | - | Props for underlying MUI components |
490
516
 
491
517
 
518
+ ### RadioGroup Component
519
+
520
+ The RadioGroup component provides radio button selection, built on top of MUI's FormControl and RadioGroup components and integrated with TanStack Form.
521
+
522
+ ```tsx
523
+ import { useAppForm } from '@cwncollab-org/component-kit'
524
+ import { Radio, FormControlLabel } from '@mui/material'
525
+ import { z } from 'zod'
526
+
527
+ // Define your form schema
528
+ const formSchema = z.object({
529
+ priority: z.enum(['low', 'medium', 'high']),
530
+ })
531
+
532
+ // Define your options
533
+ const priorities = [
534
+ { value: 'low', label: 'Low Priority' },
535
+ { value: 'medium', label: 'Medium Priority' },
536
+ { value: 'high', label: 'High Priority' },
537
+ ]
538
+
539
+ function MyForm() {
540
+ const form = useAppForm({
541
+ defaultValues: {
542
+ priority: undefined,
543
+ },
544
+ validators: {
545
+ onSubmit: formSchema,
546
+ },
547
+ onSubmit: ({ value }) => {
548
+ console.log('Selected priority:', value.priority)
549
+ },
550
+ })
551
+
552
+ return (
553
+ <form.AppField
554
+ name="priority"
555
+ children={field => (
556
+ <field.RadioGroup label="Priority">
557
+ {priorities.map(priority => (
558
+ <FormControlLabel
559
+ key={priority.value}
560
+ value={priority.value}
561
+ control={<Radio />}
562
+ label={priority.label}
563
+ />
564
+ ))}
565
+ </field.RadioGroup>
566
+ )}
567
+ />
568
+
569
+ // Alternative: You can also use SubscribeRadioGroup which automatically
570
+ // disables the radio group when the form is submitting
571
+ <form.AppField
572
+ name="priority"
573
+ children={field => (
574
+ <field.SubscribeRadioGroup label="Priority">
575
+ {priorities.map(priority => (
576
+ <FormControlLabel
577
+ key={priority.value}
578
+ value={priority.value}
579
+ control={<Radio />}
580
+ label={priority.label}
581
+ />
582
+ ))}
583
+ </field.SubscribeRadioGroup>
584
+ )}
585
+ />
586
+ )
587
+ }
588
+ ```
589
+
590
+ #### RadioGroup Props
591
+
592
+ | Prop | Type | Default | Description |
593
+ |------|------|---------|-------------|
594
+ | `label` | `string` | - | The label text for the radio group |
595
+ | `disabled` | `boolean` | `false` | Whether the radio group is disabled |
596
+ | `children` | `ReactNode` | - | Radio buttons (typically FormControlLabel components) |
597
+
598
+ The RadioGroup component also accepts all standard MUI RadioGroup props except `name`, `value`, and `defaultValue` which are managed by the form field.
599
+
600
+
492
601
  ### Common Dialog Patterns
493
602
 
494
603
  Here are some common dialog patterns you can implement using the component kit:
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../src/lib/form/DatePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,IAAI,kBAAkB,EACtC,MAAM,gCAAgC,CAAA;AAOvC,MAAM,MAAM,eAAe,GAAG,IAAI,CAChC,kBAAkB,EAClB,MAAM,GAAG,OAAO,GAAG,cAAc,CAClC,GAAG;IACF,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAA;IACzB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,2CAsChD"}
1
+ {"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../src/lib/form/DatePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,IAAI,kBAAkB,EACtC,MAAM,gCAAgC,CAAA;AAOvC,MAAM,MAAM,eAAe,GAAG,IAAI,CAChC,kBAAkB,EAClB,MAAM,GAAG,OAAO,GAAG,cAAc,CAClC,GAAG;IACF,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAA;IACzB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,2CA+ChD"}
@@ -12,7 +12,7 @@ export function DatePicker(props) {
12
12
  return null;
13
13
  return field.state.meta.errors.map(error => error.message).join(', ');
14
14
  }, [field.state.meta.errors]);
15
- const { required, labelShrink, size, fullWidth, onChange, ...rest } = props;
15
+ const { required, labelShrink, size, fullWidth, onChange, slotProps, ...rest } = props;
16
16
  return (_jsx(LocalizationProvider, { dateAdapter: AdapterDayjs, children: _jsx(MuiDatePicker, { ...rest, name: field.name, value: field.state.value ? dayjs(field.state.value) : null, onChange: (value, context) => {
17
17
  if (value) {
18
18
  onChange?.(value, context);
@@ -29,6 +29,7 @@ export function DatePicker(props) {
29
29
  InputProps: {
30
30
  notched: labelShrink,
31
31
  },
32
+ ...slotProps?.textField,
32
33
  },
33
34
  } }) }));
34
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.js","sourceRoot":"","sources":["../../src/lib/form/DatePicker.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,UAAU,IAAI,aAAa,GAE5B,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAY/B,MAAM,UAAU,UAAU,CAAC,KAAsB;IAC/C,MAAM,KAAK,GAAG,eAAe,EAAiB,CAAA;IAE9C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE;QAC7B,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAA;QACrD,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACvE,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IAE7B,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAA;IAE3E,OAAO,CACL,KAAC,oBAAoB,IAAC,WAAW,EAAE,YAAY,YAC7C,KAAC,aAAa,OACR,IAAI,EACR,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAC1D,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;gBAC3B,IAAI,KAAK,EAAE,CAAC;oBACV,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;oBAC1B,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;gBACpC,CAAC;YACH,CAAC,EACD,SAAS,EAAE;gBACT,SAAS,EAAE;oBACT,QAAQ,EAAE,QAAQ;oBAClB,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC;oBACzB,UAAU,EAAE,SAAS;oBACrB,eAAe,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE;oBACxC,IAAI,EAAE,IAAI;oBACV,SAAS,EAAE,SAAS;oBACpB,UAAU,EAAE;wBACV,OAAO,EAAE,WAAW;qBACrB;iBACF;aACF,GACD,GACmB,CACxB,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"DatePicker.js","sourceRoot":"","sources":["../../src/lib/form/DatePicker.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,UAAU,IAAI,aAAa,GAE5B,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAY/B,MAAM,UAAU,UAAU,CAAC,KAAsB;IAC/C,MAAM,KAAK,GAAG,eAAe,EAAiB,CAAA;IAE9C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE;QAC7B,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAA;QACrD,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACvE,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IAE7B,MAAM,EACJ,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACR,GAAG,KAAK,CAAA;IAET,OAAO,CACL,KAAC,oBAAoB,IAAC,WAAW,EAAE,YAAY,YAC7C,KAAC,aAAa,OACR,IAAI,EACR,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAC1D,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;gBAC3B,IAAI,KAAK,EAAE,CAAC;oBACV,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;oBAC1B,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;gBACpC,CAAC;YACH,CAAC,EACD,SAAS,EAAE;gBACT,SAAS,EAAE;oBACT,QAAQ,EAAE,QAAQ;oBAClB,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC;oBACzB,UAAU,EAAE,SAAS;oBACrB,eAAe,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE;oBACxC,IAAI,EAAE,IAAI;oBACV,SAAS,EAAE,SAAS;oBACpB,UAAU,EAAE;wBACV,OAAO,EAAE,WAAW;qBACrB;oBACD,GAAI,SAAS,EAAE,SAAiB;iBACjC;aACF,GACD,GACmB,CACxB,CAAA;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { RadioGroupProps as MuiRadioGroupProps } from '@mui/material';
2
+ export type RadioGroupProps = Omit<MuiRadioGroupProps, 'name' | 'value' | 'defaultValue'> & {
3
+ label?: string;
4
+ disabled?: boolean;
5
+ };
6
+ export declare function RadioGroup(props: RadioGroupProps): import("react/jsx-runtime").JSX.Element;
7
+ //# sourceMappingURL=RadioGroup.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,16 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { FormControl, FormLabel, RadioGroup as MuiRadioGroup, } from '@mui/material';
3
+ import { useFieldContext } from './formContext';
4
+ import { useId } from 'react';
5
+ export function RadioGroup(props) {
6
+ const { label, children, disabled, ...radioGroupProps } = props;
7
+ const field = useFieldContext();
8
+ const id = useId();
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 => {
11
+ if (!ev.defaultPrevented) {
12
+ field.handleChange(ev.target.value === '' ? null : ev.target.value);
13
+ }
14
+ }, ...radioGroupProps, children: children })] }));
15
+ }
16
+ //# sourceMappingURL=RadioGroup.js.map
@@ -0,0 +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;AAU7B,MAAM,UAAU,UAAU,CAAC,KAAsB;IAC/C,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,eAAe,EAAE,GAAG,KAAK,CAAA;IAE/D,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,aAC7B,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 { RadioGroupProps } from './RadioGroup';
2
+ export type SubscribeRadioGroupProps = RadioGroupProps;
3
+ export declare function SubscribeRadioGroup(props: SubscribeRadioGroupProps): import("react/jsx-runtime").JSX.Element;
4
+ //# sourceMappingURL=SubscribeRadioGroup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SubscribeRadioGroup.d.ts","sourceRoot":"","sources":["../../src/lib/form/SubscribeRadioGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,eAAe,EAAE,MAAM,cAAc,CAAA;AAG1D,MAAM,MAAM,wBAAwB,GAAG,eAAe,CAAA;AAEtD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,2CAYlE"}
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { RadioGroup } from './RadioGroup';
3
+ import { useFormContext } from './formContext';
4
+ export function SubscribeRadioGroup(props) {
5
+ const form = useFormContext();
6
+ const { disabled, ...rest } = props;
7
+ return (_jsx(form.Subscribe, { selector: state => state.isSubmitting, children: isSubmitting => (_jsx(RadioGroup, { disabled: isSubmitting || disabled, ...rest })) }));
8
+ }
9
+ //# sourceMappingURL=SubscribeRadioGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SubscribeRadioGroup.js","sourceRoot":"","sources":["../../src/lib/form/SubscribeRadioGroup.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAmB,MAAM,cAAc,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAI9C,MAAM,UAAU,mBAAmB,CAAC,KAA+B;IACjE,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,UAAU,IAAC,QAAQ,EAAE,YAAY,IAAI,QAAQ,KAAM,IAAI,GAAI,CAC7D,GACc,CAClB,CAAA;AACH,CAAC"}
@@ -11,6 +11,8 @@ import { SubscribeMultiSelect } from './SubscribeMultiSelect';
11
11
  import { SubscribeCheckbox } from './SubscribeCheckbox';
12
12
  import { SubscribeDatePicker } from './SubscribeDatePicker';
13
13
  import { SubscribeTimePicker } from './SubscribeTimePicker';
14
+ import { RadioGroup } from './RadioGroup';
15
+ import { SubscribeRadioGroup } from './SubscribeRadioGroup';
14
16
  export declare const useAppForm: <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>(props: import("@tanstack/form-core").FormOptions<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnServer, TSubmitMeta>) => import("@tanstack/form-core").FormApi<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnServer, TSubmitMeta> & import("@tanstack/react-form").ReactFormApi<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnServer, TSubmitMeta> & NoInfer<{
15
17
  readonly SubscribeButton: typeof SubscribeButton;
16
18
  }> & {
@@ -19,6 +21,7 @@ export declare const useAppForm: <TFormData, TOnMount extends import("@tanstack/
19
21
  readonly Checkbox: typeof Checkbox;
20
22
  readonly Select: typeof Select;
21
23
  readonly MultiSelect: typeof MultiSelect;
24
+ readonly RadioGroup: typeof RadioGroup;
22
25
  readonly DatePicker: typeof DatePicker;
23
26
  readonly TimePicker: typeof TimePicker;
24
27
  readonly SubscribeTextField: typeof SubscribeTextField;
@@ -27,6 +30,7 @@ export declare const useAppForm: <TFormData, TOnMount extends import("@tanstack/
27
30
  readonly SubscribeCheckbox: typeof SubscribeCheckbox;
28
31
  readonly SubscribeDatePicker: typeof SubscribeDatePicker;
29
32
  readonly SubscribeTimePicker: typeof SubscribeTimePicker;
33
+ readonly SubscribeRadioGroup: typeof SubscribeRadioGroup;
30
34
  }>>;
31
35
  AppForm: import("react").ComponentType<import("react").PropsWithChildren>;
32
36
  }, 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, {
@@ -34,6 +38,7 @@ export declare const useAppForm: <TFormData, TOnMount extends import("@tanstack/
34
38
  readonly Checkbox: typeof Checkbox;
35
39
  readonly Select: typeof Select;
36
40
  readonly MultiSelect: typeof MultiSelect;
41
+ readonly RadioGroup: typeof RadioGroup;
37
42
  readonly DatePicker: typeof DatePicker;
38
43
  readonly TimePicker: typeof TimePicker;
39
44
  readonly SubscribeTextField: typeof SubscribeTextField;
@@ -42,6 +47,7 @@ export declare const useAppForm: <TFormData, TOnMount extends import("@tanstack/
42
47
  readonly SubscribeCheckbox: typeof SubscribeCheckbox;
43
48
  readonly SubscribeDatePicker: typeof SubscribeDatePicker;
44
49
  readonly SubscribeTimePicker: typeof SubscribeTimePicker;
50
+ readonly SubscribeRadioGroup: typeof SubscribeRadioGroup;
45
51
  }, {
46
52
  readonly SubscribeButton: typeof SubscribeButton;
47
53
  }, TRenderProps>) => (props: import("react").PropsWithChildren<NoInfer<[unknown] extends [TRenderProps] ? any : TRenderProps> & {
@@ -53,6 +59,7 @@ export declare const useAppForm: <TFormData, TOnMount extends import("@tanstack/
53
59
  readonly Checkbox: typeof Checkbox;
54
60
  readonly Select: typeof Select;
55
61
  readonly MultiSelect: typeof MultiSelect;
62
+ readonly RadioGroup: typeof RadioGroup;
56
63
  readonly DatePicker: typeof DatePicker;
57
64
  readonly TimePicker: typeof TimePicker;
58
65
  readonly SubscribeTextField: typeof SubscribeTextField;
@@ -61,6 +68,7 @@ export declare const useAppForm: <TFormData, TOnMount extends import("@tanstack/
61
68
  readonly SubscribeCheckbox: typeof SubscribeCheckbox;
62
69
  readonly SubscribeDatePicker: typeof SubscribeDatePicker;
63
70
  readonly SubscribeTimePicker: typeof SubscribeTimePicker;
71
+ readonly SubscribeRadioGroup: typeof SubscribeRadioGroup;
64
72
  }>>;
65
73
  AppForm: import("react").ComponentType<import("react").PropsWithChildren>;
66
74
  };
@@ -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;AAE3D,eAAO,MAAQ,UAAU;;;;;;;;;;;;;;;;;;GAAE,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAkBjC,CAAA"}
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;;;;;;;;;;;;;;;;;;;;GAAE,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAoBjC,CAAA"}
@@ -13,6 +13,8 @@ import { SubscribeMultiSelect } from './SubscribeMultiSelect';
13
13
  import { SubscribeCheckbox } from './SubscribeCheckbox';
14
14
  import { SubscribeDatePicker } from './SubscribeDatePicker';
15
15
  import { SubscribeTimePicker } from './SubscribeTimePicker';
16
+ import { RadioGroup } from './RadioGroup';
17
+ import { SubscribeRadioGroup } from './SubscribeRadioGroup';
16
18
  export const { useAppForm, withForm } = createFormHook({
17
19
  fieldContext,
18
20
  formContext,
@@ -21,6 +23,7 @@ export const { useAppForm, withForm } = createFormHook({
21
23
  Checkbox,
22
24
  Select,
23
25
  MultiSelect,
26
+ RadioGroup,
24
27
  DatePicker,
25
28
  TimePicker,
26
29
  SubscribeTextField,
@@ -29,6 +32,7 @@ export const { useAppForm, withForm } = createFormHook({
29
32
  SubscribeCheckbox,
30
33
  SubscribeDatePicker,
31
34
  SubscribeTimePicker,
35
+ SubscribeRadioGroup,
32
36
  },
33
37
  formComponents: { SubscribeButton },
34
38
  });
@@ -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;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,kBAAkB;QAClB,eAAe;QACf,oBAAoB;QACpB,iBAAiB;QACjB,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,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"}
@@ -2,12 +2,14 @@ export { useAppForm, withForm } from './formHooks';
2
2
  export { type CheckboxProps } from './Checkbox';
3
3
  export { type DatePickerProps } from './DatePicker';
4
4
  export { type MultiSelectProps } from './MultiSelect';
5
+ export { type RadioGroupProps } from './RadioGroup';
5
6
  export { type SelectProps } from './Select';
6
7
  export { type TextFieldProps } from './TextField';
7
8
  export { type TimePickerProps } from './TimePicker';
8
9
  export { type SubscribeCheckboxProps } from './SubscribeCheckbox';
9
10
  export { type SubscribeDatePickerProps } from './SubscribeDatePicker';
10
11
  export { type SubscribeMultiSelectProps } from './SubscribeMultiSelect';
12
+ export { type SubscribeRadioGroupProps } from './SubscribeRadioGroup';
11
13
  export { type SubscribeSelectProps } from './SubscribeSelect';
12
14
  export { type SubscribeTextFieldProps } from './SubscribeTextField';
13
15
  export { type SubscribeTimePickerProps } from './SubscribeTimePicker';
@@ -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,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,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,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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cwncollab-org/mui-component-kit",
3
3
  "private": false,
4
- "version": "0.0.9",
4
+ "version": "0.1.1",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "module": "./dist/index.js",