@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.
Files changed (173) hide show
  1. package/.prettierignore +4 -0
  2. package/babel.config.cjs +4 -1
  3. package/eslint.config.mjs +33 -71
  4. package/index.d.mts +169 -2
  5. package/jest.after-each.mjs +10 -0
  6. package/jest.before-each.mjs +10 -0
  7. package/jest.config.mjs +11 -1
  8. package/package.json +84 -29
  9. package/src/{components → js/components}/common/disabled/index.cjs +5 -2
  10. package/src/js/components/common/disabled/index.d.cts +1 -0
  11. package/src/js/components/common/disabled/index.jsx +11 -0
  12. package/src/{components → js/components}/common/readonly/index.cjs +5 -2
  13. package/src/js/components/common/readonly/index.d.cts +1 -0
  14. package/src/js/components/common/readonly/index.jsx +11 -0
  15. package/src/{components → js/components}/common/required/index.cjs +5 -2
  16. package/src/js/components/common/required/index.d.cts +1 -0
  17. package/src/js/components/common/required/index.jsx +11 -0
  18. package/src/{components → js/components}/common/text-content/index.cjs +5 -2
  19. package/src/js/components/common/text-content/index.d.cts +2 -0
  20. package/src/{components → js/components}/common/text-content/index.d.mts +1 -3
  21. package/src/{components → js/components}/common/text-content/index.jsx +6 -5
  22. package/src/{components → js/components}/field/index.cjs +10 -2
  23. package/src/js/components/field/index.d.cts +1 -0
  24. package/src/js/components/field/index.d.mts +24 -0
  25. package/src/js/components/field/index.jsx +98 -0
  26. package/src/{components → js/components}/group/index.cjs +5 -2
  27. package/src/js/components/group/index.d.cts +2 -0
  28. package/src/js/components/group/index.d.mts +9 -0
  29. package/src/js/components/group/index.jsx +5 -0
  30. package/src/js/components/index.cjs +29 -0
  31. package/src/js/components/index.d.cts +2 -0
  32. package/src/js/components/index.d.mts +2 -0
  33. package/src/js/components/index.mjs +8 -0
  34. package/src/{gremlins → js/gremlins}/checkbox/field/index.cjs +5 -2
  35. package/src/js/gremlins/checkbox/field/index.d.cts +2 -0
  36. package/src/js/gremlins/checkbox/field/index.d.mts +14 -0
  37. package/src/{gremlins → js/gremlins}/checkbox/field/index.jsx +21 -10
  38. package/src/{gremlins → js/gremlins}/checkbox/index.cjs +5 -2
  39. package/src/js/gremlins/checkbox/index.d.cts +2 -0
  40. package/src/js/gremlins/checkbox/index.d.mts +24 -0
  41. package/src/{gremlins → js/gremlins}/checkbox/index.jsx +31 -23
  42. package/src/{gremlins → js/gremlins}/email/field/index.cjs +5 -2
  43. package/src/js/gremlins/email/field/index.d.cts +2 -0
  44. package/src/js/gremlins/email/field/index.d.mts +14 -0
  45. package/src/js/gremlins/email/field/index.jsx +83 -0
  46. package/src/{gremlins → js/gremlins}/email/index.cjs +5 -2
  47. package/src/js/gremlins/email/index.d.cts +2 -0
  48. package/src/js/gremlins/email/index.d.mts +18 -0
  49. package/src/{gremlins → js/gremlins}/email/index.jsx +25 -12
  50. package/src/{gremlins → js/gremlins}/fieldset/group/index.cjs +5 -2
  51. package/src/js/gremlins/fieldset/group/index.d.cts +2 -0
  52. package/src/js/gremlins/fieldset/group/index.d.mts +12 -0
  53. package/src/js/gremlins/fieldset/group/index.jsx +19 -0
  54. package/src/{gremlins → js/gremlins}/fieldset/index.cjs +5 -2
  55. package/src/js/gremlins/fieldset/index.d.cts +2 -0
  56. package/src/js/gremlins/fieldset/index.d.mts +14 -0
  57. package/src/js/gremlins/fieldset/index.jsx +37 -0
  58. package/src/{gremlins → js/gremlins}/index.cjs +9 -4
  59. package/src/js/gremlins/index.d.cts +5 -0
  60. package/src/js/gremlins/index.d.mts +27 -0
  61. package/src/js/gremlins/index.jsx +162 -0
  62. package/src/{gremlins → js/gremlins}/number/field/index.cjs +5 -2
  63. package/src/js/gremlins/number/field/index.d.cts +2 -0
  64. package/src/js/gremlins/number/field/index.d.mts +14 -0
  65. package/src/{gremlins → js/gremlins}/number/field/index.jsx +40 -7
  66. package/src/{gremlins → js/gremlins}/number/index.cjs +5 -2
  67. package/src/js/gremlins/number/index.d.cts +2 -0
  68. package/src/js/gremlins/number/index.d.mts +18 -0
  69. package/src/{gremlins → js/gremlins}/number/index.jsx +25 -8
  70. package/src/{gremlins → js/gremlins}/password/field/index.cjs +5 -2
  71. package/src/js/gremlins/password/field/index.d.cts +2 -0
  72. package/src/js/gremlins/password/field/index.d.mts +14 -0
  73. package/src/js/gremlins/password/field/index.jsx +83 -0
  74. package/src/{gremlins → js/gremlins}/password/index.cjs +5 -2
  75. package/src/js/gremlins/password/index.d.cts +2 -0
  76. package/src/js/gremlins/password/index.d.mts +18 -0
  77. package/src/{gremlins → js/gremlins}/password/index.jsx +25 -12
  78. package/src/{gremlins → js/gremlins}/radio/field/index.cjs +5 -2
  79. package/src/js/gremlins/radio/field/index.d.cts +2 -0
  80. package/src/js/gremlins/radio/field/index.d.mts +14 -0
  81. package/src/{gremlins → js/gremlins}/radio/field/index.jsx +20 -9
  82. package/src/{gremlins → js/gremlins}/radio/index.cjs +5 -2
  83. package/src/js/gremlins/radio/index.d.cts +2 -0
  84. package/src/js/gremlins/radio/index.d.mts +24 -0
  85. package/src/{gremlins → js/gremlins}/radio/index.jsx +33 -17
  86. package/src/{gremlins → js/gremlins}/select/field/index.cjs +5 -2
  87. package/src/js/gremlins/select/field/index.d.cts +2 -0
  88. package/src/js/gremlins/select/field/index.d.mts +18 -0
  89. package/src/js/gremlins/select/field/index.jsx +200 -0
  90. package/src/{gremlins → js/gremlins}/select/index.cjs +5 -2
  91. package/src/js/gremlins/select/index.d.cts +2 -0
  92. package/src/js/gremlins/select/index.d.mts +18 -0
  93. package/src/{gremlins → js/gremlins}/select/index.jsx +53 -16
  94. package/src/{gremlins → js/gremlins}/text/field/index.cjs +5 -2
  95. package/src/js/gremlins/text/field/index.d.cts +2 -0
  96. package/src/js/gremlins/text/field/index.d.mts +14 -0
  97. package/src/js/gremlins/text/field/index.jsx +83 -0
  98. package/src/{gremlins → js/gremlins}/text/index.cjs +5 -2
  99. package/src/js/gremlins/text/index.d.cts +2 -0
  100. package/src/js/gremlins/text/index.d.mts +18 -0
  101. package/src/{gremlins → js/gremlins}/text/index.jsx +25 -12
  102. package/src/{gremlins → js/gremlins}/textarea/field/index.cjs +5 -2
  103. package/src/js/gremlins/textarea/field/index.d.cts +2 -0
  104. package/src/js/gremlins/textarea/field/index.d.mts +18 -0
  105. package/src/js/gremlins/textarea/field/index.jsx +81 -0
  106. package/src/{gremlins → js/gremlins}/textarea/index.cjs +5 -2
  107. package/src/js/gremlins/textarea/index.d.cts +2 -0
  108. package/src/js/gremlins/textarea/index.d.mts +18 -0
  109. package/src/{gremlins → js/gremlins}/textarea/index.jsx +25 -12
  110. package/src/js/super/components/field/index.cjs +20 -0
  111. package/src/js/super/components/field/index.d.cts +2 -0
  112. package/src/js/super/components/field/index.d.mts +23 -0
  113. package/src/{components → js/super/components}/field/index.jsx +44 -87
  114. package/src/js/super/components/group/index.cjs +20 -0
  115. package/src/js/super/components/group/index.d.cts +2 -0
  116. package/src/js/super/components/group/index.d.mts +18 -0
  117. package/src/js/super/components/group/index.jsx +59 -0
  118. package/src/js/super/components/index.cjs +23 -0
  119. package/src/js/super/components/index.d.cts +2 -0
  120. package/src/js/super/components/index.d.mts +2 -0
  121. package/src/js/super/components/index.mjs +8 -0
  122. package/src/js/super/gremlins/index.cjs +22 -0
  123. package/src/js/super/gremlins/index.d.cts +4 -0
  124. package/src/js/super/gremlins/index.d.mts +36 -0
  125. package/src/js/super/gremlins/index.jsx +176 -0
  126. package/src/sass/.stylelintrc +14 -0
  127. package/src/sass/_gremlins.scss +59 -0
  128. package/src/sass/gremlins/_checkbox.scss +87 -0
  129. package/src/sass/gremlins/_disabled.scss +15 -0
  130. package/src/sass/gremlins/_error.scss +48 -0
  131. package/src/sass/gremlins/_radio.scss +93 -0
  132. package/.publish/README.md +0 -20
  133. package/src/common/index.d.mts +0 -9
  134. package/src/common/index.mjs +0 -7
  135. package/src/components/common/disabled/index.jsx +0 -9
  136. package/src/components/common/readonly/index.jsx +0 -9
  137. package/src/components/common/required/index.jsx +0 -9
  138. package/src/components/field/index.d.mts +0 -23
  139. package/src/components/group/index.d.mts +0 -16
  140. package/src/components/group/index.jsx +0 -59
  141. package/src/gremlins/checkbox/field/index.d.mts +0 -9
  142. package/src/gremlins/checkbox/index.d.mts +0 -9
  143. package/src/gremlins/email/field/index.d.mts +0 -9
  144. package/src/gremlins/email/field/index.jsx +0 -54
  145. package/src/gremlins/email/index.d.mts +0 -9
  146. package/src/gremlins/fieldset/group/index.d.mts +0 -9
  147. package/src/gremlins/fieldset/group/index.jsx +0 -16
  148. package/src/gremlins/fieldset/index.d.mts +0 -9
  149. package/src/gremlins/fieldset/index.jsx +0 -41
  150. package/src/gremlins/index.d.mts +0 -45
  151. package/src/gremlins/index.jsx +0 -291
  152. package/src/gremlins/number/field/index.d.mts +0 -9
  153. package/src/gremlins/number/index.d.mts +0 -9
  154. package/src/gremlins/password/field/index.d.mts +0 -9
  155. package/src/gremlins/password/field/index.jsx +0 -54
  156. package/src/gremlins/password/index.d.mts +0 -9
  157. package/src/gremlins/radio/field/index.d.mts +0 -9
  158. package/src/gremlins/radio/index.d.mts +0 -9
  159. package/src/gremlins/select/field/index.d.mts +0 -9
  160. package/src/gremlins/select/field/index.jsx +0 -111
  161. package/src/gremlins/select/index.d.mts +0 -9
  162. package/src/gremlins/text/field/index.d.mts +0 -9
  163. package/src/gremlins/text/field/index.jsx +0 -54
  164. package/src/gremlins/text/index.d.mts +0 -9
  165. package/src/gremlins/textarea/field/index.d.mts +0 -9
  166. package/src/gremlins/textarea/field/index.jsx +0 -53
  167. package/src/gremlins/textarea/index.d.mts +0 -9
  168. /package/src/{components → js/components}/common/disabled/index.d.mts +0 -0
  169. /package/src/{components → js/components}/common/readonly/index.d.mts +0 -0
  170. /package/src/{components → js/components}/common/required/index.d.mts +0 -0
  171. /package/src/{index.cjs → js/index.cjs} +0 -0
  172. /package/src/{index.d.mts → js/index.d.mts} +0 -0
  173. /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
