@modernpoacher/gremlins 0.0.310 → 1.0.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.
Files changed (172) 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 +91 -36
  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/common/required → 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/common/readonly → 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/src/common/index.d.mts +0 -9
  133. package/src/common/index.mjs +0 -7
  134. package/src/components/common/disabled/index.jsx +0 -9
  135. package/src/components/common/readonly/index.jsx +0 -9
  136. package/src/components/common/required/index.jsx +0 -9
  137. package/src/components/field/index.d.mts +0 -23
  138. package/src/components/group/index.d.mts +0 -16
  139. package/src/components/group/index.jsx +0 -59
  140. package/src/gremlins/checkbox/field/index.d.mts +0 -9
  141. package/src/gremlins/checkbox/index.d.mts +0 -9
  142. package/src/gremlins/email/field/index.d.mts +0 -9
  143. package/src/gremlins/email/field/index.jsx +0 -54
  144. package/src/gremlins/email/index.d.mts +0 -9
  145. package/src/gremlins/fieldset/group/index.d.mts +0 -9
  146. package/src/gremlins/fieldset/group/index.jsx +0 -16
  147. package/src/gremlins/fieldset/index.d.mts +0 -9
  148. package/src/gremlins/fieldset/index.jsx +0 -41
  149. package/src/gremlins/index.d.mts +0 -45
  150. package/src/gremlins/index.jsx +0 -291
  151. package/src/gremlins/number/field/index.d.mts +0 -9
  152. package/src/gremlins/number/index.d.mts +0 -9
  153. package/src/gremlins/password/field/index.d.mts +0 -9
  154. package/src/gremlins/password/field/index.jsx +0 -54
  155. package/src/gremlins/password/index.d.mts +0 -9
  156. package/src/gremlins/radio/field/index.d.mts +0 -9
  157. package/src/gremlins/radio/index.d.mts +0 -9
  158. package/src/gremlins/select/field/index.d.mts +0 -9
  159. package/src/gremlins/select/field/index.jsx +0 -111
  160. package/src/gremlins/select/index.d.mts +0 -9
  161. package/src/gremlins/text/field/index.d.mts +0 -9
  162. package/src/gremlins/text/field/index.jsx +0 -54
  163. package/src/gremlins/text/index.d.mts +0 -9
  164. package/src/gremlins/textarea/field/index.d.mts +0 -9
  165. package/src/gremlins/textarea/field/index.jsx +0 -53
  166. package/src/gremlins/textarea/index.d.mts +0 -9
  167. /package/src/{components → js/components}/common/disabled/index.d.mts +0 -0
  168. /package/src/{components → js/components}/common/readonly/index.d.mts +0 -0
  169. /package/src/{components → js/components}/common/required/index.d.mts +0 -0
  170. /package/src/{index.cjs → js/index.cjs} +0 -0
  171. /package/src/{index.d.mts → js/index.d.mts} +0 -0
  172. /package/src/{index.mjs → js/index.mjs} +0 -0
