@modernpoacher/cogs 0.1.256 → 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 (276) hide show
  1. package/.prettierignore +4 -0
  2. package/babel.config.cjs +4 -1
  3. package/eslint.config.mjs +32 -71
  4. package/index.d.mts +224 -6
  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 +89 -36
  9. package/src/{cogs → js/cogs}/checkbox/description/index.cjs +5 -2
  10. package/src/js/cogs/checkbox/description/index.d.cts +1 -0
  11. package/src/{cogs → js/cogs}/checkbox/description/index.jsx +0 -4
  12. package/src/{cogs → js/cogs}/checkbox/error-message/index.cjs +5 -2
  13. package/src/js/cogs/checkbox/error-message/index.d.cts +1 -0
  14. package/src/{cogs → js/cogs}/checkbox/error-message/index.jsx +0 -4
  15. package/src/{cogs → js/cogs}/checkbox/field/index.cjs +5 -2
  16. package/src/js/cogs/checkbox/field/index.d.cts +2 -0
  17. package/src/js/cogs/checkbox/field/index.d.mts +14 -0
  18. package/src/{cogs → js/cogs}/checkbox/field/index.jsx +21 -10
  19. package/src/{cogs → js/cogs}/checkbox/index.cjs +5 -2
  20. package/src/js/cogs/checkbox/index.d.cts +2 -0
  21. package/src/js/cogs/checkbox/index.d.mts +24 -0
  22. package/src/{cogs → js/cogs}/checkbox/index.jsx +34 -26
  23. package/src/{cogs → js/cogs}/checkbox/title/index.cjs +5 -2
  24. package/src/js/cogs/checkbox/title/index.d.cts +2 -0
  25. package/src/{cogs → js/cogs}/checkbox/title/index.d.mts +4 -1
  26. package/src/{cogs → js/cogs}/checkbox/title/index.jsx +8 -4
  27. package/src/{cogs → js/cogs}/email/description/index.cjs +5 -2
  28. package/src/js/cogs/email/description/index.d.cts +1 -0
  29. package/src/{cogs → js/cogs}/email/description/index.jsx +0 -4
  30. package/src/{cogs → js/cogs}/email/error-message/index.cjs +5 -2
  31. package/src/js/cogs/email/error-message/index.d.cts +1 -0
  32. package/src/{cogs → js/cogs}/email/error-message/index.jsx +0 -4
  33. package/src/{cogs → js/cogs}/email/field/index.cjs +5 -2
  34. package/src/js/cogs/email/field/index.d.cts +2 -0
  35. package/src/js/cogs/email/field/index.d.mts +14 -0
  36. package/src/js/cogs/email/field/index.jsx +83 -0
  37. package/src/{cogs → js/cogs}/email/index.cjs +5 -2
  38. package/src/js/cogs/email/index.d.cts +2 -0
  39. package/src/js/cogs/email/index.d.mts +18 -0
  40. package/src/{cogs → js/cogs}/email/index.jsx +28 -15
  41. package/src/{cogs → js/cogs}/email/title/index.cjs +5 -2
  42. package/src/js/cogs/email/title/index.d.cts +2 -0
  43. package/src/{cogs → js/cogs}/email/title/index.d.mts +4 -1
  44. package/src/js/cogs/email/title/index.jsx +19 -0
  45. package/src/{cogs → js/cogs}/index.cjs +9 -4
  46. package/src/js/cogs/index.d.cts +5 -0
  47. package/src/js/cogs/index.d.mts +25 -0
  48. package/src/js/cogs/index.jsx +160 -0
  49. package/src/{cogs → js/cogs}/number/description/index.cjs +5 -2
  50. package/src/js/cogs/number/description/index.d.cts +1 -0
  51. package/src/{cogs → js/cogs}/number/description/index.jsx +0 -4
  52. package/src/{cogs → js/cogs}/number/error-message/index.cjs +5 -2
  53. package/src/js/cogs/number/error-message/index.d.cts +1 -0
  54. package/src/{cogs → js/cogs}/number/error-message/index.jsx +0 -4
  55. package/src/{cogs → js/cogs}/number/field/index.cjs +5 -2
  56. package/src/js/cogs/number/field/index.d.cts +2 -0
  57. package/src/js/cogs/number/field/index.d.mts +14 -0
  58. package/src/{cogs → js/cogs}/number/field/index.jsx +40 -7
  59. package/src/{cogs → js/cogs}/number/index.cjs +5 -2
  60. package/src/js/cogs/number/index.d.cts +2 -0
  61. package/src/js/cogs/number/index.d.mts +18 -0
  62. package/src/{cogs → js/cogs}/number/index.jsx +28 -11
  63. package/src/{cogs → js/cogs}/number/title/index.cjs +5 -2
  64. package/src/js/cogs/number/title/index.d.cts +2 -0
  65. package/src/{cogs → js/cogs}/number/title/index.d.mts +4 -1
  66. package/src/{cogs → js/cogs}/number/title/index.jsx +8 -4
  67. package/src/{cogs → js/cogs}/password/description/index.cjs +5 -2
  68. package/src/js/cogs/password/description/index.d.cts +1 -0
  69. package/src/{cogs → js/cogs}/password/description/index.jsx +0 -4
  70. package/src/{cogs → js/cogs}/password/error-message/index.cjs +5 -2
  71. package/src/js/cogs/password/error-message/index.d.cts +1 -0
  72. package/src/{cogs → js/cogs}/password/error-message/index.jsx +0 -4
  73. package/src/{cogs → js/cogs}/password/field/index.cjs +5 -2
  74. package/src/js/cogs/password/field/index.d.cts +2 -0
  75. package/src/js/cogs/password/field/index.d.mts +14 -0
  76. package/src/js/cogs/password/field/index.jsx +83 -0
  77. package/src/{cogs → js/cogs}/password/index.cjs +5 -2
  78. package/src/js/cogs/password/index.d.cts +2 -0
  79. package/src/js/cogs/password/index.d.mts +18 -0
  80. package/src/{cogs → js/cogs}/password/index.jsx +28 -15
  81. package/src/{cogs → js/cogs}/password/title/index.cjs +5 -2
  82. package/src/js/cogs/password/title/index.d.cts +2 -0
  83. package/src/{cogs → js/cogs}/password/title/index.d.mts +4 -1
  84. package/src/{cogs → js/cogs}/password/title/index.jsx +8 -4
  85. package/src/{cogs → js/cogs}/radio/description/index.cjs +5 -2
  86. package/src/js/cogs/radio/description/index.d.cts +1 -0
  87. package/src/{cogs → js/cogs}/radio/description/index.jsx +0 -4
  88. package/src/{cogs → js/cogs}/radio/error-message/index.cjs +5 -2
  89. package/src/js/cogs/radio/error-message/index.d.cts +1 -0
  90. package/src/{cogs → js/cogs}/radio/error-message/index.jsx +0 -4
  91. package/src/{cogs → js/cogs}/radio/field/index.cjs +5 -2
  92. package/src/js/cogs/radio/field/index.d.cts +2 -0
  93. package/src/js/cogs/radio/field/index.d.mts +14 -0
  94. package/src/{cogs → js/cogs}/radio/field/index.jsx +20 -9
  95. package/src/{cogs → js/cogs}/radio/index.cjs +5 -2
  96. package/src/js/cogs/radio/index.d.cts +2 -0
  97. package/src/js/cogs/radio/index.d.mts +24 -0
  98. package/src/{cogs → js/cogs}/radio/index.jsx +36 -20
  99. package/src/{cogs → js/cogs}/radio/title/index.cjs +5 -2
  100. package/src/js/cogs/radio/title/index.d.cts +2 -0
  101. package/src/{cogs → js/cogs}/radio/title/index.d.mts +4 -1
  102. package/src/{cogs → js/cogs}/radio/title/index.jsx +8 -4
  103. package/src/{cogs → js/cogs}/select/description/index.cjs +5 -2
  104. package/src/js/cogs/select/description/index.d.cts +1 -0
  105. package/src/{cogs → js/cogs}/select/description/index.jsx +0 -4
  106. package/src/{cogs → js/cogs}/select/error-message/index.cjs +5 -2
  107. package/src/js/cogs/select/error-message/index.d.cts +1 -0
  108. package/src/{cogs → js/cogs}/select/error-message/index.jsx +0 -4
  109. package/src/{cogs → js/cogs}/select/field/index.cjs +5 -2
  110. package/src/js/cogs/select/field/index.d.cts +2 -0
  111. package/src/js/cogs/select/field/index.d.mts +18 -0
  112. package/src/js/cogs/select/field/index.jsx +200 -0
  113. package/src/{cogs → js/cogs}/select/index.cjs +5 -2
  114. package/src/js/cogs/select/index.d.cts +2 -0
  115. package/src/js/cogs/select/index.d.mts +18 -0
  116. package/src/{cogs → js/cogs}/select/index.jsx +56 -19
  117. package/src/{cogs → js/cogs}/select/title/index.cjs +5 -2
  118. package/src/js/cogs/select/title/index.d.cts +2 -0
  119. package/src/{cogs → js/cogs}/select/title/index.d.mts +4 -1
  120. package/src/js/cogs/select/title/index.jsx +19 -0
  121. package/src/{cogs → js/cogs}/text/description/index.cjs +5 -2
  122. package/src/js/cogs/text/description/index.d.cts +1 -0
  123. package/src/{cogs → js/cogs}/text/description/index.jsx +0 -4
  124. package/src/{cogs → js/cogs}/text/error-message/index.cjs +5 -2
  125. package/src/js/cogs/text/error-message/index.d.cts +1 -0
  126. package/src/{cogs → js/cogs}/text/error-message/index.jsx +1 -5
  127. package/src/{cogs → js/cogs}/text/field/index.cjs +5 -2
  128. package/src/js/cogs/text/field/index.d.cts +2 -0
  129. package/src/js/cogs/text/field/index.d.mts +14 -0
  130. package/src/js/cogs/text/field/index.jsx +83 -0
  131. package/src/{cogs → js/cogs}/text/index.cjs +5 -2
  132. package/src/js/cogs/text/index.d.cts +2 -0
  133. package/src/js/cogs/text/index.d.mts +18 -0
  134. package/src/{cogs → js/cogs}/text/index.jsx +28 -19
  135. package/src/{cogs → js/cogs}/text/title/index.cjs +5 -2
  136. package/src/js/cogs/text/title/index.d.cts +2 -0
  137. package/src/{cogs → js/cogs}/text/title/index.d.mts +4 -1
  138. package/src/js/cogs/text/title/index.jsx +19 -0
  139. package/src/{cogs → js/cogs}/textarea/description/index.cjs +5 -2
  140. package/src/js/cogs/textarea/description/index.d.cts +1 -0
  141. package/src/{cogs → js/cogs}/textarea/description/index.jsx +0 -4
  142. package/src/{cogs → js/cogs}/textarea/error-message/index.cjs +5 -2
  143. package/src/js/cogs/textarea/error-message/index.d.cts +1 -0
  144. package/src/{cogs → js/cogs}/textarea/error-message/index.jsx +0 -4
  145. package/src/{cogs → js/cogs}/textarea/field/index.cjs +5 -2
  146. package/src/js/cogs/textarea/field/index.d.cts +2 -0
  147. package/src/js/cogs/textarea/field/index.d.mts +18 -0
  148. package/src/{cogs → js/cogs}/textarea/field/index.jsx +38 -10
  149. package/src/{cogs → js/cogs}/textarea/index.cjs +5 -2
  150. package/src/js/cogs/textarea/index.d.cts +2 -0
  151. package/src/js/cogs/textarea/index.d.mts +18 -0
  152. package/src/{cogs → js/cogs}/textarea/index.jsx +27 -14
  153. package/src/{cogs → js/cogs}/textarea/title/index.cjs +5 -2
  154. package/src/js/cogs/textarea/title/index.d.cts +2 -0
  155. package/src/{cogs → js/cogs}/textarea/title/index.d.mts +4 -1
  156. package/src/{cogs → js/cogs}/textarea/title/index.jsx +8 -4
  157. package/src/{components → js/components}/common/disabled/index.cjs +5 -2
  158. package/src/js/components/common/disabled/index.d.cts +1 -0
  159. package/src/js/components/common/disabled/index.jsx +11 -0
  160. package/src/{components → js/components}/common/readonly/index.cjs +5 -2
  161. package/src/js/components/common/readonly/index.d.cts +1 -0
  162. package/src/js/components/common/readonly/index.jsx +11 -0
  163. package/src/{components → js/components}/common/required/index.cjs +5 -2
  164. package/src/js/components/common/required/index.d.cts +1 -0
  165. package/src/js/components/common/required/index.jsx +11 -0
  166. package/src/{components → js/components}/common/text-content/index.cjs +6 -3
  167. package/src/js/components/common/text-content/index.d.cts +2 -0
  168. package/src/{components → js/components}/common/text-content/index.d.mts +1 -3
  169. package/src/{components → js/components}/common/text-content/index.jsx +7 -6
  170. package/src/{components → js/components}/description/index.cjs +5 -2
  171. package/src/js/components/description/index.d.cts +2 -0
  172. package/src/{components → js/components}/description/index.d.mts +2 -7
  173. package/src/js/components/description/index.jsx +5 -0
  174. package/src/{components → js/components}/error-message/index.cjs +5 -2
  175. package/src/js/components/error-message/index.d.cts +2 -0
  176. package/src/{components → js/components}/error-message/index.d.mts +2 -5
  177. package/src/js/components/error-message/index.jsx +5 -0
  178. package/src/{components → js/components}/field/index.cjs +10 -2
  179. package/src/js/components/field/index.d.cts +1 -0
  180. package/src/js/components/field/index.d.mts +24 -0
  181. package/src/js/components/field/index.jsx +98 -0
  182. package/src/js/components/index.cjs +38 -0
  183. package/src/js/components/index.d.cts +4 -0
  184. package/src/js/components/index.d.mts +4 -0
  185. package/src/js/components/index.mjs +10 -0
  186. package/src/{components → js/components}/title/index.cjs +2 -2
  187. package/src/js/components/title/index.d.cts +2 -0
  188. package/src/js/components/title/index.d.mts +9 -0
  189. package/src/js/components/title/index.jsx +5 -0
  190. package/src/js/index.d.cts +72 -0
  191. package/src/js/index.d.mts +72 -0
  192. package/src/js/super/cogs/index.cjs +20 -0
  193. package/src/js/super/cogs/index.d.cts +2 -0
  194. package/src/js/super/cogs/index.d.mts +28 -0
  195. package/src/{cogs → js/super/cogs}/index.jsx +36 -118
  196. package/src/js/super/components/description/index.cjs +20 -0
  197. package/src/js/super/components/description/index.d.cts +2 -0
  198. package/src/js/super/components/description/index.d.mts +18 -0
  199. package/src/{components → js/super/components}/description/index.jsx +16 -3
  200. package/src/js/super/components/error-message/index.cjs +20 -0
  201. package/src/js/super/components/error-message/index.d.cts +2 -0
  202. package/src/js/super/components/error-message/index.d.mts +27 -0
  203. package/src/{components → js/super/components}/error-message/index.jsx +14 -7
  204. package/src/js/super/components/field/index.cjs +20 -0
  205. package/src/js/super/components/field/index.d.cts +2 -0
  206. package/src/js/super/components/field/index.d.mts +23 -0
  207. package/src/{components → js/super/components}/field/index.jsx +44 -71
  208. package/src/js/super/components/index.cjs +32 -0
  209. package/src/js/super/components/index.d.cts +4 -0
  210. package/src/js/super/components/index.d.mts +4 -0
  211. package/src/js/super/components/index.mjs +10 -0
  212. package/src/js/super/components/title/index.cjs +20 -0
  213. package/src/js/super/components/title/index.d.cts +2 -0
  214. package/src/js/super/components/title/index.d.mts +32 -0
  215. package/src/{components → js/super/components}/title/index.jsx +34 -7
  216. package/src/sass/.stylelintrc +14 -0
  217. package/src/sass/_cogs.scss +62 -0
  218. package/src/sass/cogs/_checkbox.scss +87 -0
  219. package/src/sass/cogs/_disabled.scss +15 -0
  220. package/src/sass/cogs/_error.scss +48 -0
  221. package/src/sass/cogs/_radio.scss +93 -0
  222. package/jsconfig.json +0 -5
  223. package/src/cogs/checkbox/field/index.d.mts +0 -9
  224. package/src/cogs/checkbox/index.d.mts +0 -9
  225. package/src/cogs/email/field/index.d.mts +0 -9
  226. package/src/cogs/email/field/index.jsx +0 -54
  227. package/src/cogs/email/index.d.mts +0 -9
  228. package/src/cogs/email/title/index.jsx +0 -15
  229. package/src/cogs/index.d.mts +0 -24
  230. package/src/cogs/number/field/index.d.mts +0 -9
  231. package/src/cogs/number/index.d.mts +0 -9
  232. package/src/cogs/password/field/index.d.mts +0 -9
  233. package/src/cogs/password/field/index.jsx +0 -54
  234. package/src/cogs/password/index.d.mts +0 -9
  235. package/src/cogs/radio/field/index.d.mts +0 -9
  236. package/src/cogs/radio/index.d.mts +0 -9
  237. package/src/cogs/select/field/index.d.mts +0 -9
  238. package/src/cogs/select/field/index.jsx +0 -111
  239. package/src/cogs/select/index.d.mts +0 -9
  240. package/src/cogs/select/title/index.jsx +0 -15
  241. package/src/cogs/text/field/index.d.mts +0 -9
  242. package/src/cogs/text/field/index.jsx +0 -54
  243. package/src/cogs/text/index.d.mts +0 -9
  244. package/src/cogs/text/title/index.jsx +0 -15
  245. package/src/cogs/textarea/field/index.d.mts +0 -9
  246. package/src/cogs/textarea/index.d.mts +0 -9
  247. package/src/common/index.d.mts +0 -9
  248. package/src/common/index.mjs +0 -7
  249. package/src/components/common/disabled/index.jsx +0 -9
  250. package/src/components/common/readonly/index.jsx +0 -9
  251. package/src/components/common/required/index.jsx +0 -9
  252. package/src/components/field/index.d.mts +0 -23
  253. package/src/components/title/index.d.mts +0 -19
  254. package/src/index.d.mts +0 -14
  255. package/tsconfig.json +0 -21
  256. /package/src/{cogs → js/cogs}/checkbox/description/index.d.mts +0 -0
  257. /package/src/{cogs → js/cogs}/checkbox/error-message/index.d.mts +0 -0
  258. /package/src/{cogs → js/cogs}/email/description/index.d.mts +0 -0
  259. /package/src/{cogs → js/cogs}/email/error-message/index.d.mts +0 -0
  260. /package/src/{cogs → js/cogs}/number/description/index.d.mts +0 -0
  261. /package/src/{cogs → js/cogs}/number/error-message/index.d.mts +0 -0
  262. /package/src/{cogs → js/cogs}/password/description/index.d.mts +0 -0
  263. /package/src/{cogs → js/cogs}/password/error-message/index.d.mts +0 -0
  264. /package/src/{cogs → js/cogs}/radio/description/index.d.mts +0 -0
  265. /package/src/{cogs → js/cogs}/radio/error-message/index.d.mts +0 -0
  266. /package/src/{cogs → js/cogs}/select/description/index.d.mts +0 -0
  267. /package/src/{cogs → js/cogs}/select/error-message/index.d.mts +0 -0
  268. /package/src/{cogs → js/cogs}/text/description/index.d.mts +0 -0
  269. /package/src/{cogs → js/cogs}/text/error-message/index.d.mts +0 -0
  270. /package/src/{cogs → js/cogs}/textarea/description/index.d.mts +0 -0
  271. /package/src/{cogs → js/cogs}/textarea/error-message/index.d.mts +0 -0
  272. /package/src/{components → js/components}/common/disabled/index.d.mts +0 -0
  273. /package/src/{components → js/components}/common/readonly/index.d.mts +0 -0
  274. /package/src/{components → js/components}/common/required/index.d.mts +0 -0
  275. /package/src/{index.cjs → js/index.cjs} +0 -0
  276. /package/src/{index.mjs → js/index.mjs} +0 -0
