@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,111 +0,0 @@
1
- /**
2
- * SelectField component
3
- */
4
- import React from 'react'
5
- import PropTypes from 'prop-types'
6
- import classnames from 'classnames'
7
-
8
- import { ValueField } from '#gremlins/components/field'
9
-
10
- import {
11
- DEFAULT_HANDLE_CHANGE
12
- } from '#gremlins/common'
13
-
14
- function getSelectedValues ({ target: { selectedOptions } }) {
15
- return (
16
- Array.from(selectedOptions)
17
- .map(({ value, text }) => value || text)
18
- )
19
- }
20
-
21
- function getSelectedValue ({ target: { value } }) {
22
- return value
23
- }
24
-
25
- export default class SelectField extends ValueField {
26
- shouldComponentUpdate (props, state) {
27
- return (
28
- super.shouldComponentUpdate(props) ||
29
- (props.multiple !== this.props.multiple) ||
30
- (props.children !== this.props.children)
31
- )
32
- }
33
-
34
- getClassName () {
35
- return classnames(super.getClassName(), 'select')
36
- }
37
-
38
- handleChange = (event) => {
39
- const {
40
- multiple = false,
41
- onChange = DEFAULT_HANDLE_CHANGE
42
- } = this.props
43
-
44
- if (multiple) {
45
- onChange(getSelectedValues(event))
46
- } else {
47
- onChange(getSelectedValue(event))
48
- }
49
- }
50
-
51
- render () {
52
- const {
53
- id,
54
- name,
55
- value,
56
- defaultValue,
57
- required = false,
58
- disabled = false,
59
- readOnly = false,
60
- tabIndex,
61
- accessKey,
62
- multiple = false,
63
- children,
64
- fieldRef
65
- } = this.props
66
-
67
- const className = this.getClassName()
68
-
69
- return (
70
- <select
71
- id={id}
72
- name={name}
73
- value={value}
74
- defaultValue={defaultValue}
75
- required={required}
76
- disabled={disabled}
77
- readOnly={readOnly}
78
- tabIndex={tabIndex}
79
- accessKey={accessKey}
80
- multiple={multiple}
81
- onChange={this.handleChange}
82
- className={className}
83
- ref={fieldRef}>
84
- {children}
85
- </select>
86
- )
87
- }
88
- }
89
-
90
- SelectField.propTypes = {
91
- ...ValueField.propTypes,
92
- multiple: PropTypes.bool,
93
- value: PropTypes.oneOfType([
94
- PropTypes.string,
95
- PropTypes.arrayOf(
96
- PropTypes.string
97
- )
98
- ]),
99
- defaultValue: PropTypes.oneOfType([
100
- PropTypes.string,
101
- PropTypes.arrayOf(
102
- PropTypes.string
103
- )
104
- ]),
105
- children: PropTypes.oneOfType([
106
- PropTypes.node,
107
- PropTypes.arrayOf(
108
- PropTypes.node
109
- )
110
- ])
111
- }
@@ -1,9 +0,0 @@
1
- declare module '#gremlins/gremlins/select' {
2
- import { FieldGremlin as Gremlin } from '#gremlins/gremlins'
3
-
4
- export default class SelectGremlin extends Gremlin {}
5
- }
6
-
7
- declare module '@modernpoacher/gremlins/gremlins/select' {
8
- export { default } from '#gremlins/gremlins/select'
9
- }
@@ -1,9 +0,0 @@
1
- declare module '#gremlins/gremlins/text/field' {
2
- import Field from '#gremlins/components/field'
3
-
4
- export default class TextField extends Field {}
5
- }
6
-
7
- declare module '@modernpoacher/gremlins/text/field' {
8
- export { default } from '#gremlins/gremlins/text/field'
9
- }
@@ -1,54 +0,0 @@
1
- /**
2
- * TextField 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 TextField extends ValueField {
10
- getClassName () {
11
- return classnames(super.getClassName(), 'text')
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='text'
46
- ref={fieldRef}
47
- />
48
- )
49
- }
50
- }
51
-
52
- TextField.propTypes = {
53
- ...ValueField.propTypes
54
- }
@@ -1,9 +0,0 @@
1
- declare module '#gremlins/gremlins/text' {
2
- import { FieldGremlin as Gremlin } from '#gremlins/gremlins'
3
-
4
- export default class TextGremlin extends Gremlin {}
5
- }
6
-
7
- declare module '@modernpoacher/gremlins/gremlins/text' {
8
- export { default } from '#gremlins/gremlins/text'
9
- }
@@ -1,9 +0,0 @@
1
- declare module '#gremlins/gremlins/textarea/field' {
2
- import Field from '#gremlins/components/field'
3
-
4
- export default class TextareaField extends Field {}
5
- }
6
-
7
- declare module '@modernpoacher/gremlins/textarea/field' {
8
- export { default } from '#gremlins/gremlins/textarea/field'
9
- }
@@ -1,53 +0,0 @@
1
- /**
2
- * TextareaField 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 TextareaField extends ValueField {
10
- getClassName () {
11
- return classnames(super.getClassName(), 'textarea')
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
- <textarea
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
- ref={fieldRef}
46
- />
47
- )
48
- }
49
- }
50
-
51
- TextareaField.propTypes = {
52
- ...ValueField.propTypes
53
- }
@@ -1,9 +0,0 @@
1
- declare module '#gremlins/gremlins/textarea' {
2
- import { FieldGremlin as Gremlin } from '#gremlins/gremlins'
3
-
4
- export default class TextareaGremlin extends Gremlin {}
5
- }
6
-
7
- declare module '@modernpoacher/gremlins/gremlins/textarea' {
8
- export { default } from '#gremlins/gremlins/textarea'
9
- }
File without changes
File without changes
File without changes