mui-fast-start 0.3.1 → 0.3.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.
Files changed (64) hide show
  1. package/README.md +403 -403
  2. package/README_KR.md +403 -403
  3. package/dist/components/Object/Select/ObjSelectRecord.d.ts +2 -1
  4. package/dist/components/Object/Select/ObjSelectRecord.d.ts.map +1 -1
  5. package/dist/components/Single/Select/SingleSelectRecord.d.ts +2 -1
  6. package/dist/components/Single/Select/SingleSelectRecord.d.ts.map +1 -1
  7. package/dist/index.js +1 -1
  8. package/dist/styles/FastStartProps.d.ts +2 -1
  9. package/dist/styles/FastStartProps.d.ts.map +1 -1
  10. package/dist/types/props.d.ts +1 -1
  11. package/dist/types/props.d.ts.map +1 -1
  12. package/dist/types/props.internal.d.ts +1 -1
  13. package/dist/types/props.internal.d.ts.map +1 -1
  14. package/dist/types/provider.d.ts +2 -1
  15. package/dist/types/provider.d.ts.map +1 -1
  16. package/examples/basic/README.md +73 -73
  17. package/examples/basic/eslint.config.js +23 -23
  18. package/examples/basic/index.html +13 -13
  19. package/examples/basic/package.json +37 -37
  20. package/examples/basic/src/App.css +4 -4
  21. package/examples/basic/src/App.tsx +28 -28
  22. package/examples/basic/src/index.css +29 -29
  23. package/examples/basic/src/main.tsx +50 -50
  24. package/examples/basic/src/pages/ObjPage.tsx +175 -175
  25. package/examples/basic/src/pages/SinglePage.tsx +137 -137
  26. package/examples/basic/tsconfig.app.json +43 -43
  27. package/examples/basic/tsconfig.json +7 -7
  28. package/examples/basic/tsconfig.node.json +40 -40
  29. package/examples/basic/vite.config.ts +28 -28
  30. package/mui-fast-start-0.1.4.tgz +0 -0
  31. package/package.json +67 -67
  32. package/src/components/Object/Checkbox/ObjCheckIcon.tsx +29 -29
  33. package/src/components/Object/Checkbox/ObjCheckbox.tsx +31 -31
  34. package/src/components/Object/Select/ObjSelectOne.tsx +33 -33
  35. package/src/components/Object/Select/ObjSelectRecord.tsx +33 -33
  36. package/src/components/Object/Textfield/ObjNumber.tsx +51 -51
  37. package/src/components/Object/Textfield/ObjText.tsx +29 -29
  38. package/src/components/Single/Checkbox/SingleCheckIcon.tsx +27 -27
  39. package/src/components/Single/Checkbox/SingleCheckbox.tsx +33 -33
  40. package/src/components/Single/Select/BaseSingleSelect.tsx +45 -45
  41. package/src/components/Single/Select/SingleSelectOne.tsx +56 -56
  42. package/src/components/Single/Select/SingleSelectRecord.tsx +51 -51
  43. package/src/components/Single/TextField/SingleNumber.tsx +18 -18
  44. package/src/components/Single/TextField/SingleText.tsx +13 -13
  45. package/src/components/index.ts +15 -15
  46. package/src/hooks/index.ts +3 -3
  47. package/src/hooks/splits/useSplitNumberProps.ts +161 -161
  48. package/src/hooks/splits/useSplitTextProps.ts +36 -36
  49. package/src/hooks/state/useObjToSingle.ts +24 -24
  50. package/src/index.ts +7 -7
  51. package/src/styles/FastStartProps.ts +82 -81
  52. package/src/styles/FastStartProvider.tsx +25 -25
  53. package/src/types/index.ts +3 -3
  54. package/src/types/props.internal.ts +21 -21
  55. package/src/types/props.ts +81 -81
  56. package/src/types/provider.ts +72 -71
  57. package/src/types/types.ts +9 -9
  58. package/src/utils/index.ts +2 -2
  59. package/src/utils/number/calculate.ts +102 -102
  60. package/src/utils/object/error.ts +15 -15
  61. package/src/utils/object/merge.ts +47 -47
  62. package/tsconfig.json +34 -34
  63. package/tsconfig.lib.json +9 -9
  64. package/vite.config.ts +35 -35