@@ -0,0 +1,20 @@
1
+ require('@babel/register')({
2
+ ignore: [
3
+ /node_modules\/(?!shinkansen|@modernpoacher)/
4
+ ]
5
+ })
6
+
7
+ const debug = require('debug')
8
+
9
+ const log = debug('@modernpoacher/cogs/super/components/description')
10
+
11
+ log('`cogs` is awake')
12
+
13
+ const {
14
+ default: Description
15
+ } = require('./index.jsx')
16
+
17
+ /**
18
+ * Exports only default
19
+ */
20
+ module.exports = Description
@@ -0,0 +1,2 @@
1
+ export { default } from '#cogs/super/components/description'
2
+ export * from '#cogs/super/components/description'
@@ -0,0 +1,18 @@
1
+ declare module '#cogs/super/components/description' {
2
+ import React from 'react'
3
+
4
+ export type DescriptionProps = CogsTypes.Super.Components.Description.DescriptionProps
5
+
6
+ export default class Description extends React.Component<DescriptionProps> {
7
+ static propTypes: object
8
+
9
+ getClassName (): string
10
+
11
+ shouldComponentUpdate (props: DescriptionProps): boolean
12
+ }
13
+ }
14
+
15
+ declare module '@modernpoacher/cogs/super/components/description' {
16
+ export { default } from '#cogs/super/components/description'
17
+ export * from '#cogs/super/components/description'
18
+ }
@@ -1,24 +1,37 @@
1
1
  /**
2
- * Description component
2
+ * @typedef {CogsTypes.Super.Components.Description.DescriptionProps} DescriptionProps
3
+ */
4
+
5
+ /**
6
+ * Description component
3
7
  */
