@cwncollab-org/mui-component-kit 0.1.0 → 0.2.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.
@@ -1,7 +1,7 @@
1
1
  import { DatePickerProps as MuiDatePickerProps } from '@mui/x-date-pickers/DatePicker';
2
2
  export type DatePickerProps = Omit<MuiDatePickerProps, 'name' | 'value' | 'defaultValue'> & {
3
3
  required?: boolean;
4
- labelShrink?: boolean;
4
+ labelBehavior?: 'auto' | 'shrink' | 'static';
5
5
  size?: 'small' | 'medium';
6
6
  fullWidth?: boolean;
7
7
  };
@@ -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;AAWvC,MAAM,MAAM,eAAe,GAAG,IAAI,CAChC,kBAAkB,EAClB,MAAM,GAAG,OAAO,GAAG,cAAc,CAClC,GAAG;IACF,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAA;IAC5C,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAA;IACzB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,2CA4EhD"}
@@ -2,7 +2,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { DatePicker as MuiDatePicker, } from '@mui/x-date-pickers/DatePicker';
3
3
  import { useFieldContext } from './formContext';
4
4
  import dayjs from 'dayjs';
5
- import { LocalizationProvider } from '@mui/x-date-pickers';
5
+ import { LocalizationProvider, } from '@mui/x-date-pickers';
6
6
  import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
7
7
  import { useMemo } from 'react';
8
8
  export function DatePicker(props) {
@@ -12,7 +12,34 @@ 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, labelBehavior = 'auto', size, fullWidth, onChange, slotProps, ...rest } = props;
16
+ const labelShrink = labelBehavior === 'shrink' ? true : undefined;
17
+ let inputLabelProps = {
18
+ shrink: labelShrink,
19
+ };
20
+ let inputProps = {
21
+ notched: labelShrink,
22
+ };
23
+ if (labelBehavior === 'static') {
24
+ inputLabelProps = {
25
+ ...inputLabelProps,
26
+ shrink: true,
27
+ sx: {
28
+ position: 'relative',
29
+ transform: 'none',
30
+ },
31
+ };
32
+ inputProps = {
33
+ ...inputProps,
34
+ notched: true,
35
+ sx: {
36
+ ...props?.sx,
37
+ '& legend > span': {
38
+ display: 'none',
39
+ },
40
+ },
41
+ };
42
+ }
16
43
  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
44
  if (value) {
18
45
  onChange?.(value, context);
@@ -23,12 +50,11 @@ export function DatePicker(props) {
23
50
  required: required,
24
51
  error: Boolean(errorText),
25
52
  helperText: errorText,
26
- InputLabelProps: { shrink: labelShrink },
27
53
  size: size,
28
54
  fullWidth: fullWidth,
29
- InputProps: {
30
- notched: labelShrink,
31
- },
55
+ InputLabelProps: inputLabelProps,
56
+ InputProps: inputProps,
57
+ ...slotProps?.textField,
32
58
  },
33
59
  } }) }));
34
60
  }