@@ -1,50 +1,50 @@
1
- import {StrictMode} from 'react'
2
- import {createRoot} from 'react-dom/client'
3
- import './index.css'
4
- import App from './App.tsx'
5
- import {createTheme, CssBaseline} from "@mui/material";
6
- import {FastStartProvider} from "mui-fast-start";
7
- import {createMfsProps} from "../../../src/styles/FastStartProps.ts";
8
-
9
- const mfsProps = createMfsProps({
10
- Single: {
11
- MfsText: {
12
- maxLength: 255
13
- }
14
- },
15
- Object: {
16
- MfsText: {
17
- maxLength: 255
18
- }
19
- }
20
- });
21
- const theme = createTheme({
22
- components: {
23
- MuiFormControl: {
24
- defaultProps: {
25
- size: 'small',
26
- fullWidth: true
27
- }
28
- },
29
- MuiSelect: {
30
- defaultProps: {
31
- size: 'small',
32
- fullWidth: true
33
- }
34
- }
35
- }
36
- });
37
-
38
-
39
- createRoot(document.getElementById('root')!).render(
40
- <FastStartProvider
41
- defaultProps={mfsProps}
42
- theme={theme}
43
- defaultMode='dark'
44
- >
45
- <CssBaseline/>
46
- <StrictMode>
47
- <App/>
48
- </StrictMode>
49
- </FastStartProvider>
50
- )
1
+ import {StrictMode} from 'react'
2
+ import {createRoot} from 'react-dom/client'
3
+ import './index.css'
4
+ import App from './App.tsx'
5
+ import {createTheme, CssBaseline} from "@mui/material";
6
+ import {FastStartProvider} from "mui-fast-start";
7
+ import {createMfsProps} from "../../../src/styles/FastStartProps.ts";
8
+
9
+ const mfsProps = createMfsProps({
10
+ Single: {
11
+ MfsText: {
12
+ maxLength: 255
13
+ }
14
+ },
15
+ Object: {
16
+ MfsText: {
17
+ maxLength: 255
18
+ }
19
+ }
20
+ });
21
+ const theme = createTheme({
22
+ components: {
23
+ MuiFormControl: {
24
+ defaultProps: {
25
+ size: 'small',
26
+ fullWidth: true
27
+ }
28
+ },
29
+ MuiSelect: {
30
+ defaultProps: {
31
+ size: 'small',
32
+ fullWidth: true
33
+ }
34
+ }
35
+ }
36
+ });
37
+
38
+
39
+ createRoot(document.getElementById('root')!).render(
40
+ <FastStartProvider
41
+ defaultProps={mfsProps}
42
+ theme={theme}
43
+ defaultMode='dark'
44
+ >
45
+ <CssBaseline/>
46
+ <StrictMode>
47
+ <App/>
48
+ </StrictMode>
49
+ </FastStartProvider>
50
+ )
@@ -1,176 +1,176 @@
1
- import {Divider, Grid, InputAdornment, TextField} from "@mui/material";
2
- import {ObjCheckbox, ObjCheckIcon, ObjFloat, ObjInteger, ObjSelectOne, ObjSelectRecord, ObjText} from "mui-fast-start";
3
- import React, { useState } from "react";
4
-
5
- const list = ["test1", "test2", "test3", "test4", "test5"];
6
-
7
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
8
- // @ts-expect-error
9
- enum TestEnum {
10
- test = '테스트',
11
- hello = '안녕'
12
- }
13
-
14
- const TestRecord = {
15
- test: '테스트',
16
- hello: '안녕'
17
- }
18
-
19
- type TempType = {
20
- check1: boolean,
21
- check2: boolean,
22
- float: number,
23
- integer: number,
24
- text: string,
25
- }
26
-
27
- type SelectType = {
28
- item1: keyof typeof TestRecord;
29
- item2?: keyof typeof TestRecord;
30
- item3: keyof typeof TestEnum;
31
- item4?: keyof typeof TestEnum;
32
- item5: string;
33
- item6?: string;
34
- }
35
-
36
- const ObjPage = () => {
37
- const [error, setError] = useState<object>({
38
- text: '에러 메시지',
39
- });
40
- const [temp, setTemp] = useState<TempType>({
41
- check1: false,
42
- check2: false,
43
- float: 0,
44
- integer: 0,
45
- text: ''
46
- });
47
-
48
- const [select, setSelect] = useState<SelectType>({
49
- item1: 'test',
50
- item3: 'test',
51
- item5: list[0],
52
- });
53
-
54
- const handleTextChange = (e: React.ChangeEvent<HTMLInputElement>) => {
55
- setTemp({...temp, text: e.target.value});
56
- }
57
-
58
- return (
59
- <Grid container>
60
- <TextField
61
- fullWidth={true}
62
- autoComplete="off"
63
- size="small"
64
- variant="outlined"
65
- label='테스트'
66
- value={temp.text}
67
- onChange={handleTextChange}
68
- />
69
-
70
- <Grid size={12}>
71
- {JSON.stringify(temp)}
72
- </Grid>
73
-
74
- <Grid size={2}>
75
- <ObjCheckbox<TempType>
76
- label='테스트1' name='check1'
77
- get={temp} set={setTemp}
78
- />
79
- </Grid>
80
- <Grid size={2}>
81
- <ObjCheckIcon<TempType>
82
- on='on' off='off' name={"check2"}
83
- get={temp} set={setTemp}
84
- />
85
- </Grid>
86
-
87
- <Grid size={2}>
88
- <ObjFloat<TempType>
89
- label='실수형' name='float'
90
- get={temp} set={setTemp}
91
- err={error}
92
- />
93
- </Grid>
94
- <Grid size={2}>
95
- <ObjInteger<TempType>
96
- label='정수형' name='integer'
97
- get={temp} set={setTemp}
98
- err={error}
99
- />
100
- </Grid>
101
- <Grid size={2}>
102
- <ObjText<TempType>
103
- label='텍스트' name='text'
104
- get={temp} set={setTemp}
105
- err={error}
106
- startAdornment={(
107
- <InputAdornment position="start">
108
- S
109
- </InputAdornment>
110
- )}
111
- endAdornment={(
112
- <InputAdornment position="end">
113
- E
114
- </InputAdornment>
115
- )}
116
- />
117
- </Grid>
118
-
119
- <Grid size={12}>
120
- <Divider/>
121
- {JSON.stringify(select)}
122
- </Grid>
123
-
124
- <Grid size={2}>
125
- <ObjSelectRecord
126
- get={select} set={setSelect}
127
- items={TestRecord}
128
- name='item1' label='item1'
129
- />
130
- </Grid>
131
- <Grid size={2}>
132
- <ObjSelectRecord
133
- get={select} set={setSelect}
134
- items={TestRecord}
135
- name='item2' label='item2'
136
- />
137
- </Grid>
138
-
139
- <Grid size={2}>
140
- <ObjSelectRecord
141
- get={select} set={setSelect}
142
- items={TestEnum}
143
- emptyItem='빈 값' emptyValue={null}
144
- name='item3' label='item3'
145
- />
146
- </Grid>
147
- <Grid size={2}>
148
- <ObjSelectRecord
149
- get={select} set={setSelect}
150
- items={TestEnum}
151
- emptyItem='빈 값' emptyValue={null}
152
- name='item4' label='item4'
153
- />
154
- </Grid>
155
-
156
- <Grid size={2}>
157
- <ObjSelectOne
158
- emptyItem='미선택'
159
- label='item5'
160
- get={select} set={setSelect}
161
- items={list} name='item5'
162
- />
163
- </Grid>
164
- <Grid size={2}>
165
- <ObjSelectOne
166
- emptyItem='미선택'
167
- label='item6'
168
- get={select} set={setSelect}
169
- items={list} name='item6'
170
- />
171
- </Grid>
172
- </Grid>
173
- );
174
- };
175
-
1
+ import {Divider, Grid, InputAdornment, TextField} from "@mui/material";
2
+ import {ObjCheckbox, ObjCheckIcon, ObjFloat, ObjInteger, ObjSelectOne, ObjSelectRecord, ObjText} from "mui-fast-start";
3
+ import React, { useState } from "react";
4
+
5
+ const list = ["test1", "test2", "test3", "test4", "test5"];
6
+
7
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
8
+ // @ts-expect-error
9
+ enum TestEnum {
10
+ test = '테스트',
11
+ hello = '안녕'
12
+ }
13
+
14
+ const TestRecord = {
15
+ test: '테스트',
16
+ hello: '안녕'
17
+ }
18
+
19
+ type TempType = {
20
+ check1: boolean,
21
+ check2: boolean,
22
+ float: number,
23
+ integer: number,
24
+ text: string,
25
+ }
26
+
27
+ type SelectType = {
28
+ item1: keyof typeof TestRecord;
29
+ item2?: keyof typeof TestRecord;
30
+ item3: keyof typeof TestEnum;
31
+ item4?: keyof typeof TestEnum;
32
+ item5: string;
33
+ item6?: string;
34
+ }
35
+
36
+ const ObjPage = () => {
37
+ const [error, setError] = useState<object>({
38
+ text: '에러 메시지',
39
+ });
40
+ const [temp, setTemp] = useState<TempType>({
41
+ check1: false,
42
+ check2: false,
43
+ float: 0,
44
+ integer: 0,
45
+ text: ''
46
+ });
47
+
48
+ const [select, setSelect] = useState<SelectType>({
49
+ item1: 'test',
50
+ item3: 'test',
51
+ item5: list[0],
52
+ });
53
+
54
+ const handleTextChange = (e: React.ChangeEvent<HTMLInputElement>) => {
55
+ setTemp({...temp, text: e.target.value});
56
+ }
57
+
58
+ return (
59
+ <Grid container>
60
+ <TextField
61
+ fullWidth={true}
62
+ autoComplete="off"
63
+ size="small"
64
+ variant="outlined"
65
+ label='테스트'
66
+ value={temp.text}
67
+ onChange={handleTextChange}
68
+ />
69
+
70
+ <Grid size={12}>
71
+ {JSON.stringify(temp)}
72
+ </Grid>
73
+
74
+ <Grid size={2}>
75
+ <ObjCheckbox<TempType>
76
+ label='테스트1' name='check1'
77
+ get={temp} set={setTemp}
78
+ />
79
+ </Grid>
80
+ <Grid size={2}>
81
+ <ObjCheckIcon<TempType>
82
+ on='on' off='off' name={"check2"}
83
+ get={temp} set={setTemp}
84
+ />
85
+ </Grid>
86
+
87
+ <Grid size={2}>
88
+ <ObjFloat<TempType>
89
+ label='실수형' name='float'
90
+ get={temp} set={setTemp}
91
+ err={error}
92
+ />
93
+ </Grid>
94
+ <Grid size={2}>
95
+ <ObjInteger<TempType>
96
+ label='정수형' name='integer'
97
+ get={temp} set={setTemp}
98
+ err={error}
99
+ />
100
+ </Grid>
101
+ <Grid size={2}>
102
+ <ObjText<TempType>
103
+ label='텍스트' name='text'
104
+ get={temp} set={setTemp}
105
+ err={error}
106
+ startAdornment={(
107
+ <InputAdornment position="start">
108
+ S
109
+ </InputAdornment>
110
+ )}
111
+ endAdornment={(
112
+ <InputAdornment position="end">
113
+ E
114
+ </InputAdornment>
115
+ )}
116
+ />
117
+ </Grid>
118
+
119
+ <Grid size={12}>
120
+ <Divider/>
121
+ {JSON.stringify(select)}
122
+ </Grid>
123
+
124
+ <Grid size={2}>
125
+ <ObjSelectRecord
126
+ get={select} set={setSelect}
127
+ items={TestRecord}
128
+ name='item1' label='item1'
129
+ />
130
+ </Grid>
131
+ <Grid size={2}>
132
+ <ObjSelectRecord
133
+ get={select} set={setSelect}
134
+ items={TestRecord}
135
+ name='item2' label='item2'
136
+ />
137
+ </Grid>
138
+
139
+ <Grid size={2}>
140
+ <ObjSelectRecord
141
+ get={select} set={setSelect}
142
+ items={TestEnum}
143
+ emptyItem='빈 값' emptyValue={null}
144
+ name='item3' label='item3'
145
+ />
146
+ </Grid>
147
+ <Grid size={2}>
148
+ <ObjSelectRecord
149
+ get={select} set={setSelect}
150
+ items={TestEnum}
151
+ emptyItem='빈 값' emptyValue={null}
152
+ name='item4' label='item4'
153
+ />
154
+ </Grid>
155
+
156
+ <Grid size={2}>
157
+ <ObjSelectOne
158
+ emptyItem='미선택'
159
+ label='item5'
160
+ get={select} set={setSelect}
161
+ items={list} name='item5'
162
+ />
163
+ </Grid>
164
+ <Grid size={2}>
165
+ <ObjSelectOne
166
+ emptyItem='미선택'
167
+ label='item6'
168
+ get={select} set={setSelect}
169
+ items={list} name='item6'
170
+ />
171
+ </Grid>
172
+ </Grid>
173
+ );
174
+ };
175
+
176
176
  export default ObjPage;