4
8
  import React, { Component } from 'react'
5
9
  import PropTypes from 'prop-types'
6
10
 
7
11
  import TextContent from '#cogs/components/common/text-content'
8
12
 
13
+ /**
14
+ * @extends {Component<DescriptionProps>}
15
+ */
9
16
  export default class Description extends Component {
10
17
  getClassName () {
11
18
  return 'description'
12
19
  }
13
20
 
14
- shouldComponentUpdate (props, state) {
21
+ /**
22
+ * @param {DescriptionProps} props
23
+ * @returns {boolean}
24
+ */
25
+ shouldComponentUpdate (props) {
15
26
  return (
16
27
  (props.description !== this.props.description)
17
28
  )
18
29
  }
19
30
 
20
31
  render () {
21
- const { description } = this.props
32
+ const {
33
+ description
34
+ } = this.props
22
35
 
23
36
  if (description) {
24
37
  return (
@@ -0,0 +1,20 @@
1
+ require('@babel/register')({
2
+ ignore: [
3
+ /node_modules\/(?!shinkansen|@modernpoacher)/
4
+ ]
5
+ })
6
+
7
+ const debug = require('debug')
8
+
9
+ const log = debug('@modernpoacher/cogs/super/components/error-message')
10
+
11
+ log('`cogs` is awake')
12
+
13
+ const {
14
+ default: ErrorMessage
15
+ } = require('./index.jsx')
16
+
17
+ /**
18
+ * Exports only default
19
+ */
20
+ module.exports = ErrorMessage
@@ -0,0 +1,2 @@
1
+ export { default } from '#cogs/super/components/error-message'
2
+ export * from '#cogs/super/components/error-message'
@@ -0,0 +1,27 @@
1
+ declare module '#cogs/super/components/error-message' {
2
+ import React from 'react'
3
+
4
+ export type ErrorMessageProps = CogsTypes.Super.Components.ErrorMessage.ErrorMessageProps
5
+ export type ErrorMessageState = CogsTypes.Super.Components.ErrorMessage.ErrorMessageState
6
+
7
+ export default class ErrorMessage extends React.Component<ErrorMessageProps, ErrorMessageState> {
8
+ static propTypes: object
9
+
10
+ hasTextContent (): boolean
11
+
12
+ getTextContent (): string
13
+
14
+ getClassName (): string
15
+
16
+ static getDerivedStateFromProps (props: ErrorMessageProps, state: ErrorMessageState): ErrorMessageState
17
+
18
+ shouldComponentUpdate (props: ErrorMessageProps, state: ErrorMessageState): boolean
19
+
20
+ renderTextContent (): React.JSX.Element | null
21
+ }
22
+ }
23
+
24
+ declare module '@modernpoacher/cogs/super/components/error-message' {
25
+ export { default } from '#cogs/super/components/error-message'
26
+ export * from '#cogs/super/components/error-message'
27
+ }
@@ -1,5 +1,4 @@
1
1
  /**
2
- * @typedef {CogsTypes.ErrorDefinitionType} ErrorDefinitionType
3
2
  * @typedef {CogsTypes.Super.Components.ErrorMessage.ErrorMessageProps} ErrorMessageProps
4
3
  * @typedef {CogsTypes.Super.Components.ErrorMessage.ErrorMessageState} ErrorMessageState
5
4
  */
@@ -26,22 +25,26 @@ export default class ErrorMessage extends Component {
26
25
  }
27
26
 
28
27
  /**
29
- * Compare current and latest `props` for changes to `errorMessage`
28
+ * Compare current and latest `state` for changes to `errorMessage`
30
29
  *
31
- * @param {{errorMessage?: string}} props Latest props
30
+ * @param {ErrorMessageProps} props Latest props
32
31
  * @returns {boolean}
33
32
  */
34
- shouldComponentUpdate (props, state) {
33
+ shouldComponentUpdate (props) {
35
34
  return (props.errorMessage !== this.props.errorMessage)
36
35
  }
37
36
 
38
37
  render () {
39
- const { errorMessage } = this.props
38
+ const {
39
+ errorMessage
40
+ } = this.props
40
41
 
41
42
  if (errorMessage) {
42
43
  return (
43
44
  <span className={this.getClassName()}>
44
- <TextContent textContent={errorMessage} />
45
+ <TextContent
46
+ textContent={errorMessage}
47
+ />
45
48
  </span>
46
49
  )
47
50
  }
@@ -51,5 +54,9 @@ export default class ErrorMessage extends Component {
51
54
  }
52
55
 
53
56
  ErrorMessage.propTypes = {
54
- errorMessage: PropTypes.string
57
+ errorMessage: PropTypes.shape({
58
+ type: PropTypes.string.isRequired,
59
+ params: PropTypes.shape({}).isRequired,
60
+ uri: PropTypes.string.isRequired
61
+ })
55
62
  }
@@ -0,0 +1,20 @@
1
+ require('@babel/register')({
2
+ ignore: [
3
+ /node_modules\/(?!shinkansen|@modernpoacher)/
4
+ ]
5
+ })
6
+
7
+ const debug = require('debug')
8
+
9
+ const log = debug('@modernpoacher/cogs/super/components/field')
10
+
11
+ log('`cogs` is awake')
12
+
13
+ const {
14
+ default: Field
15
+ } = require('./index.jsx')
16
+
17
+ /**
18
+ * Exports only default
19
+ */
20
+ module.exports = Field
@@ -0,0 +1,2 @@
1
+ export { default } from '#cogs/super/components/field'
2
+ export * from '#cogs/super/components/field'
@@ -0,0 +1,23 @@
1
+ declare module '#cogs/super/components/field' {
2
+ import React from 'react'
3
+ import type {
4
+ ChangeEvent
5
+ } from 'react'
6
+
7
+ export type FieldProps = CogsTypes.Super.Components.Field.FieldProps
8
+
9
+ export default class Field<P extends FieldProps> extends React.Component<P> {
10
+ static propTypes: object
11
+
12
+ getClassName (): string
13
+
14
+ shouldComponentUpdate (props: FieldProps): boolean
15
+
16
+ handleChange (event: ChangeEvent<HTMLInputElement> | ChangeEvent<HTMLTextAreaElement> | ChangeEvent<HTMLSelectElement>): void
17
+ }
18
+ }
19
+
20
+ declare module '@modernpoacher/cogs/super/components/field' {
21
+ export { default } from '#cogs/super/components/field'
22
+ export * from '#cogs/super/components/field'
23
+ }
@@ -1,22 +1,50 @@
1
1
  /**
2
- * Field component
2
+ * @typedef {CogsTypes.OnEventType} OnEventType
3
+ * @typedef {CogsTypes.Super.Components.Field.FieldProps} FieldProps
4
+ */
5
+
6
+ /**
7
+ * Field component
3
8
  */
4
9
  import React, { Component } from 'react'
5
10
  import PropTypes from 'prop-types'
6
11
 
7
- import {
8
- DEFAULT_HANDLE_CHANGE,
9
- DEFAULT_HANDLE_CLICK
10
- } from '#cogs/common'
12
+ /**
13
+ * @type {OnEventType}
14
+ */
15
+ function DEFAULT_HANDLE_EVENT () {
16
+ //
17
+ }
11
18
 
19
+ /**
20
+ * @extends {Component<FieldProps>}
21
+ */
12
22
  export default class Field extends Component {
13
23
  getClassName () {
14
24
  return 'input'
15
25
  }
16
26
 
17
- shouldComponentUpdate (props, state) {
27
+ /**
28
+ * @param {{ target: { value?: string } }} event
29
+ * @returns {void}
30
+ */
31
+ handleChange = ({ target: { value } }) => {
32
+ const {
33
+ onChange = DEFAULT_HANDLE_EVENT
34
+ } = this.props
35
+
36
+ onChange(value)
37
+ }
38
+
39
+ /**
40
+ * @param {FieldProps} props
41
+ * @returns {boolean}
42
+ */
43
+ shouldComponentUpdate (props) {
18
44
  return (
45
+ (props.name !== this.props.name) ||
19
46
  (props.id !== this.props.id) ||
47
+ (props.value !== this.props.value) ||
20
48
  (props.required !== this.props.required) ||
21
49
  (props.disabled !== this.props.disabled) ||
22
50
  (props.readOnly !== this.props.readOnly) ||
@@ -29,7 +57,9 @@ export default class Field extends Component {
29
57
 
30
58
  render () {
31
59
  const {
60
+ name,
32
61
  id,
62
+ value,
33
63
  required = false,
34
64
  disabled = false,
35
65
  readOnly = false,
@@ -41,13 +71,16 @@ export default class Field extends Component {
41
71
 
42
72
  return (
43
73
  <input
74
+ name={name}
44
75
  id={id}
76
+ value={value}
45
77
  required={required}
46
78
  disabled={disabled}
47
79
  readOnly={readOnly}
48
80
  tabIndex={tabIndex}
49
81
  accessKey={accessKey}
50
82
  placeholder={placeholder}
83
+ onChange={this.handleChange}
51
84
  className={this.getClassName()}
52
85
  ref={fieldRef}
53
86
  />
@@ -56,8 +89,9 @@ export default class Field extends Component {
56
89
  }
57
90
 
58
91
  Field.propTypes = {
59
- id: PropTypes.string,
60
92
  name: PropTypes.string.isRequired,
93
+ id: PropTypes.string,
94
+ value: PropTypes.string,
61
95
  required: PropTypes.bool,
62
96
  disabled: PropTypes.bool,
63
97
  readOnly: PropTypes.bool,
@@ -66,69 +100,8 @@ Field.propTypes = {
66
100
  placeholder: PropTypes.string,
67
101
  onChange: PropTypes.func,
68
102
  fieldRef: PropTypes.shape({
69
- current: PropTypes.shape().isRequired
103
+ current: PropTypes.shape({
104
+ value: PropTypes.string
105
+ })
70
106
  })
71
107
  }
72
-
73
- /**
74
- * ValueField component
75
- */
76
- export class ValueField extends Field {
77
- shouldComponentUpdate (props, state) {
78
- return (
79
- super.shouldComponentUpdate(props, state) ||
80
- (props.value !== this.props.value)
81
- )
82
- }
83
-
84
- handleChange = ({ target: { value } }) => {
85
- const {
86
- onChange = DEFAULT_HANDLE_CHANGE
87
- } = this.props
88
-
89
- onChange(value)
90
- }
91
- }
92
-
93
- ValueField.propTypes = {
94
- ...Field.propTypes,
95
- value: PropTypes.string,
96
- defaultValue: PropTypes.string
97
- }
98
-
99
- /**
100
- * CheckField component
101
- */
102
- export class CheckField extends Field {
103
- shouldComponentUpdate (props, state) {
104
- return (
105
- super.shouldComponentUpdate(props, state) ||
106
- (props.value !== this.props.value) ||
107
- (props.checked !== this.props.checked) ||
108
- (props.onClick !== this.props.onClick)
109
- )
110
- }
111
-
112
- handleClick = ({ target: { value, checked } }) => {
113
- const {
114
- onClick = DEFAULT_HANDLE_CLICK
115
- } = this.props
116
-
117
- onClick(value, checked)
118
- }
119
-
120
- handleChange = ({ target: { value, checked } }) => {
121
- const {
122
- onChange = DEFAULT_HANDLE_CHANGE
123
- } = this.props
124
-
125
- onChange(value, checked)
126
- }
127
- }
128
-
129
- CheckField.propTypes = {
130
- ...Field.propTypes,
131
- checked: PropTypes.bool,
132
- defaultChecked: PropTypes.bool,
133
- onClick: PropTypes.func
134
- }
@@ -0,0 +1,32 @@
1
+ require('@babel/register')({
2
+ ignore: [
3
+ /node_modules\/(?!shinkansen|@modernpoacher)/
4
+ ]
5
+ })
6
+
7
+ const debug = require('debug')
8
+
9
+ const log = debug('@modernpoacher/cogs/super/components')
10
+
11
+ log('`cogs` is awake')
12
+
13
+ const {
14
+ default: Description
15
+ } = require('./description/index.jsx')
16
+
17
+ const {
18
+ default: ErrorMessage
19
+ } = require('./error-message/index.jsx')
20
+
21
+ const {
22
+ default: Field
23
+ } = require('./field/index.jsx')
24
+
25
+ const {
26
+ default: Title
27
+ } = require('./title/index.jsx')
28
+
29
+ module.exports.Description = Description
30
+ module.exports.ErrorMessage = ErrorMessage
31
+ module.exports.Field = Field
32
+ module.exports.Title = Title
@@ -0,0 +1,4 @@
1
+ export { default as Description } from '#cogs/super/components/description'
2
+ export { default as ErrorMessage } from '#cogs/super/components/error-message'
3
+ export { default as Field } from '#cogs/super/components/field'
4
+ export { default as Title } from '#cogs/super/components/title'
@@ -0,0 +1,4 @@
1
+ export { default as Description } from '#cogs/super/components/description'
2
+ export { default as ErrorMessage } from '#cogs/super/components/error-message'
3
+ export { default as Field } from '#cogs/super/components/field'
4
+ export { default as Title } from '#cogs/super/components/title'
@@ -0,0 +1,10 @@
1
+ import debug from 'debug'
2
+
3
+ const log = debug('@modernpoacher/cogs/super/components')
4
+
5
+ log('`cogs` is awake')
6
+
7
+ export { default as Description } from './description/index.cjs'
8
+ export { default as ErrorMessage } from './error-message/index.cjs'
9
+ export { default as Field } from './field/index.cjs'
10
+ export { default as Title } from './title/index.cjs'
@@ -0,0 +1,20 @@
1
+ require('@babel/register')({
2
+ ignore: [
3
+ /node_modules\/(?!shinkansen|@modernpoacher)/
4
+ ]
5
+ })
6
+
7
+ const debug = require('debug')
8
+
9
+ const log = debug('@modernpoacher/cogs/super/components/title')
10
+
11
+ log('`cogs` is awake')
12
+
13
+ const {
14
+ default: Title
15
+ } = require('./index.jsx')
16
+
17
+ /**
18
+ * Exports only default
19
+ */
20
+ module.exports = Title
@@ -0,0 +1,2 @@
1
+ export { default } from '#cogs/super/components/title'
2
+ export * from '#cogs/super/components/title'
@@ -0,0 +1,32 @@
1
+ declare module '#cogs/super/components/title' {
2
+ import React from 'react'
3
+
4
+ export type TitleProps = CogsTypes.Super.Components.Title.TitleProps
5
+
6
+ export default class Title<P extends TitleProps> extends React.Component<P> {
7
+ static propTypes: object
8
+
9
+ isRequired (): boolean
10
+
11
+ isDisabled (): boolean
12
+
13
+ isReadOnly (): boolean
14
+
15
+ getClassName (): string
16
+
17
+ shouldComponentUpdate (props: TitleProps): boolean
18
+
19
+ renderTextContent (textContent: string): React.JSX.Element
20
+
21
+ renderIsRequired (): React.JSX.Element | null
22
+
23
+ renderIsDisabled (): React.JSX.Element | null
24
+
25
+ renderIsReadOnly (): React.JSX.Element | null
26
+ }
27
+ }
28
+
29
+ declare module '@modernpoacher/cogs/super/components/title' {
30
+ export { default } from '#cogs/super/components/title'
31
+ export * from '#cogs/super/components/title'
32
+ }
@@ -1,5 +1,9 @@
1
1
  /**
2
- * Title component
2
+ * @typedef {CogsTypes.Super.Components.Title.TitleProps} TitleProps
3
+ */
4
+
5
+ /**
6
+ * Title component
3
7
  */
4
8
  import React, { Component } from 'react'
5
9
  import PropTypes from 'prop-types'
@@ -9,6 +13,9 @@ import Required from '#cogs/components/common/required'
9
13
  import Disabled from '#cogs/components/common/disabled'
10
14
  import ReadOnly from '#cogs/components/common/readonly'
11
15
 
16
+ /**
17
+ * @extends {Component<TitleProps>}
18
+ */
12
19
  export default class Title extends Component {
13
20
  isRequired () {
14
21
  const {
@@ -38,7 +45,11 @@ export default class Title extends Component {
38
45
  return 'title'
39
46
  }
40
47
 
41
- shouldComponentUpdate (props, state) {
48
+ /**
49
+ * @param {TitleProps} props
50
+ * @returns {boolean}
51
+ */
52
+ shouldComponentUpdate (props) {
42
53
  return (
43
54
  (props.id !== this.props.id) ||
44
55
  (props.title !== this.props.title) ||
@@ -49,6 +60,18 @@ export default class Title extends Component {
49
60
  )
50
61
  }
51
62
 
63
+ /**
64
+ * @param {string} textContent
65
+ * @returns {React.JSX.Element}
66
+ */
67
+ renderTextContent (textContent) {
68
+ return (
69
+ <TextContent
70
+ textContent={textContent}
71
+ />
72
+ )
73
+ }
74
+
52
75
  renderIsRequired () {
53
76
  if (this.isRequired()) {
54
77
  return (
@@ -80,14 +103,18 @@ export default class Title extends Component {
80
103
  }
81
104
 
82
105
  render () {
83
- const { title } = this.props
84
-
85
- if (title) {
86
- const { id } = this.props
106
+ const {
107
+ id,
108
+ title
109
+ } = this.props
87
110
 
111
+ if (id && title) {
88
112
  return (
89
113
  <label htmlFor={id} className={this.getClassName()}>
90
- <TextContent textContent={title} />
114
+ {this.renderTextContent(title)}
115
+ {this.renderIsRequired()}
116
+ {this.renderIsDisabled()}
117
+ {this.renderIsReadOnly()}
91
118
  </label>
92
119
  )
93
120
  }
@@ -0,0 +1,14 @@
1
+ {
2
+ "extends": "stylelint-config-recommended-scss",
3
+ "plugins": [
4
+ "stylelint-scss"
5
+ ],
6
+ "rules": {
7
+ "no-descending-specificity": [
8
+ true,
9
+ {
10
+ "severity": "warning"
11
+ }
12
+ ]
13
+ }
14
+ }
@@ -0,0 +1,62 @@
1
+ @use "design-system/palette";
2
+ @use "design-system/typography";
3
+
4
+ @use "cogs/radio";
5
+ @use "cogs/checkbox";
6
+ @use "cogs/disabled";
7
+ @use "cogs/error";
8
+
9
+ @mixin cogs {
10
+ padding: 0;
11
+ margin: 1rem 0;
12
+
13
+ &:first-child {
14
+ margin-top: 0;
15
+ }
16
+
17
+ &:last-child {
18
+ margin-bottom: 0;
19
+ }
20
+
21
+ line-height: 1.375rem;
22
+
23
+ &.radio {
24
+ @include radio.cog-radio;
25
+ }
26
+
27
+ &.checkbox {
28
+ @include checkbox.cog-checkbox;
29
+ }
30
+
31
+ &.disabled {
32
+ @include disabled.cog-disabled;
33
+ }
34
+
35
+ &.error {
36
+ @include error.cog-error;
37
+ }
38
+
39
+ .description {
40
+ @include typography.secondary-text;
41
+
42
+ & /* stylelint-disable-line no-duplicate-selectors */ {
43
+ display: block;
44
+ padding: 0;
45
+ margin: 0 0 0.25rem 0;
46
+ }
47
+ }
48
+
49
+ .error-message {
50
+ @include typography.error-standard;
51
+
52
+ & /* stylelint-disable-line no-duplicate-selectors */ {
53
+ display: block;
54
+ padding: 0;
55
+ margin: 0 0 0.25rem 0;
56
+ }
57
+ }
58
+ }
59
+
60
+ %cogs {
61
+ @include cogs;
62
+ }