@@ -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,EACL,oBAAoB,GAErB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAa/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,aAAa,GAAG,MAAM,EACtB,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACR,GAAG,KAAK,CAAA;IAET,MAAM,WAAW,GAAG,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;IAEjE,IAAI,eAAe,GAA6B;QAC9C,MAAM,EAAE,WAAW;KACpB,CAAA;IAED,IAAI,UAAU,GAAuC;QACnD,OAAO,EAAE,WAAW;KACrB,CAAA;IAED,IAAI,aAAa,KAAK,QAAQ,EAAE,CAAC;QAC/B,eAAe,GAAG;YAChB,GAAG,eAAe;YAClB,MAAM,EAAE,IAAI;YACZ,EAAE,EAAE;gBACF,QAAQ,EAAE,UAAU;gBACpB,SAAS,EAAE,MAAM;aAClB;SACF,CAAA;QACD,UAAU,GAAG;YACX,GAAG,UAAU;YACb,OAAO,EAAE,IAAI;YACb,EAAE,EAAE;gBACF,GAAG,KAAK,EAAE,EAAE;gBACZ,iBAAiB,EAAE;oBACjB,OAAO,EAAE,MAAM;iBAChB;aACF;SACF,CAAA;IACH,CAAC;IAED,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,IAAI,EAAE,IAAI;oBACV,SAAS,EAAE,SAAS;oBACpB,eAAe,EAAE,eAAe;oBAChC,UAAU,EAAE,UAAU;oBACtB,GAAI,SAAS,EAAE,SAAiB;iBACjC;aACF,GACD,GACmB,CACxB,CAAA;AACH,CAAC"}
@@ -6,7 +6,7 @@ type Option = {
6
6
  type SortBy = 'label' | 'value' | false;
7
7
  export type MultiSelectProps = MuiFormControlProps & {
8
8
  label?: string;
9
- labelShrink?: boolean;
9
+ labelBehavior?: 'auto' | 'shrink' | 'static';
10
10
  size?: 'small' | 'medium';
11
11
  fullWidth?: boolean;
12
12
  options?: Option[] | string[];
@@ -1 +1 @@
1
- {"version":3,"file":"MultiSelect.d.ts","sourceRoot":"","sources":["../../src/lib/form/MultiSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,IAAI,mBAAmB,EAEvC,eAAe,IAAI,kBAAkB,EAErC,WAAW,IAAI,cAAc,EAE7B,mBAAmB,IAAI,sBAAsB,EAK9C,MAAM,eAAe,CAAA;AAItB,KAAK,MAAM,GAAG;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,KAAK,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,CAAA;AAEvC,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,GAAG;IACnD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAA;IACzB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAA;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE;QACV,UAAU,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAA;QAC3C,MAAM,CAAC,EAAE,IAAI,CACX,cAAc,EACd,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,cAAc,CAClE,CAAA;QACD,UAAU,CAAC,EAAE,sBAAsB,CAAA;KACpC,CAAA;IACD,QAAQ,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAA;CACtC,CAAA;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,2CA2GlD"}
1
+ {"version":3,"file":"MultiSelect.d.ts","sourceRoot":"","sources":["../../src/lib/form/MultiSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,IAAI,mBAAmB,EAEvC,eAAe,IAAI,kBAAkB,EAErC,WAAW,IAAI,cAAc,EAE7B,mBAAmB,IAAI,sBAAsB,EAK9C,MAAM,eAAe,CAAA;AAItB,KAAK,MAAM,GAAG;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,KAAK,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,CAAA;AAEvC,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,GAAG;IACnD,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,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE;QACV,UAAU,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAA;QAC3C,MAAM,CAAC,EAAE,IAAI,CACX,cAAc,EACd,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,cAAc,CAClE,CAAA;QACD,UAAU,CAAC,EAAE,sBAAsB,CAAA;KACpC,CAAA;IACD,QAAQ,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAA;CACtC,CAAA;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,2CA0IlD"}
@@ -4,7 +4,7 @@ import { useFieldContext } from './formContext';
4
4
  import { useId, useMemo } from 'react';
5
5
  export function MultiSelect(props) {
6
6
  const field = useFieldContext();
7
- const { children, slotProps, options, labelShrink, size, fullWidth, sortSelected = false, onChange, ...rest } = props;
7
+ const { children, slotProps, options, labelBehavior = 'auto', size, fullWidth, sortSelected = false, onChange, ...rest } = props;
8
8
  const id = useId();
9
9
  const labelId = `${id}-label`;
10
10
  const selectId = `${id}-select`;
@@ -35,16 +35,44 @@ export function MultiSelect(props) {
35
35
  })
36
36
  .map(option => option.value);
37
37
  }, [field.state.value, renderedOptions, sortSelected]);
38
- return (_jsxs(MuiFormControl, { error: Boolean(errorText), fullWidth: fullWidth, size: size, ...rest, children: [_jsx(MuiInputLabel, { id: labelId, ...slotProps?.inputLabel, shrink: labelShrink, children: props.label }), _jsxs(MuiSelect, { id: selectId, labelId: labelId, notched: labelShrink, multiple: true, value: getSortedSelectedValues, onChange: (ev, child) => {
38
+ const labelShrink = labelBehavior === 'shrink' ? true : undefined;
39
+ let inputLabelProps = {
40
+ ...slotProps?.inputLabel,
41
+ shrink: labelShrink,
42
+ };
43
+ let selectProps = {
44
+ ...slotProps?.select,
45
+ input: _jsx(OutlinedInput, { label: props.label }),
46
+ renderValue: (selected) => {
47
+ const selectedValues = selected;
48
+ return selectedValues
49
+ .map(value => renderedOptions.find(opt => opt.value === value)?.label || value)
50
+ .join(', ');
51
+ },
52
+ };
53
+ if (labelBehavior === 'static') {
54
+ inputLabelProps = {
55
+ ...inputLabelProps,
56
+ sx: {
57
+ ...inputLabelProps?.sx,
58
+ position: 'relative',
59
+ transform: 'none',
60
+ },
61
+ };
62
+ selectProps = {
63
+ ...selectProps,
64
+ input: (_jsx(OutlinedInput, { label: props.label, notched: true, sx: {
65
+ '& legend > span': {
66
+ display: 'none',
67
+ },
68
+ } })),
69
+ };
70
+ }
71
+ return (_jsxs(MuiFormControl, { error: Boolean(errorText), fullWidth: fullWidth, size: size, ...rest, children: [_jsx(MuiInputLabel, { id: labelId, ...inputLabelProps, children: props.label }), _jsxs(MuiSelect, { id: selectId, labelId: labelId, multiple: true, value: getSortedSelectedValues, onChange: (ev, child) => {
39
72
  onChange?.(ev, child);
40
73
  if (!ev.defaultPrevented) {
41
74
  field.handleChange(ev.target.value);
42
75
  }
43
- }, input: _jsx(OutlinedInput, { label: props.label }), renderValue: selected => {
44
- const selectedValues = selected;
45
- return selectedValues
46
- .map(value => renderedOptions.find(opt => opt.value === value)?.label || value)
47
- .join(', ');
48
- }, ...slotProps?.select, name: field.name, children: [children, renderedOptions.map(option => (_jsxs(MenuItem, { value: option.value, children: [_jsx(Checkbox, { checked: field.state.value.includes(option.value) }), _jsx(ListItemText, { primary: option.label })] }, option.value)))] }), Boolean(errorText) && (_jsx(MuiFormHelperText, { ...slotProps?.helperText, children: errorText }))] }));
76
+ }, ...selectProps, name: field.name, children: [children, renderedOptions.map(option => (_jsxs(MenuItem, { value: option.value, children: [_jsx(Checkbox, { checked: field.state.value.includes(option.value) }), _jsx(ListItemText, { primary: option.label })] }, option.value)))] }), Boolean(errorText) && (_jsx(MuiFormHelperText, { ...slotProps?.helperText, children: errorText }))] }));
49
77
  }
50
78
  //# sourceMappingURL=MultiSelect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MultiSelect.js","sourceRoot":"","sources":["../../src/lib/form/MultiSelect.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MultiSelect.js","sourceRoot":"","sources":["../../src/lib/form/MultiSelect.tsx"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ type Option = {
5
5
  };