@@ -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
- }
@@ -1,291 +0,0 @@
1
- /**
2
- * GroupGremlin component
3
- *
4
- * @typedef {import('@modernpoacher/gremlins/gremlins').GroupGremlinProps} GroupGremlinProps
5
- */
6
- /**
7
- * FieldGremlin component
8
- *
9
- * @typedef {import('@modernpoacher/gremlins/gremlins').FieldGremlinProps} FieldGremlinProps
10
- */
11
-
12
- import React, { Component } from 'react'
13
- import PropTypes from 'prop-types'
14
- import classnames from 'classnames'
15
-
16
- import {
17
- DEFAULT_HANDLE_CHANGE,
18
- DEFAULT_HANDLE_CLICK
19
- } from '#gremlins/common'
20
-
21
- import Field, {
22
- ValueField,
23
- CheckField
24
- } from '#gremlins/components/field'
25
-
26
- import Group from '#gremlins/components/group'
27
-
28
- export class FieldGremlin extends Component {
29
- getClassName () {
30
- const {
31
- required = false,
32
- disabled = false,
33
- readOnly = false
34
- } = this.props
35
-
36
- return classnames('gremlin', { required, disabled, readOnly })
37
- }
38
-
39
- getId () {
40
- const {
41
- id,
42
- name
43
- } = this.props
44
-
45
- return id || name
46
- }
47
-
48
- /**
49
- * @param {FieldGremlinProps} props
50
- * @returns {boolean}
51
- */
52
- shouldComponentUpdate (props, state) {
53
- return (
54
- (props.name !== this.props.name) ||
55
- (props.id !== this.props.id) ||
56
- (props.required !== this.props.required) ||
57
- (props.disabled !== this.props.disabled) ||
58
- (props.readOnly !== this.props.readOnly) ||
59
- (props.tabIndex !== this.props.tabIndex) ||
60
- (props.accessKey !== this.props.accessKey) ||
61
- (props.placeholder !== this.props.placeholder) ||
62
- (props.onChange !== this.props.onChange)
63
- )
64
- }
65
-
66
- renderField () {
67
- const id = this.getId()
68
-
69
- const {
70
- name,
71
- required = false,
72
- disabled = false,
73
- readOnly = false,
74
- tabIndex,
75
- accessKey,
76
- placeholder,
77
- onChange = DEFAULT_HANDLE_CHANGE,
78
- fieldRef
79
- } = this.props
80
-
81
- return (
82
- <Field
83
- id={id}
84
- name={name}
85
- required={required}
86
- disabled={disabled}
87
- readOnly={readOnly}
88
- tabIndex={tabIndex}
89
- accessKey={accessKey}
90
- placeholder={placeholder}
91
- onChange={onChange}
92
- fieldRef={fieldRef}
93
- />
94
- )
95
- }
96
-
97
- render () {
98
- const className = this.getClassName()
99
-
100
- return (
101
- <div className={className}>
102
- {this.renderField()}
103
- </div>
104
- )
105
- }
106
- }
107
-
108
- FieldGremlin.propTypes = {
109
- id: PropTypes.string,
110
- name: PropTypes.string.isRequired,
111
- required: PropTypes.bool,
112
- disabled: PropTypes.bool,
113
- readOnly: PropTypes.bool,
114
- placeholder: PropTypes.string,
115
- onChange: PropTypes.func,
116
- fieldRef: PropTypes.shape({
117
- current: PropTypes.shape().isRequired
118
- })
119
- }
120
-
121
- FieldGremlin.defaultProps = {
122
- required: false,
123
- disabled: false,
124
- readOnly: false,
125
- onChange: DEFAULT_HANDLE_CHANGE
126
- }
127
-
128
- export class ValueGremlin extends FieldGremlin {
129
- shouldComponentUpdate (props, state) {
130
- return (
131
- super.shouldComponentUpdate(props) ||
132
- (props.value !== this.props.value)
133
- )
134
- }
135
-
136
- renderField () {
137
- const id = this.getId()
138
-
139
- const {
140
- name,
141
- required = false,
142
- disabled = false,
143
- readOnly = false,
144
- tabIndex,
145
- accessKey,
146
- placeholder,
147
- onChange = DEFAULT_HANDLE_CHANGE,
148
- fieldRef
149
- } = this.props
150
-
151
- return (
152
- <ValueField
153
- id={id}
154
- name={name}
155
- required={required}
156
- disabled={disabled}
157
- readOnly={readOnly}
158
- tabIndex={tabIndex}
159
- accessKey={accessKey}
160
- placeholder={placeholder}
161
- onChange={onChange}
162
- fieldRef={fieldRef}
163
- />
164
- )
165
- }
166
- }
167
-
168
- ValueGremlin.propTypes = {
169
- ...FieldGremlin.propTypes,
170
- value: PropTypes.string,
171
- defaultValue: PropTypes.string
172
- }
173
-
174
- ValueGremlin.defaultProps = {
175
- ...FieldGremlin.defaultProps
176
- }
177
-
178
- export class CheckGremlin extends FieldGremlin {
179
- shouldComponentUpdate (props, state) {
180
- return (
181
- super.shouldComponentUpdate(props) ||
182
- (props.checked !== this.props.checked) ||
183
- (props.onClick !== this.props.onClick)
184
- )
185
- }
186
-
187
- renderField () {
188
- const id = this.getId()
189
-
190
- const {
191
- name,
192
- required = false,
193
- disabled = false,
194
- readOnly = false,
195
- tabIndex,
196
- accessKey,
197
- placeholder,
198
- onChange = DEFAULT_HANDLE_CHANGE,
199
- onClick = DEFAULT_HANDLE_CLICK,
200
- fieldRef
201
- } = this.props
202
-
203
- return (
204
- <CheckField
205
- id={id}
206
- name={name}
207
- required={required}
208
- disabled={disabled}
209
- readOnly={readOnly}
210
- tabIndex={tabIndex}
211
- accessKey={accessKey}
212
- placeholder={placeholder}
213
- onChange={onChange}
214
- onClick={onClick}
215
- fieldRef={fieldRef}
216
- />
217
- )
218
- }
219
- }
220
-
221
- CheckGremlin.propTypes = {
222
- ...FieldGremlin.propTypes,
223
- checked: PropTypes.bool,
224
- defaultChecked: PropTypes.bool,
225
- onClick: PropTypes.func
226
- }
227
-
228
- CheckGremlin.defaultProps = {
229
- ...FieldGremlin.defaultProps,
230
- onClick: DEFAULT_HANDLE_CLICK
231
- }
232
-
233
- export class GroupGremlin extends Component {
234
- getClassName () {
235
- return 'gremlin'
236
- }
237
-
238
- /**
239
- * @param {GroupGremlinProps} props
240
- * @returns {boolean}
241
- */
242
- shouldComponentUpdate (props, state) {
243
- return (
244
- (props.children !== this.props.children) ||
245
- (props.onChange !== this.props.onChange)
246
- )
247
- }
248
-
249
- renderGroup () {
250
- const {
251
- onChange = DEFAULT_HANDLE_CHANGE,
252
- groupRef,
253
- children
254
- } = this.props
255
-
256
- return (
257
- <Group
258
- onChange={onChange}
259
- groupRef={groupRef}>
260
- {children}
261
- </Group>
262
- )
263
- }
264
-
265
- render () {
266
- const className = this.getClassName()
267
-
268
- return (
269
- <div className={className}>
270
- {this.renderGroup()}
271
- </div>
272
- )
273
- }
274
- }
275
-
276
- GroupGremlin.propTypes = {
277
- onChange: PropTypes.func,
278
- children: PropTypes.oneOfType([
279
- PropTypes.node,
280
- PropTypes.arrayOf(
281
- PropTypes.node
282
- )
283
- ]),
284
- groupRef: PropTypes.shape({
285
- current: PropTypes.shape().isRequired
286
- })
287
- }
288
-
289
- GroupGremlin.defaultProps = {
290
- onChange: DEFAULT_HANDLE_CHANGE
291
- }
@@ -1,9 +0,0 @@
1
- declare module '#gremlins/gremlins/number/field' {
2
- import Field from '#gremlins/components/field'
3
-
4
- export default class NumberField extends Field {}
5
- }
6
-
7
- declare module '@modernpoacher/gremlins/number/field' {
8
- export { default } from '#gremlins/gremlins/number/field'
9
- }
@@ -1,9 +0,0 @@
1
- declare module '#gremlins/gremlins/number' {
2
- import { FieldGremlin as Gremlin } from '#gremlins/gremlins'
3
-
4
- export default class NumberGremlin extends Gremlin {}
5
- }
6
-
7
- declare module '@modernpoacher/gremlins/gremlins/number' {
8
- export { default } from '#gremlins/gremlins/number'
9
- }
@@ -1,9 +0,0 @@
1
- declare module '#gremlins/gremlins/password/field' {
2
- import Field from '#gremlins/components/field'
3
-
4
- export default class PasswordField extends Field {}
5
- }
6
-
7
- declare module '@modernpoacher/gremlins/password/field' {
8
- export { default } from '#gremlins/gremlins/password/field'
9
- }
@@ -1,54 +0,0 @@
1
- /**
2
- * PasswordField 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 PasswordField extends ValueField {
10
- getClassName () {
11
- return classnames(super.getClassName(), 'password')
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='password'
46
- ref={fieldRef}
47
- />
48
- )
49
- }
50
- }
51
-
52
- PasswordField.propTypes = {
53
- ...ValueField.propTypes
54
- }
@@ -1,9 +0,0 @@
1
- declare module '#gremlins/gremlins/password' {
2
- import { FieldGremlin as Gremlin } from '#gremlins/gremlins'
3
-
4
- export default class PasswordGremlin extends Gremlin {}
5
- }
6
-
7
- declare module '@modernpoacher/gremlins/gremlins/password' {
8
- export { default } from '#gremlins/gremlins/password'
9
- }
@@ -1,9 +0,0 @@
1
- declare module '#gremlins/gremlins/radio/field' {
2
- import Field from '#gremlins/components/field'
3
-
4
- export default class RadioField extends Field {}
5
- }
6
-
7
- declare module '@modernpoacher/gremlins/radio/field' {
8
- export { default } from '#gremlins/gremlins/radio/field'
9
- }
@@ -1,9 +0,0 @@
1
- declare module '#gremlins/gremlins/radio' {
2
- import { FieldGremlin as Gremlin } from '#gremlins/gremlins'
3
-
4
- export default class RadioGremlin extends Gremlin {}
5
- }
6
-
7
- declare module '@modernpoacher/gremlins/gremlins/radio' {
8
- export { default } from '#gremlins/gremlins/radio'
9
- }
@@ -1,9 +0,0 @@
1
- declare module '#gremlins/gremlins/select/field' {
2
- import Field from '#gremlins/components/field'
3
-
4
- export default class SelectField extends Field {}
5
- }
6
-
7
- declare module '@modernpoacher/gremlins/select/field' {
8
- export { default } from '#gremlins/gremlins/select/field'
9
- }