@modernpoacher/gremlins 0.0.311 → 1.0.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/.prettierignore +4 -0
- package/babel.config.cjs +4 -1
- package/eslint.config.mjs +33 -71
- package/index.d.mts +169 -2
- package/jest.after-each.mjs +10 -0
- package/jest.before-each.mjs +10 -0
- package/jest.config.mjs +11 -1
- package/package.json +84 -29
- package/src/{components → js/components}/common/disabled/index.cjs +5 -2
- package/src/js/components/common/disabled/index.d.cts +1 -0
- package/src/js/components/common/disabled/index.jsx +11 -0
- package/src/{components → js/components}/common/readonly/index.cjs +5 -2
- package/src/js/components/common/readonly/index.d.cts +1 -0
- package/src/js/components/common/readonly/index.jsx +11 -0
- package/src/{components → js/components}/common/required/index.cjs +5 -2
- package/src/js/components/common/required/index.d.cts +1 -0
- package/src/js/components/common/required/index.jsx +11 -0
- package/src/{components → js/components}/common/text-content/index.cjs +5 -2
- package/src/js/components/common/text-content/index.d.cts +2 -0
- package/src/{components → js/components}/common/text-content/index.d.mts +1 -3
- package/src/{components → js/components}/common/text-content/index.jsx +6 -5
- package/src/{components → js/components}/field/index.cjs +10 -2
- package/src/js/components/field/index.d.cts +1 -0
- package/src/js/components/field/index.d.mts +24 -0
- package/src/js/components/field/index.jsx +98 -0
- package/src/{components → js/components}/group/index.cjs +5 -2
- package/src/js/components/group/index.d.cts +2 -0
- package/src/js/components/group/index.d.mts +9 -0
- package/src/js/components/group/index.jsx +5 -0
- package/src/js/components/index.cjs +29 -0
- package/src/js/components/index.d.cts +2 -0
- package/src/js/components/index.d.mts +2 -0
- package/src/js/components/index.mjs +8 -0
- package/src/{gremlins → js/gremlins}/checkbox/field/index.cjs +5 -2
- package/src/js/gremlins/checkbox/field/index.d.cts +2 -0
- package/src/js/gremlins/checkbox/field/index.d.mts +14 -0
- package/src/{gremlins → js/gremlins}/checkbox/field/index.jsx +21 -10
- package/src/{gremlins → js/gremlins}/checkbox/index.cjs +5 -2
- package/src/js/gremlins/checkbox/index.d.cts +2 -0
- package/src/js/gremlins/checkbox/index.d.mts +24 -0
- package/src/{gremlins → js/gremlins}/checkbox/index.jsx +31 -23
- package/src/{gremlins → js/gremlins}/email/field/index.cjs +5 -2
- package/src/js/gremlins/email/field/index.d.cts +2 -0
- package/src/js/gremlins/email/field/index.d.mts +14 -0
- package/src/js/gremlins/email/field/index.jsx +83 -0
- package/src/{gremlins → js/gremlins}/email/index.cjs +5 -2
- package/src/js/gremlins/email/index.d.cts +2 -0
- package/src/js/gremlins/email/index.d.mts +18 -0
- package/src/{gremlins → js/gremlins}/email/index.jsx +25 -12
- package/src/{gremlins → js/gremlins}/fieldset/group/index.cjs +5 -2
- package/src/js/gremlins/fieldset/group/index.d.cts +2 -0
- package/src/js/gremlins/fieldset/group/index.d.mts +12 -0
- package/src/js/gremlins/fieldset/group/index.jsx +19 -0
- package/src/{gremlins → js/gremlins}/fieldset/index.cjs +5 -2
- package/src/js/gremlins/fieldset/index.d.cts +2 -0
- package/src/js/gremlins/fieldset/index.d.mts +14 -0
- package/src/js/gremlins/fieldset/index.jsx +37 -0
- package/src/{gremlins → js/gremlins}/index.cjs +9 -4
- package/src/js/gremlins/index.d.cts +5 -0
- package/src/js/gremlins/index.d.mts +27 -0
- package/src/js/gremlins/index.jsx +162 -0
- package/src/{gremlins → js/gremlins}/number/field/index.cjs +5 -2
- package/src/js/gremlins/number/field/index.d.cts +2 -0
- package/src/js/gremlins/number/field/index.d.mts +14 -0
- package/src/{gremlins → js/gremlins}/number/field/index.jsx +40 -7
- package/src/{gremlins → js/gremlins}/number/index.cjs +5 -2
- package/src/js/gremlins/number/index.d.cts +2 -0
- package/src/js/gremlins/number/index.d.mts +18 -0
- package/src/{gremlins → js/gremlins}/number/index.jsx +25 -8
- package/src/{gremlins → js/gremlins}/password/field/index.cjs +5 -2
- package/src/js/gremlins/password/field/index.d.cts +2 -0
- package/src/js/gremlins/password/field/index.d.mts +14 -0
- package/src/js/gremlins/password/field/index.jsx +83 -0
- package/src/{gremlins → js/gremlins}/password/index.cjs +5 -2
- package/src/js/gremlins/password/index.d.cts +2 -0
- package/src/js/gremlins/password/index.d.mts +18 -0
- package/src/{gremlins → js/gremlins}/password/index.jsx +25 -12
- package/src/{gremlins → js/gremlins}/radio/field/index.cjs +5 -2
- package/src/js/gremlins/radio/field/index.d.cts +2 -0
- package/src/js/gremlins/radio/field/index.d.mts +14 -0
- package/src/{gremlins → js/gremlins}/radio/field/index.jsx +20 -9
- package/src/{gremlins → js/gremlins}/radio/index.cjs +5 -2
- package/src/js/gremlins/radio/index.d.cts +2 -0
- package/src/js/gremlins/radio/index.d.mts +24 -0
- package/src/{gremlins → js/gremlins}/radio/index.jsx +33 -17
- package/src/{gremlins → js/gremlins}/select/field/index.cjs +5 -2
- package/src/js/gremlins/select/field/index.d.cts +2 -0
- package/src/js/gremlins/select/field/index.d.mts +18 -0
- package/src/js/gremlins/select/field/index.jsx +200 -0
- package/src/{gremlins → js/gremlins}/select/index.cjs +5 -2
- package/src/js/gremlins/select/index.d.cts +2 -0
- package/src/js/gremlins/select/index.d.mts +18 -0
- package/src/{gremlins → js/gremlins}/select/index.jsx +53 -16
- package/src/{gremlins → js/gremlins}/text/field/index.cjs +5 -2
- package/src/js/gremlins/text/field/index.d.cts +2 -0
- package/src/js/gremlins/text/field/index.d.mts +14 -0
- package/src/js/gremlins/text/field/index.jsx +83 -0
- package/src/{gremlins → js/gremlins}/text/index.cjs +5 -2
- package/src/js/gremlins/text/index.d.cts +2 -0
- package/src/js/gremlins/text/index.d.mts +18 -0
- package/src/{gremlins → js/gremlins}/text/index.jsx +25 -12
- package/src/{gremlins → js/gremlins}/textarea/field/index.cjs +5 -2
- package/src/js/gremlins/textarea/field/index.d.cts +2 -0
- package/src/js/gremlins/textarea/field/index.d.mts +18 -0
- package/src/js/gremlins/textarea/field/index.jsx +81 -0
- package/src/{gremlins → js/gremlins}/textarea/index.cjs +5 -2
- package/src/js/gremlins/textarea/index.d.cts +2 -0
- package/src/js/gremlins/textarea/index.d.mts +18 -0
- package/src/{gremlins → js/gremlins}/textarea/index.jsx +25 -12
- package/src/js/super/components/field/index.cjs +20 -0
- package/src/js/super/components/field/index.d.cts +2 -0
- package/src/js/super/components/field/index.d.mts +23 -0
- package/src/{components → js/super/components}/field/index.jsx +44 -87
- package/src/js/super/components/group/index.cjs +20 -0
- package/src/js/super/components/group/index.d.cts +2 -0
- package/src/js/super/components/group/index.d.mts +18 -0
- package/src/js/super/components/group/index.jsx +59 -0
- package/src/js/super/components/index.cjs +23 -0
- package/src/js/super/components/index.d.cts +2 -0
- package/src/js/super/components/index.d.mts +2 -0
- package/src/js/super/components/index.mjs +8 -0
- package/src/js/super/gremlins/index.cjs +22 -0
- package/src/js/super/gremlins/index.d.cts +4 -0
- package/src/js/super/gremlins/index.d.mts +36 -0
- package/src/js/super/gremlins/index.jsx +176 -0
- package/src/sass/.stylelintrc +14 -0
- package/src/sass/_gremlins.scss +59 -0
- package/src/sass/gremlins/_checkbox.scss +87 -0
- package/src/sass/gremlins/_disabled.scss +15 -0
- package/src/sass/gremlins/_error.scss +48 -0
- package/src/sass/gremlins/_radio.scss +93 -0
- package/.publish/README.md +0 -20
- package/src/common/index.d.mts +0 -9
- package/src/common/index.mjs +0 -7
- package/src/components/common/disabled/index.jsx +0 -9
- package/src/components/common/readonly/index.jsx +0 -9
- package/src/components/common/required/index.jsx +0 -9
- package/src/components/field/index.d.mts +0 -23
- package/src/components/group/index.d.mts +0 -16
- package/src/components/group/index.jsx +0 -59
- package/src/gremlins/checkbox/field/index.d.mts +0 -9
- package/src/gremlins/checkbox/index.d.mts +0 -9
- package/src/gremlins/email/field/index.d.mts +0 -9
- package/src/gremlins/email/field/index.jsx +0 -54
- package/src/gremlins/email/index.d.mts +0 -9
- package/src/gremlins/fieldset/group/index.d.mts +0 -9
- package/src/gremlins/fieldset/group/index.jsx +0 -16
- package/src/gremlins/fieldset/index.d.mts +0 -9
- package/src/gremlins/fieldset/index.jsx +0 -41
- package/src/gremlins/index.d.mts +0 -45
- package/src/gremlins/index.jsx +0 -291
- package/src/gremlins/number/field/index.d.mts +0 -9
- package/src/gremlins/number/index.d.mts +0 -9
- package/src/gremlins/password/field/index.d.mts +0 -9
- package/src/gremlins/password/field/index.jsx +0 -54
- package/src/gremlins/password/index.d.mts +0 -9
- package/src/gremlins/radio/field/index.d.mts +0 -9
- package/src/gremlins/radio/index.d.mts +0 -9
- package/src/gremlins/select/field/index.d.mts +0 -9
- package/src/gremlins/select/field/index.jsx +0 -111
- package/src/gremlins/select/index.d.mts +0 -9
- package/src/gremlins/text/field/index.d.mts +0 -9
- package/src/gremlins/text/field/index.jsx +0 -54
- package/src/gremlins/text/index.d.mts +0 -9
- package/src/gremlins/textarea/field/index.d.mts +0 -9
- package/src/gremlins/textarea/field/index.jsx +0 -53
- package/src/gremlins/textarea/index.d.mts +0 -9
- /package/src/{components → js/components}/common/disabled/index.d.mts +0 -0
- /package/src/{components → js/components}/common/readonly/index.d.mts +0 -0
- /package/src/{components → js/components}/common/required/index.d.mts +0 -0
- /package/src/{index.cjs → js/index.cjs} +0 -0
- /package/src/{index.d.mts → js/index.d.mts} +0 -0
- /package/src/{index.mjs → js/index.mjs} +0 -0
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
@use "design-system/helpers/breakpoints";
|
|
2
|
+
@use "design-system/palette";
|
|
3
|
+
|
|
4
|
+
@mixin gremlin-checkbox {
|
|
5
|
+
position: relative;
|
|
6
|
+
padding-left: 3rem;
|
|
7
|
+
margin-bottom: 0.5rem;
|
|
8
|
+
min-height: 2rem;
|
|
9
|
+
|
|
10
|
+
&:last-of-type {
|
|
11
|
+
margin-bottom: 0;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
label {
|
|
15
|
+
@include breakpoints.breakpoint(mobile) {
|
|
16
|
+
padding-top: 0.375rem;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@include breakpoints.breakpoint(large-mobile) {
|
|
20
|
+
padding-top: 0.375rem;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@include breakpoints.breakpoint(small-mobile) {
|
|
24
|
+
padding-top: 0.375rem;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
label:before {
|
|
29
|
+
box-sizing: border-box;
|
|
30
|
+
position: absolute;
|
|
31
|
+
left: 0;
|
|
32
|
+
height: 2rem;
|
|
33
|
+
top: 0;
|
|
34
|
+
width: 2rem;
|
|
35
|
+
overflow: hidden;
|
|
36
|
+
border: 2px solid currentColor;
|
|
37
|
+
content: "\200b";
|
|
38
|
+
background-color: palette.$white;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
input {
|
|
42
|
+
position: absolute;
|
|
43
|
+
left: 0.5rem;
|
|
44
|
+
top: 0.5rem;
|
|
45
|
+
|
|
46
|
+
&:focus + label:before {
|
|
47
|
+
box-shadow: 0 0 0 2px palette.$outline;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
&:checked + label:after {
|
|
51
|
+
box-sizing: border-box;
|
|
52
|
+
position: absolute;
|
|
53
|
+
top: 0.625rem; // 10px;
|
|
54
|
+
bottom: 0.625rem; // 10px;
|
|
55
|
+
left: 0.3125rem; // 5px;
|
|
56
|
+
width: 1.375rem; // 22px;
|
|
57
|
+
height: 0.625rem; // 10px;
|
|
58
|
+
overflow: hidden;
|
|
59
|
+
border-bottom: 4px solid currentColor;
|
|
60
|
+
border-left: 4px solid currentColor;
|
|
61
|
+
content: "\200b";
|
|
62
|
+
background-color: palette.$white;
|
|
63
|
+
transform: rotate(-45deg);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
&.disabled {
|
|
68
|
+
input:checked + {
|
|
69
|
+
label::before {
|
|
70
|
+
border-color: palette.$disabled;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
label::after {
|
|
74
|
+
border-left-color: palette.$disabled;
|
|
75
|
+
border-bottom-color: palette.$disabled;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
input + label::before /* stylelint-disable-line no-descending-specificity */ {
|
|
80
|
+
border-color: palette.$disabled;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
%gremlin-checkbox {
|
|
86
|
+
@include gremlin-checkbox;
|
|
87
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
@use "design-system/palette";
|
|
2
|
+
@use "design-system/typography";
|
|
3
|
+
|
|
4
|
+
@mixin gremlin-disabled {
|
|
5
|
+
input:not([type="checkbox"]):not([type="radio"]),
|
|
6
|
+
select,
|
|
7
|
+
textarea {
|
|
8
|
+
border-color: palette.$disabled;
|
|
9
|
+
color: palette.$disabled;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
%gremlin-disabled {
|
|
14
|
+
@include gremlin-disabled;
|
|
15
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
@use "design-system/palette";
|
|
2
|
+
@use "design-system/typography";
|
|
3
|
+
|
|
4
|
+
@mixin gremlin-error {
|
|
5
|
+
border-left: 0.25rem solid palette.$error-standard;
|
|
6
|
+
padding: 0 1rem;
|
|
7
|
+
|
|
8
|
+
input:not([type="checkbox"]):not([type="radio"]),
|
|
9
|
+
select,
|
|
10
|
+
textarea {
|
|
11
|
+
border: 2px solid palette.$error-standard;
|
|
12
|
+
|
|
13
|
+
&:focus {
|
|
14
|
+
border-color: palette.$black;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
&.radio,
|
|
19
|
+
&.checkbox {
|
|
20
|
+
padding-left: 4rem;
|
|
21
|
+
|
|
22
|
+
input /* stylelint-disable-line no-descending-specificity */ {
|
|
23
|
+
left: 1.5rem;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
label:before /* stylelint-disable-line no-descending-specificity */ {
|
|
27
|
+
left: 1rem;
|
|
28
|
+
|
|
29
|
+
border: 2px solid palette.$error-standard;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
&.radio {
|
|
34
|
+
input:checked + label:after {
|
|
35
|
+
left: 1.5rem;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
&.checkbox {
|
|
40
|
+
input:checked + label:after {
|
|
41
|
+
left: 1.3125rem; // 21px;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
%gremlin-error {
|
|
47
|
+
@include gremlin-error;
|
|
48
|
+
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
@use "design-system/helpers/breakpoints";
|
|
2
|
+
|
|
3
|
+
@use "design-system/palette";
|
|
4
|
+
@use "design-system/typography";
|
|
5
|
+
|
|
6
|
+
@mixin gremlin-radio {
|
|
7
|
+
position: relative;
|
|
8
|
+
padding-left: 3rem;
|
|
9
|
+
margin-bottom: 0.5rem;
|
|
10
|
+
min-height: 2rem;
|
|
11
|
+
|
|
12
|
+
&:last-of-type {
|
|
13
|
+
margin-bottom: 0;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
label {
|
|
17
|
+
@include breakpoints.breakpoint(mobile) {
|
|
18
|
+
padding-top: 0.375rem;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
@include breakpoints.breakpoint(large-mobile) {
|
|
22
|
+
padding-top: 0.375rem;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
@include breakpoints.breakpoint(small-mobile) {
|
|
26
|
+
padding-top: 0.375rem;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
label:before {
|
|
31
|
+
box-sizing: border-box;
|
|
32
|
+
position: absolute;
|
|
33
|
+
left: 0;
|
|
34
|
+
height: 32px;
|
|
35
|
+
top: 0;
|
|
36
|
+
width: 32px;
|
|
37
|
+
overflow: hidden;
|
|
38
|
+
border: 2px solid currentColor;
|
|
39
|
+
border-radius: 50%;
|
|
40
|
+
content: "\200b";
|
|
41
|
+
background-color: palette.$white;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
input {
|
|
45
|
+
position: absolute;
|
|
46
|
+
left: 0.5rem;
|
|
47
|
+
top: 0.5rem;
|
|
48
|
+
|
|
49
|
+
&:focus + label:before {
|
|
50
|
+
box-shadow: 0 0 0 2px palette.$outline;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
&:checked + label:after {
|
|
54
|
+
box-sizing: border-box;
|
|
55
|
+
position: absolute;
|
|
56
|
+
top: 0.5rem;
|
|
57
|
+
bottom: 0.5rem;
|
|
58
|
+
left: 0.5rem;
|
|
59
|
+
right: 0.5rem;
|
|
60
|
+
width: 1rem;
|
|
61
|
+
height: 1rem;
|
|
62
|
+
overflow: hidden;
|
|
63
|
+
border: 2px solid currentColor;
|
|
64
|
+
border-radius: 50%;
|
|
65
|
+
content: "\200b";
|
|
66
|
+
background-color: palette.$black;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
&.disabled {
|
|
71
|
+
input + label {
|
|
72
|
+
&::before,
|
|
73
|
+
&::after {
|
|
74
|
+
border-color: palette.$disabled;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
input:checked + label {
|
|
79
|
+
&::before,
|
|
80
|
+
&::after {
|
|
81
|
+
border-color: palette.$disabled;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
&::after /* stylelint-disable-line no-descending-specificity */ {
|
|
85
|
+
background-color: palette.$disabled;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
%gremlin-radio {
|
|
92
|
+
@include gremlin-radio;
|
|
93
|
+
}
|
package/.publish/README.md
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
# Publish to NPM
|
|
2
|
-
|
|
3
|
-
For CircleCI or the shell
|
|
4
|
-
|
|
5
|
-
If you need an _authentication token_ to publish then you should resolve that before executing this script
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
echo ".publish/publish.sh" >> .npmignore
|
|
9
|
-
git clone https://github.com/modernpoacher/publish.git .publish
|
|
10
|
-
.publish/publish.sh
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
A Gist with the same content as `publish.sh` may need an additional step
|
|
14
|
-
|
|
15
|
-
```bash
|
|
16
|
-
echo ".publish/publish.sh" >> .npmignore
|
|
17
|
-
git clone https://gist.github.com/efd85e2b8da1ee830dd637f134994a9d.git .publish
|
|
18
|
-
chmod +x .publish/publish.sh
|
|
19
|
-
.publish/publish.sh
|
|
20
|
-
```
|
package/src/common/index.d.mts
DELETED
package/src/common/index.mjs
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
declare module '#gremlins/components/field' {
|
|
2
|
-
import React from 'react'
|
|
3
|
-
|
|
4
|
-
export interface FieldProps {
|
|
5
|
-
id: string
|
|
6
|
-
name: string
|
|
7
|
-
required: boolean
|
|
8
|
-
disabled: boolean
|
|
9
|
-
readOnly: boolean
|
|
10
|
-
tabIndex: number
|
|
11
|
-
accessKey: string
|
|
12
|
-
placeholder: string
|
|
13
|
-
onChange: GremlinsTypes.OnChangeType
|
|
14
|
-
fieldRef: object
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export default class Field extends React.Component<FieldProps> {}
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
declare module '@modernpoacher/gremlins/components/field' {
|
|
21
|
-
export { default } from '#gremlins/components/field'
|
|
22
|
-
export * from '#gremlins/components/field'
|
|
23
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
declare module '#gremlins/components/group' {
|
|
2
|
-
import React from 'react'
|
|
3
|
-
|
|
4
|
-
export interface GroupProps {
|
|
5
|
-
onChange: GremlinsTypes.OnChangeType
|
|
6
|
-
groupRef: object
|
|
7
|
-
children: React.JSX.Element | React.JSX.Element[]
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export default class Group extends React.Component<GroupProps> {}
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
declare module '@modernpoacher/gremlins/components/group' {
|
|
14
|
-
export { default } from '#gremlins/components/group'
|
|
15
|
-
export * from '#gremlins/components/group'
|
|
16
|
-
}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Group component
|
|
3
|
-
*
|
|
4
|
-
* @typedef {import('@modernpoacher/gremlins/components/group').GroupProps} GroupProps
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import React, { Component } from 'react'
|
|
8
|
-
import PropTypes from 'prop-types'
|
|
9
|
-
|
|
10
|
-
import {
|
|
11
|
-
DEFAULT_HANDLE_CHANGE
|
|
12
|
-
} from '#gremlins/common'
|
|
13
|
-
|
|
14
|
-
export default class Group extends Component {
|
|
15
|
-
getClassName () {
|
|
16
|
-
return 'group'
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* @param {GroupProps} props
|
|
21
|
-
* @returns {boolean}
|
|
22
|
-
*/
|
|
23
|
-
shouldComponentUpdate (props, state) {
|
|
24
|
-
return (
|
|
25
|
-
(props.onChange !== this.props.onChange) ||
|
|
26
|
-
(props.children !== this.props.children)
|
|
27
|
-
)
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
render () {
|
|
31
|
-
const {
|
|
32
|
-
onChange = DEFAULT_HANDLE_CHANGE,
|
|
33
|
-
groupRef,
|
|
34
|
-
children
|
|
35
|
-
} = this.props
|
|
36
|
-
|
|
37
|
-
return (
|
|
38
|
-
<fieldset
|
|
39
|
-
onChange={onChange}
|
|
40
|
-
className={this.getClassName()}
|
|
41
|
-
ref={groupRef}>
|
|
42
|
-
{children}
|
|
43
|
-
</fieldset>
|
|
44
|
-
)
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
Group.propTypes = {
|
|
49
|
-
onChange: PropTypes.func,
|
|
50
|
-
children: PropTypes.oneOfType([
|
|
51
|
-
PropTypes.node,
|
|
52
|
-
PropTypes.arrayOf(
|
|
53
|
-
PropTypes.node
|
|
54
|
-
)
|
|
55
|
-
]),
|
|
56
|
-
groupRef: PropTypes.shape({
|
|
57
|
-
current: PropTypes.shape().isRequired
|
|
58
|
-
})
|
|
59
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
declare module '#gremlins/gremlins/checkbox/field' {
|
|
2
|
-
import Field from '#gremlins/components/field'
|
|
3
|
-
|
|
4
|
-
export default class CheckboxField extends Field {}
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
declare module '@modernpoacher/gremlins/checkbox/field' {
|
|
8
|
-
export { default } from '#gremlins/gremlins/checkbox/field'
|
|
9
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
declare module '#gremlins/gremlins/checkbox' {
|
|
2
|
-
import { FieldGremlin as Gremlin } from '#gremlins/gremlins'
|
|
3
|
-
|
|
4
|
-
export default class CheckboxGremlin extends Gremlin {}
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
declare module '@modernpoacher/gremlins/gremlins/checkbox' {
|
|
8
|
-
export { default } from '#gremlins/gremlins/checkbox'
|
|
9
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
declare module '#gremlins/gremlins/email/field' {
|
|
2
|
-
import Field from '#gremlins/components/field'
|
|
3
|
-
|
|
4
|
-
export default class EmailField extends Field {}
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
declare module '@modernpoacher/gremlins/email/field' {
|
|
8
|
-
export { default } from '#gremlins/gremlins/email/field'
|
|
9
|
-
}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* EmailField component
|
|
3
|
-
*/
|
|
4
|
-
import React from 'react'
|
|
5
|
-
import classnames from 'classnames'
|
|
6
|
-
|
|
7
|
-
import { ValueField } from '#gremlins/components/field'
|
|
8
|
-
|
|
9
|
-
export default class EmailField extends ValueField {
|
|
10
|
-
getClassName () {
|
|
11
|
-
return classnames(super.getClassName(), 'email')
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
render () {
|
|
15
|
-
const {
|
|
16
|
-
id,
|
|
17
|
-
name,
|
|
18
|
-
value,
|
|
19
|
-
defaultValue,
|
|
20
|
-
required = false,
|
|
21
|
-
disabled = false,
|
|
22
|
-
readOnly = false,
|
|
23
|
-
tabIndex,
|
|
24
|
-
accessKey,
|
|
25
|
-
placeholder,
|
|
26
|
-
fieldRef
|
|
27
|
-
} = this.props
|
|
28
|
-
|
|
29
|
-
const className = this.getClassName()
|
|
30
|
-
|
|
31
|
-
return (
|
|
32
|
-
<input
|
|
33
|
-
id={id}
|
|
34
|
-
name={name}
|
|
35
|
-
value={value}
|
|
36
|
-
defaultValue={defaultValue}
|
|
37
|
-
required={required}
|
|
38
|
-
disabled={disabled}
|
|
39
|
-
readOnly={readOnly}
|
|
40
|
-
tabIndex={tabIndex}
|
|
41
|
-
accessKey={accessKey}
|
|
42
|
-
placeholder={placeholder}
|
|
43
|
-
onChange={this.handleChange}
|
|
44
|
-
className={className}
|
|
45
|
-
type='email'
|
|
46
|
-
ref={fieldRef}
|
|
47
|
-
/>
|
|
48
|
-
)
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
EmailField.propTypes = {
|
|
53
|
-
...ValueField.propTypes
|
|
54
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
declare module '#gremlins/gremlins/email' {
|
|
2
|
-
import { FieldGremlin as Gremlin } from '#gremlins/gremlins'
|
|
3
|
-
|
|
4
|
-
export default class EmailGremlin extends Gremlin {}
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
declare module '@modernpoacher/gremlins/gremlins/email' {
|
|
8
|
-
export { default } from '#gremlins/gremlins/email'
|
|
9
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
declare module '#gremlins/gremlins/fieldset/group' {
|
|
2
|
-
import Group from '#gremlins/components/group'
|
|
3
|
-
|
|
4
|
-
export default class FieldsetGroup extends Group {}
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
declare module '@modernpoacher/gremlins/gremlins/fieldset/group' {
|
|
8
|
-
export { default } from '#gremlins/gremlins/fieldset/group'
|
|
9
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* FieldsetGroup component
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import classnames from 'classnames'
|
|
6
|
-
import Group from '#gremlins/components/group'
|
|
7
|
-
|
|
8
|
-
export default class FieldsetGroup extends Group {
|
|
9
|
-
getClassName () {
|
|
10
|
-
return classnames(super.getClassName(), 'fieldset')
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
FieldsetGroup.propTypes = {
|
|
15
|
-
...Group.propTypes
|
|
16
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
declare module '#gremlins/gremlins/fieldset' {
|
|
2
|
-
import { GroupGremlin as Gremlin } from '#gremlins/gremlins'
|
|
3
|
-
|
|
4
|
-
export default class FieldsetGremlin extends Gremlin {}
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
declare module '@modernpoacher/gremlins/gremlins/fieldset' {
|
|
8
|
-
export { default } from '#gremlins/gremlins/fieldset'
|
|
9
|
-
}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* FieldsetGremlin component
|
|
3
|
-
*
|
|
4
|
-
* @typedef {import('@modernpoacher/gremlins/gremlins').GroupGremlinProps} GroupGremlinProps
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import React from 'react'
|
|
8
|
-
|
|
9
|
-
import classnames from 'classnames'
|
|
10
|
-
|
|
11
|
-
import { GroupGremlin as Gremlin } from '#gremlins/gremlins'
|
|
12
|
-
|
|
13
|
-
import {
|
|
14
|
-
DEFAULT_HANDLE_CHANGE
|
|
15
|
-
} from '#gremlins/common'
|
|
16
|
-
|
|
17
|
-
import Group from './group/index.jsx'
|
|
18
|
-
|
|
19
|
-
export default class FieldsetGremlin extends Gremlin {
|
|
20
|
-
getClassName () {
|
|
21
|
-
return classnames(super.getClassName(), 'fieldset')
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
renderGroup () {
|
|
25
|
-
const {
|
|
26
|
-
onChange = DEFAULT_HANDLE_CHANGE,
|
|
27
|
-
children
|
|
28
|
-
} = this.props
|
|
29
|
-
|
|
30
|
-
return (
|
|
31
|
-
<Group
|
|
32
|
-
onChange={onChange}>
|
|
33
|
-
{children}
|
|
34
|
-
</Group>
|
|
35
|
-
)
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
FieldsetGremlin.propTypes = {
|
|
40
|
-
...Gremlin.propTypes
|
|
41
|
-
}
|
package/src/gremlins/index.d.mts
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
declare module '#gremlins/gremlins' {
|
|
2
|
-
import React from 'react'
|
|
3
|
-
|
|
4
|
-
export interface FieldGremlinProps {
|
|
5
|
-
id: string
|
|
6
|
-
name: string
|
|
7
|
-
required: boolean
|
|
8
|
-
disabled: boolean
|
|
9
|
-
readOnly: boolean
|
|
10
|
-
placeholder: string
|
|
11
|
-
onChange: GremlinsTypes.OnChangeType
|
|
12
|
-
fieldRef: object
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export interface ValueGremlinProps extends FieldGremlinProps {
|
|
16
|
-
value: string
|
|
17
|
-
defaultValue: string
|
|
18
|
-
onChange: GremlinsTypes.OnChangeType
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export interface CheckGremlinProps extends FieldGremlinProps {
|
|
22
|
-
checked: boolean
|
|
23
|
-
defaultChecked: boolean
|
|
24
|
-
onClick: GremlinsTypes.OnClickType
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export interface GroupGremlinProps {
|
|
28
|
-
title: string
|
|
29
|
-
onChange: GremlinsTypes.OnChangeType
|
|
30
|
-
groupRef: object
|
|
31
|
-
children: React.JSX.Element | React.JSX.Element[]
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export class FieldGremlin extends React.Component<FieldGremlinProps> {}
|
|
35
|
-
|
|
36
|
-
export class ValueGremlin extends React.Component<ValueGremlinProps> {}
|
|
37
|
-
|
|
38
|
-
export class CheckGremlin extends React.Component<CheckGremlinProps> {}
|
|
39
|
-
|
|
40
|
-
export class GroupGremlin extends React.Component<GroupGremlinProps> {}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
declare module '@modernpoacher/gremlins/gremlins' {
|
|
44
|
-
export * from '#gremlins/gremlins'
|
|
45
|
-
}
|