6
6
  export type SelectProps = MuiFormControlProps & {
7
7
  label?: string;
8
- labelShrink?: boolean;
8
+ labelBehavior?: 'auto' | 'shrink' | 'static';
9
9
  size?: 'small' | 'medium';
10
10
  fullWidth?: boolean;
11
11
  options?: Option[] | string[];
@@ -1 +1 @@
1
- {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../src/lib/form/Select.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,IAAI,mBAAmB,EAEvC,eAAe,IAAI,kBAAkB,EAErC,WAAW,IAAI,cAAc,EAE7B,mBAAmB,IAAI,sBAAsB,EAE9C,MAAM,eAAe,CAAA;AAItB,KAAK,MAAM,GAAG;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,mBAAmB,GAAG;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,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,SAAS,CAAC,EAAE;QACV,UAAU,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAA;QAC3C,MAAM,CAAC,EAAE,IAAI,CACX,cAAc,EACd,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,cAAc,CAClE,CAAA;QACD,UAAU,CAAC,EAAE,sBAAsB,CAAA;KACpC,CAAA;IACD,QAAQ,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAA;CACtC,CAAA;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,2CA4ExC"}
1
+ {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../src/lib/form/Select.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,IAAI,mBAAmB,EAEvC,eAAe,IAAI,kBAAkB,EAErC,WAAW,IAAI,cAAc,EAE7B,mBAAmB,IAAI,sBAAsB,EAE9C,MAAM,eAAe,CAAA;AAItB,KAAK,MAAM,GAAG;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,mBAAmB,GAAG;IAC9C,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,SAAS,CAAC,EAAE;QACV,UAAU,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAA;QAC3C,MAAM,CAAC,EAAE,IAAI,CACX,cAAc,EACd,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,cAAc,CAClE,CAAA;QACD,UAAU,CAAC,EAAE,sBAAsB,CAAA;KACpC,CAAA;IACD,QAAQ,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAA;CACtC,CAAA;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,2CAwGxC"}
@@ -4,7 +4,7 @@ import { useFieldContext } from './formContext';
4
4
  import { useId, useMemo } from 'react';
5
5
  export function Select(props) {
6
6
  const field = useFieldContext();
7
- const { children, slotProps, options, multiple, labelShrink, size, fullWidth, onChange, ...rest } = props;
7
+ const { children, slotProps, options, multiple, labelBehavior = 'auto', size, fullWidth, onChange, ...rest } = props;
8
8
  const id = useId();
9
9
  const labelId = `${id}-label`;
10
10
  const selectId = `${id}-select`;
@@ -19,7 +19,36 @@ export function Select(props) {
19
19
  }
20
20
  return [];
21
21
  }, [options]);
22
- return (_jsxs(MuiFormControl, { error: Boolean(errorText), fullWidth: fullWidth, size: size, ...rest, children: [_jsx(MuiInputLabel, { id: labelId, ...slotProps?.inputLabel, shrink: labelShrink, children: props.label }), _jsxs(MuiSelect, { id: selectId, labelId: labelId, notched: labelShrink, multiple: multiple, ...slotProps?.select, label: props.label, name: field.name, value: field.state.value ?? '', onChange: (ev, child) => {
22
+ const labelShrink = labelBehavior === 'shrink' ? true : undefined;
23
+ let inputLabelProps = {
24
+ ...slotProps?.inputLabel,
25
+ shrink: labelShrink,
26
+ };
27
+ let selectProps = {
28
+ ...slotProps?.select,
29
+ notched: labelShrink,
30
+ };
31
+ if (labelBehavior === 'static') {
32
+ inputLabelProps = {
33
+ ...inputLabelProps,
34
+ sx: {
35
+ ...inputLabelProps?.sx,
36
+ position: 'relative',
37
+ transform: 'none',
38
+ },
39
+ };
40
+ selectProps = {
41
+ ...selectProps,
42
+ notched: true,
43
+ sx: {
44
+ ...selectProps?.sx,
45
+ '& legend > span': {
46
+ display: 'none',
47
+ },
48
+ },
49
+ };
50
+ }
51
+ return (_jsxs(MuiFormControl, { error: Boolean(errorText), fullWidth: fullWidth, size: size, ...rest, children: [_jsx(MuiInputLabel, { id: labelId, ...inputLabelProps, children: props.label }), _jsxs(MuiSelect, { id: selectId, labelId: labelId, multiple: multiple, ...selectProps, label: props.label, name: field.name, value: field.state.value ?? '', onChange: (ev, child) => {
23
52
  onChange?.(ev, child);
24
53
  if (!ev.defaultPrevented) {
25
54
  field.handleChange(ev.target.value);
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","sourceRoot":"","sources":["../../src/lib/form/Select.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Select.js","sourceRoot":"","sources":["../../src/lib/form/Select.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { TextFieldProps as MuiTextFieldProps } from '@mui/material';
2
2
  import { InputHTMLAttributes } from 'react';
3
3
  export type TextFieldProps = Omit<MuiTextFieldProps, 'name' | 'value'> & {
4
- labelShrink?: boolean;
4
+ labelBehavior?: 'auto' | 'shrink' | 'static';
5
5
  min?: InputHTMLAttributes<HTMLInputElement>['min'];
6
6
  max?: InputHTMLAttributes<HTMLInputElement>['max'];
7
7
  maxLength?: InputHTMLAttributes<HTMLInputElement>['maxLength'];
@@ -1 +1 @@
1
- {"version":3,"file":"TextField.d.ts","sourceRoot":"","sources":["../../src/lib/form/TextField.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,IAAI,iBAAiB,EACpC,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,mBAAmB,EAAW,MAAM,OAAO,CAAA;AAEpD,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG;IACvE,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,GAAG,CAAC,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAA;IAClD,GAAG,CAAC,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAA;IAClD,SAAS,CAAC,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,WAAW,CAAC,CAAA;IAC9D,OAAO,CAAC,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAA;CAC3D,CAAA;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,2CAwD9C"}
1
+ {"version":3,"file":"TextField.d.ts","sourceRoot":"","sources":["../../src/lib/form/TextField.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,cAAc,IAAI,iBAAiB,EACpC,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,mBAAmB,EAAW,MAAM,OAAO,CAAA;AAEpD,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG;IACvE,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAA;IAC5C,GAAG,CAAC,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAA;IAClD,GAAG,CAAC,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAA;IAClD,SAAS,CAAC,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,WAAW,CAAC,CAAA;IAC9D,OAAO,CAAC,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAA;CAC3D,CAAA;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,2CAuF9C"}
@@ -3,7 +3,7 @@ import { TextField as MuiTextField, } from '@mui/material';
3
3
  import { useFieldContext } from './formContext';
4
4
  import { useMemo } from 'react';
5
5
  export function TextField(props) {
6
- const { labelShrink, min, max, maxLength, pattern, label, slotProps, onChange, helperText = '', ...rest } = props;
6
+ const { labelBehavior = 'auto', min, max, maxLength, pattern, label, slotProps, onChange, helperText = '', ...rest } = props;
7
7
  const field = useFieldContext();
8
8
  const errorText = useMemo(() => {
9
9
  if (field.state.meta.errors.length === 0)
@@ -11,6 +11,47 @@ export function TextField(props) {
11
11
  return field.state.meta.errors.map(error => error.message).join(', ');
12
12
  }, [field.state.meta.errors]);
13
13
  const error = field.state.meta.errors.length > 0;
14
+ const labelShrink = labelBehavior === 'shrink' ? true : undefined;
15
+ let inputLabelProps = {
16
+ ...slotProps?.inputLabel,
17
+ shrink: labelShrink,
18
+ sx: {
19
+ ...slotProps?.inputLabel?.sx,
20
+ },
21
+ };
22
+ let inputProps = {
23
+ ...slotProps?.input,
24
+ slotProps: {
25
+ ...slotProps?.input?.slotProps,
26
+ input: {
27
+ ...slotProps?.input?.slotProps?.input,
28
+ min: min,
29
+ max: max,
30
+ maxLength: maxLength,
31
+ pattern: pattern,
32
+ },
33
+ },
34
+ };
35
+ if (labelBehavior === 'static') {
36
+ inputLabelProps = {
37
+ ...inputLabelProps,
38
+ sx: {
39
+ ...inputLabelProps?.sx,
40
+ position: 'relative',
41
+ transform: 'none',
42
+ },
43
+ };
44
+ inputProps = {
45
+ ...inputProps,
46
+ notched: true,
47
+ sx: {
48
+ ...inputProps?.sx,
49
+ '& legend > span': {
50
+ display: 'none',
51
+ },
52
+ },
53
+ };
54
+ }
14
55
  return (_jsx(MuiTextField, { name: field.name, label: label, value: field.state.value ?? '', onBlur: field.handleBlur, onChange: ev => {
15
56
  onChange?.(ev);
16
57
  if (!ev.defaultPrevented) {
@@ -18,20 +59,8 @@ export function TextField(props) {
18
59
  }
19
60
  }, slotProps: {
20
61
  ...slotProps,
21
- inputLabel: { ...slotProps?.inputLabel, shrink: labelShrink },
22
- input: {
23
- ...slotProps?.input,
24
- slotProps: {
25
- ...slotProps?.input?.slotProps,
26
- input: {
27
- ...slotProps?.input?.slotProps?.input,
28
- min: min,
29
- max: max,
30
- maxLength: maxLength,
31
- pattern: pattern,
32
- },
33
- },
34
- },
62
+ inputLabel: inputLabelProps,
63
+ input: inputProps,
35
64
  }, error: error, helperText: error ? errorText : helperText, ...rest }));
36
65
  }
37
66
  //# sourceMappingURL=TextField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TextField.js","sourceRoot":"","sources":["../../src/lib/form/TextField.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,SAAS,IAAI,YAAY,GAE1B,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAuB,OAAO,EAAE,MAAM,OAAO,CAAA;AAUpD,MAAM,UAAU,SAAS,CAAC,KAAqB;IAC7C,MAAM,EACJ,WAAW,EACX,GAAG,EACH,GAAG,EACH,SAAS,EACT,OAAO,EACP,KAAK,EACL,SAAS,EACT,QAAQ,EACR,UAAU,GAAG,EAAE,EACf,GAAG,IAAI,EACR,GAAG,KAAK,CAAA;IACT,MAAM,KAAK,GAAG,eAAe,EAA6B,CAAA;IAE1D,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,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;IAEhD,OAAO,CACL,KAAC,YAAY,IACX,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,EAC9B,MAAM,EAAE,KAAK,CAAC,UAAU,EACxB,QAAQ,EAAE,EAAE,CAAC,EAAE;YACb,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAA;YACd,IAAI,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC;gBACzB,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;YACrE,CAAC;QACH,CAAC,EACD,SAAS,EAAE;YACT,GAAG,SAAS;YACZ,UAAU,EAAE,EAAE,GAAG,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE;YAC7D,KAAK,EAAE;gBACL,GAAG,SAAS,EAAE,KAAK;gBACnB,SAAS,EAAE;oBACT,GAAI,SAAS,EAAE,KAAa,EAAE,SAAS;oBACvC,KAAK,EAAE;wBACL,GAAI,SAAS,EAAE,KAAa,EAAE,SAAS,EAAE,KAAK;wBAC9C,GAAG,EAAE,GAAG;wBACR,GAAG,EAAE,GAAG;wBACR,SAAS,EAAE,SAAS;wBACpB,OAAO,EAAE,OAAO;qBACjB;iBACF;aACF;SACF,EACD,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,KACtC,IAAI,GACR,CACH,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"TextField.js","sourceRoot":"","sources":["../../src/lib/form/TextField.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { TimePickerProps as MuiTimePickerProps } from '@mui/x-date-pickers/TimePicker';
2
2
  export type TimePickerProps = Omit<MuiTimePickerProps, 'name' | 'value' | 'defaultValue'> & {
3
3
  required?: boolean;
4
- labelShrink?: boolean;
4
+ labelBehavior?: 'auto' | 'shrink' | 'static';
5
5
  size?: 'small' | 'medium';
6
6
  fullWidth?: boolean;
7
7
  };
@@ -1 +1 @@
1
- {"version":3,"file":"TimePicker.d.ts","sourceRoot":"","sources":["../../src/lib/form/TimePicker.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,IAAI,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AAOtF,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,2CAqChD"}
1
+ {"version":3,"file":"TimePicker.d.ts","sourceRoot":"","sources":["../../src/lib/form/TimePicker.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,IAAI,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AAWtF,MAAM,MAAM,eAAe,GAAG,IAAI,CAChC,kBAAkB,EAClB,MAAM,GAAG,OAAO,GAAG,cAAc,CAClC,GAAG;IACF,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAA;IAC5C,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAA;IACzB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,2CA4EhD"}
@@ -3,7 +3,7 @@ import { TimePicker as MuiTimePicker } from '@mui/x-date-pickers/TimePicker';
3
3
  import { useFieldContext } from './formContext';
4
4
  import dayjs from 'dayjs';
5
5
  import { useMemo } from 'react';
6
- import { LocalizationProvider } from '@mui/x-date-pickers';
6
+ import { LocalizationProvider, } from '@mui/x-date-pickers';
7
7
  import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
8
8
  export function TimePicker(props) {
9
9
  const field = useFieldContext();
@@ -12,7 +12,34 @@ export function TimePicker(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, labelBehavior = 'auto', size, fullWidth, onChange, slotProps, ...rest } = props;
16
+ const labelShrink = labelBehavior === 'shrink' ? true : undefined;
17
+ let inputLabelProps = {
18
+ shrink: labelShrink,
19
+ };
20
+ let inputProps = {
21
+ notched: labelShrink,
22
+ };
23
+ if (labelBehavior === 'static') {
24
+ inputLabelProps = {
25
+ ...inputLabelProps,
26
+ shrink: true,
27
+ sx: {
28
+ position: 'relative',
29
+ transform: 'none',
30
+ },
31
+ };
32
+ inputProps = {
33
+ ...inputProps,
34
+ notched: true,
35
+ sx: {
36
+ ...props?.sx,
37
+ '& legend > span': {
38
+ display: 'none',
39
+ },
40
+ },
41
+ };
42
+ }
16
43
  return (_jsx(LocalizationProvider, { dateAdapter: AdapterDayjs, children: _jsx(MuiTimePicker, { ...rest, name: field.name, value: field.state.value ? dayjs(field.state.value) : null, onChange: (value, context) => {
17
44
  if (value) {
18
45
  field.handleChange(value.toDate());
@@ -23,12 +50,11 @@ export function TimePicker(props) {
23
50
  required: required,
24
51
  error: Boolean(errorText),
25
52
  helperText: errorText,
26
- InputLabelProps: { shrink: labelShrink },
27
53
  size: size,
28
54
  fullWidth: fullWidth,
29
- InputProps: {
30
- notched: labelShrink,
31
- },
55
+ InputLabelProps: inputLabelProps,
56
+ InputProps: inputProps,
57
+ ...slotProps?.textField,
32
58
  },
33
59
  } }) }));
34
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TimePicker.js","sourceRoot":"","sources":["../../src/lib/form/TimePicker.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,IAAI,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAE5E,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAY/D,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;IAC3E,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,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;oBAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;gBAC5B,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":"TimePicker.js","sourceRoot":"","sources":["../../src/lib/form/TimePicker.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,IAAI,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAE5E,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EACL,oBAAoB,GAErB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAa/D,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,aAAa,GAAG,MAAM,EACtB,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACR,GAAG,KAAK,CAAA;IAET,MAAM,WAAW,GAAG,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;IAEjE,IAAI,eAAe,GAA6B;QAC9C,MAAM,EAAE,WAAW;KACpB,CAAA;IAED,IAAI,UAAU,GAAuC;QACnD,OAAO,EAAE,WAAW;KACrB,CAAA;IAED,IAAI,aAAa,KAAK,QAAQ,EAAE,CAAC;QAC/B,eAAe,GAAG;YAChB,GAAG,eAAe;YAClB,MAAM,EAAE,IAAI;YACZ,EAAE,EAAE;gBACF,QAAQ,EAAE,UAAU;gBACpB,SAAS,EAAE,MAAM;aAClB;SACF,CAAA;QACD,UAAU,GAAG;YACX,GAAG,UAAU;YACb,OAAO,EAAE,IAAI;YACb,EAAE,EAAE;gBACF,GAAG,KAAK,EAAE,EAAE;gBACZ,iBAAiB,EAAE;oBACjB,OAAO,EAAE,MAAM;iBAChB;aACF;SACF,CAAA;IACH,CAAC;IAED,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,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;oBAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;gBAC5B,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,IAAI,EAAE,IAAI;oBACV,SAAS,EAAE,SAAS;oBACpB,eAAe,EAAE,eAAe;oBAChC,UAAU,EAAE,UAAU;oBACtB,GAAI,SAAS,EAAE,SAAiB;iBACjC;aACF,GACD,GACmB,CACxB,CAAA;AACH,CAAC"}
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.1.0",
4
+ "version": "0.2.0",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "module": "./dist/index.js",