+ }
@@ -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
- ```
@@ -1,9 +0,0 @@
1
- declare module '#gremlins/common' {
2
- export function DEFAULT_HANDLE_CHANGE (): void
3
-
4
- export function DEFAULT_HANDLE_CLICK (): void
5
- }
6
-
7
- declare module '@modernpoacher/gremlins/common' {
8
- export * from '#gremlins/common'
9
- }
@@ -1,7 +0,0 @@
1
- export function DEFAULT_HANDLE_CHANGE () {
2
- /* */
3
- }
4
-
5
- export function DEFAULT_HANDLE_CLICK () {
6
- /* */
7
- }
@@ -1,9 +0,0 @@
1
- import React from 'react'
2
-
3
- const DISABLED = String.fromCharCode(42)
4
-
5
- export default () => (
6
- <span className='is-disabled'>
7
- {DISABLED}
8
- </span>
9
- )
@@ -1,9 +0,0 @@
1
- import React from 'react'
2
-
3
- const READONLY = String.fromCharCode(42)
4
-
5
- export default () => (
6
- <span className='is-readonly'>
7
- {READONLY}
8
- </span>
9
- )
@@ -1,9 +0,0 @@
1
- import React from 'react'
2
-
3
- const REQUIRED = String.fromCharCode(42)
4
-
5
- export default () => (
6
- <span className='is-required'>
7
- {REQUIRED}
8
- </span>
9
- )
@@ -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
- }
@@ -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
- }