@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,19 @@
1
+ /**
2
+ * @typedef {CogsTypes.Super.Components.Title.TitleProps} TitleProps
3
+ * @typedef {CogsTypes.Components.Title.Email.EmailProps} EmailProps
4
+ */
5
+
6
+ /**
7
+ * EmailTitle component
8
+ */
9
+ import classnames from 'classnames'
10
+ import Title from '#cogs/components/title'
11
+
12
+ /**
13
+ * @extends {Title<TitleProps & EmailProps>}
14
+ */
15
+ export default class EmailTitle extends Title {
16
+ getClassName () {
17
+ return classnames(super.getClassName(), 'email')
18
+ }
19
+ }
@@ -10,7 +10,12 @@ const log = debug('@modernpoacher/cogs/cogs')
10
10
 
11
11
  log('`cogs` is awake')
12
12
 
13
- /**
14
- * Has default export, etc
15
- */
16
- module.exports = require('./index.jsx')
13
+ const {
14
+ ValueCog,
15
+ CheckCog,
16
+ toInputValue
17
+ } = require('./index.jsx')
18
+
19
+ module.exports.ValueCog = ValueCog
20
+ module.exports.CheckCog = CheckCog
21
+ module.exports.toInputValue = toInputValue
@@ -0,0 +1,5 @@
1
+ export {
2
+ ValueCog,
3
+ CheckCog,
4
+ toInputValue
5
+ } from '#cogs/cogs'
@@ -0,0 +1,25 @@
1
+ declare module '#cogs/cogs' {
2
+ import Cog from '#cogs/super/cogs'
3
+
4
+ export type CogProps = CogsTypes.Super.Cogs.CogProps
5
+ export type ValueProps = CogsTypes.Cogs.ValueProps
6
+ export type CheckProps = CogsTypes.Cogs.CheckProps
7
+
8
+ export class ValueCog<P extends ValueProps> extends Cog<P> {
9
+ shouldComponentUpdate (props: ValueProps): boolean
10
+ }
11
+
12
+ export class CheckCog<P extends CheckProps> extends Cog<P> {
13
+ shouldComponentUpdate (props: CheckProps): boolean
14
+ }
15
+
16
+ export function toInputValue (value: unknown): string
17
+ }
18
+
19
+ declare module '@modernpoacher/cogs/cogs' {
20
+ export {
21
+ ValueCog,
22
+ CheckCog,
23
+ toInputValue
24
+ } from '#cogs/cogs'
25
+ }
@@ -0,0 +1,160 @@
1
+ /**
2
+ * @typedef {CogsTypes.OnEventType} OnEventType
3
+ * @typedef {CogsTypes.Super.Cogs.CogProps} CogProps
4
+ * @typedef {CogsTypes.Cogs.ValueProps} ValueProps
5
+ * @typedef {CogsTypes.Cogs.CheckProps} CheckProps
6
+ */
7
+
8
+ /**
9
+ * ValueCog component
10
+ * CheckCog component
11
+ */
12
+ import React from 'react'
13
+ import PropTypes from 'prop-types'
14
+
15
+ import Cog from '#cogs/super/cogs'
16
+
17
+ import {
18
+ ValueField,
19
+ CheckField,
20
+ toInputValue
21
+ } from '#cogs/components/field'
22
+
23
+ /**
24
+ * @type {OnEventType}
25
+ */
26
+ function DEFAULT_HANDLE_EVENT () {
27
+ //
28
+ }
29
+
30
+ export {
31
+ toInputValue
32
+ }
33
+
34
+ /**
35
+ * @extends {Cog<CogProps & ValueProps>}
36
+ */
37
+ export class ValueCog extends Cog {
38
+ /**
39
+ * @param {ValueProps} props
40
+ * @returns {boolean}
41
+ */
42
+ shouldComponentUpdate (props) {
43
+ const {
44
+ value,
45
+ defaultValue,
46
+ ...superProps
47
+ } = props
48
+
49
+ return (
50
+ (value !== this.props.value) ||
51
+ (defaultValue !== this.props.defaultValue) ||
52
+ super.shouldComponentUpdate(superProps)
53
+ )
54
+ }
55
+
56
+ renderField () {
57
+ const id = this.getId()
58
+
59
+ const {
60
+ name,
61
+ value,
62
+ required = false,
63
+ disabled = false,
64
+ readOnly = false,
65
+ tabIndex,
66
+ accessKey,
67
+ placeholder,
68
+ onChange = DEFAULT_HANDLE_EVENT,
69
+ fieldRef
70
+ } = this.props
71
+
72
+ return (
73
+ <ValueField
74
+ name={name}
75
+ id={id}
76
+ value={value}
77
+ required={required}
78
+ disabled={disabled}
79
+ readOnly={readOnly}
80
+ tabIndex={tabIndex}
81
+ accessKey={accessKey}
82
+ placeholder={placeholder}
83
+ onChange={onChange}
84
+ fieldRef={fieldRef}
85
+ />
86
+ )
87
+ }
88
+ }
89
+
90
+ ValueCog.propTypes = {
91
+ ...Cog.propTypes,
92
+ defaultValue: PropTypes.string
93
+ }
94
+
95
+ /**
96
+ * @extends {Cog<CogProps & CheckProps>}
97
+ */
98
+ export class CheckCog extends Cog {
99
+ /**
100
+ * @param {CheckProps} props
101
+ * @returns {boolean}
102
+ */
103
+ shouldComponentUpdate (props) {
104
+ const {
105
+ checked,
106
+ defaultChecked,
107
+ onClick,
108
+ ...superProps
109
+ } = props
110
+
111
+ return (
112
+ (checked !== this.props.checked) ||
113
+ (defaultChecked !== this.props.defaultChecked) ||
114
+ super.shouldComponentUpdate(superProps) ||
115
+ (onClick !== this.props.onClick)
116
+ )
117
+ }
118
+
119
+ renderField () {
120
+ const id = this.getId()
121
+
122
+ const {
123
+ name,
124
+ value,
125
+ required = false,
126
+ disabled = false,
127
+ readOnly = false,
128
+ tabIndex,
129
+ accessKey,
130
+ placeholder,
131
+ onChange = DEFAULT_HANDLE_EVENT,
132
+ onClick = DEFAULT_HANDLE_EVENT,
133
+ fieldRef
134
+ } = this.props
135
+
136
+ return (
137
+ <CheckField
138
+ name={name}
139
+ id={id}
140
+ value={value}
141
+ required={required}
142
+ disabled={disabled}
143
+ readOnly={readOnly}
144
+ tabIndex={tabIndex}
145
+ accessKey={accessKey}
146
+ placeholder={placeholder}
147
+ onChange={onChange}
148
+ onClick={onClick}
149
+ fieldRef={fieldRef}
150
+ />
151
+ )
152
+ }
153
+ }
154
+
155
+ CheckCog.propTypes = {
156
+ ...Cog.propTypes,
157
+ checked: PropTypes.bool,
158
+ defaultChecked: PropTypes.bool,
159
+ onClick: PropTypes.func
160
+ }
@@ -11,7 +11,10 @@ const log = debug('@modernpoacher/cogs/cogs/number/description')
11
11
  log('`cogs` is awake')
12
12
 
13
13
  const {
14
- default: component
14
+ default: Description
15
15
  } = require('./index.jsx')
16
16
 
17
- module.exports = component
17
+ /**
18
+ * Exports only default
19
+ */
20
+ module.exports = Description
@@ -0,0 +1 @@
1
+ export { default } from '#cogs/cogs/number/description'
@@ -9,7 +9,3 @@ export default class NumberDescription extends Description {
9
9
  return classnames(super.getClassName(), 'number')
10
10
  }
11
11
  }
12
-
13
- NumberDescription.propTypes = {
14
- ...Description.propTypes
15
- }
@@ -11,7 +11,10 @@ const log = debug('@modernpoacher/cogs/cogs/number/error-message')
11
11
  log('`cogs` is awake')
12
12
 
13
13
  const {
14
- default: component
14
+ default: ErrorMessage
15
15
  } = require('./index.jsx')
16
16
 
17
- module.exports = component
17
+ /**
18
+ * Exports only default
19
+ */
20
+ module.exports = ErrorMessage
@@ -0,0 +1 @@
1
+ export { default } from '#cogs/cogs/number/error-message'
@@ -9,7 +9,3 @@ export default class NumberErrorMessage extends ErrorMessage {
9
9
  return classnames(super.getClassName(), 'number')
10
10
  }
11
11
  }
12
-
13
- NumberErrorMessage.propTypes = {
14
- ...ErrorMessage.propTypes
15
- }
@@ -11,7 +11,10 @@ const log = debug('@modernpoacher/cogs/cogs/number/field')
11
11
  log('`cogs` is awake')
12
12
 
13
13
  const {
14
- default: component
14
+ default: Field
15
15
  } = require('./index.jsx')
16
16
 
17
- module.exports = component
17
+ /**
18
+ * Exports only default
19
+ */
20
+ module.exports = Field
@@ -0,0 +1,2 @@
1
+ export { default } from '#cogs/cogs/number/field'
2
+ export * from '#cogs/cogs/number/field'
@@ -0,0 +1,14 @@
1
+ declare module '#cogs/cogs/number/field' {
2
+ import {
3
+ ValueField
4
+ } from '#cogs/components/field'
5
+
6
+ export type NumberProps = CogsTypes.Components.Field.Number.NumberProps
7
+
8
+ export default class NumberField<P extends NumberProps> extends ValueField<P> {}
9
+ }
10
+
11
+ declare module '@modernpoacher/cogs/cogs/number/field' {
12
+ export { default } from '#cogs/cogs/number/field'
13
+ export * from '#cogs/cogs/number/field'
14
+ }
@@ -1,12 +1,23 @@
1
1
  /**
2
- * NumberField component
2
+ * @typedef {CogsTypes.Components.Field.ValueProps} ValueProps
3
+ * @typedef {CogsTypes.Components.Field.Number.NumberProps} NumberProps
4
+ */
5
+
6
+ /**
7
+ * NumberField component
3
8
  */
4
9
  import React from 'react'
5
10
  import PropTypes from 'prop-types'
6
11
  import classnames from 'classnames'
7
12
 
8
- import { ValueField } from '#cogs/components/field'
13
+ import {
14
+ ValueField,
15
+ toInputValue
16
+ } from '#cogs/components/field'
9
17
 
18
+ /**
19
+ * @extends {ValueField<ValueProps & NumberProps>}
20
+ */
10
21
  export default class NumberField extends ValueField {
11
22
  getClassName () {
12
23
  return classnames(super.getClassName(), 'number')
@@ -14,9 +25,8 @@ export default class NumberField extends ValueField {
14
25
 
15
26
  render () {
16
27
  const {
17
- id,
18
28
  name,
19
- value,
29
+ id,
20
30
  defaultValue,
21
31
  required = false,
22
32
  disabled = false,
@@ -29,12 +39,35 @@ export default class NumberField extends ValueField {
29
39
 
30
40
  const className = this.getClassName()
31
41
 
42
+ if (defaultValue === undefined) {
43
+ const {
44
+ value
45
+ } = this.props
46
+
47
+ return (
48
+ <input
49
+ name={name}
50
+ id={id}
51
+ value={toInputValue(value)}
52
+ required={required}
53
+ disabled={disabled}
54
+ readOnly={readOnly}
55
+ tabIndex={tabIndex}
56
+ accessKey={accessKey}
57
+ placeholder={placeholder}
58
+ onChange={this.handleChange}
59
+ className={className}
60
+ type='number'
61
+ ref={fieldRef}
62
+ />
63
+ )
64
+ }
65
+
32
66
  return (
33
67
  <input
34
- id={id}
35
68
  name={name}
36
- value={value}
37
- defaultValue={defaultValue}
69
+ id={id}
70
+ defaultValue={String(defaultValue)}
38
71
  required={required}
39
72
  disabled={disabled}
40
73
  readOnly={readOnly}
@@ -11,7 +11,10 @@ const log = debug('@modernpoacher/cogs/cogs/number')
11
11
  log('`cogs` is awake')
12
12
 
13
13
  const {
14
- default: component
14
+ default: Number
15
15
  } = require('./index.jsx')
16
16
 
17
- module.exports = component
17
+ /**
18
+ * Exports only default
19
+ */
20
+ module.exports = Number
@@ -0,0 +1,2 @@
1
+ export { default } from '#cogs/cogs/number'
2
+ export * from '#cogs/cogs/number'
@@ -0,0 +1,18 @@
1
+ declare module '#cogs/cogs/number' {
2
+ import {
3
+ ValueCog
4
+ } from '#cogs/cogs'
5
+
6
+ export type NumberProps = CogsTypes.Cogs.Number.NumberProps
7
+
8
+ export default class NumberCog<P extends NumberProps> extends ValueCog<Omit<Omit<P, 'value'>, 'defaultValue'>> {
9
+ handleChange (
10
+ value?: string | string[]
11
+ ): void
12
+ }
13
+ }
14
+
15
+ declare module '@modernpoacher/cogs/cogs/number' {
16
+ export { default } from '#cogs/cogs/number'
17
+ export * from '#cogs/cogs/number'
18
+ }
@@ -1,29 +1,46 @@
1
1
  /**
2
- * NumberCog component
2
+ * @typedef {CogsTypes.OnEventType} OnEventType
3
+ * @typedef {CogsTypes.Cogs.ValueProps} ValueProps
4
+ * @typedef {CogsTypes.Cogs.Number.NumberProps} NumberProps
5
+ */
6
+
7
+ /**
8
+ * NumberCog component
3
9
  */
4
10
  import React from 'react'
5
11
  import PropTypes from 'prop-types'
6
12
  import classnames from 'classnames'
7
13
 
8
- import { ValueCog } from '#cogs/cogs'
9
-
10
14
  import {
11
- DEFAULT_HANDLE_CHANGE
12
- } from '#cogs/common'
15
+ ValueCog
16
+ } from '#cogs/cogs'
17
+
18
+ import Title from '#cogs/cogs/number/title'
19
+ import Description from '#cogs/cogs/number/description'
20
+ import ErrorMessage from '#cogs/cogs/number/error-message'
21
+ import Field from '#cogs/cogs/number/field'
13
22
 
14
- import Title from './title/index.jsx'
15
- import Description from './description/index.jsx'
16
- import ErrorMessage from './error-message/index.jsx'
17
- import Field from './field/index.jsx'
23
+ /**
24
+ * @type {OnEventType}
25
+ */
26
+ function DEFAULT_HANDLE_EVENT () {
27
+ //
28
+ }
18
29
 
30
+ /**
31
+ * @extends {ValueCog<ValueProps & NumberProps>}
32
+ */
19
33
  export default class NumberCog extends ValueCog {
20
34
  getClassName () {
21
35
  return classnames(super.getClassName(), 'number')
22
36
  }
23
37
 
38
+ /**
39
+ * @param {string | string[]} [value]
40
+ */
24
41
  handleChange = (value) => {
25
42
  const {
26
- onChange = DEFAULT_HANDLE_CHANGE
43
+ onChange = DEFAULT_HANDLE_EVENT
27
44
  } = this.props
28
45
 
29
46
  onChange(value)
@@ -92,8 +109,8 @@ export default class NumberCog extends ValueCog {
92
109
 
93
110
  return (
94
111
  <Field
95
- id={id}
96
112
  name={name}
113
+ id={id}
97
114
  value={value}
98
115
  defaultValue={defaultValue}
99
116
  required={required}
@@ -11,7 +11,10 @@ const log = debug('@modernpoacher/cogs/cogs/number/title')
11
11
  log('`cogs` is awake')
12
12
 
13
13
  const {
14
- default: component
14
+ default: Title
15
15
  } = require('./index.jsx')
16
16
 
17
- module.exports = component
17
+ /**
18
+ * Exports only default
19
+ */
20
+ module.exports = Title
@@ -0,0 +1,2 @@
1
+ export { default } from '#cogs/cogs/number/title'
2
+ export * from '#cogs/cogs/number/title'
@@ -1,9 +1,12 @@
1
1
  declare module '#cogs/cogs/number/title' {
2
2
  import Title from '#cogs/components/title'
3
3
 
4
- export default class NumberTitle extends Title {}
4
+ export type NumberProps = CogsTypes.Components.Title.Number.NumberProps
5
+
6
+ export default class NumberTitle<P extends NumberProps> extends Title<P> {}
5
7
  }
6
8
 
7
9
  declare module '@modernpoacher/cogs/cogs/number/title' {
8
10
  export { default } from '#cogs/cogs/number/title'
11
+ export * from '#cogs/cogs/number/title'
9
12
  }
@@ -1,15 +1,19 @@
1
+ /**
2
+ * @typedef {CogsTypes.Super.Components.Title.TitleProps} TitleProps
3
+ * @typedef {CogsTypes.Components.Title.Number.NumberProps} NumberProps
4
+ */
5
+
1
6
  /**
2
7
  * NumberTitle component
3
8
  */
4
9
  import classnames from 'classnames'
5
10
  import Title from '#cogs/components/title'
6
11
 
12
+ /**
13
+ * @extends {Title<TitleProps & NumberProps>}
14
+ */
7
15
  export default class NumberTitle extends Title {
8
16
  getClassName () {
9
17
  return classnames(super.getClassName(), 'number')
10
18
  }
11
19
  }
12
-
13
- NumberTitle.propTypes = {
14
- ...Title.propTypes
15
- }
@@ -11,7 +11,10 @@ const log = debug('@modernpoacher/cogs/cogs/password/description')
11
11
  log('`cogs` is awake')
12
12
 
13
13
  const {
14
- default: component
14
+ default: Description
15
15
  } = require('./index.jsx')
16
16
 
17
- module.exports = component
17
+ /**
18
+ * Exports only default
19
+ */
20
+ module.exports = Description
@@ -0,0 +1 @@
1
+ export { default } from '#cogs/cogs/password/description'
@@ -9,7 +9,3 @@ export default class PasswordDescription extends Description {
9
9
  return classnames(super.getClassName(), 'password')
10
10
  }
11
11
  }
12
-
13
- PasswordDescription.propTypes = {
14
- ...Description.propTypes
15
- }
@@ -11,7 +11,10 @@ const log = debug('@modernpoacher/cogs/cogs/password/error-message')
11
11
  log('`cogs` is awake')
12
12
 
13
13
  const {
14
- default: component
14
+ default: ErrorMessage
15
15
  } = require('./index.jsx')
16
16
 
17
- module.exports = component
17
+ /**
18
+ * Exports only default
19
+ */
20
+ module.exports = ErrorMessage
@@ -0,0 +1 @@
1
+ export { default } from '#cogs/cogs/password/error-message'
@@ -9,7 +9,3 @@ export default class PasswordErrorMessage extends ErrorMessage {
9
9
  return classnames(super.getClassName(), 'password')
10
10
  }
11
11
  }
12
-
13
- PasswordErrorMessage.propTypes = {
14
- ...ErrorMessage.propTypes
15
- }
@@ -11,7 +11,10 @@ const log = debug('@modernpoacher/cogs/cogs/password/field')
11
11
  log('`cogs` is awake')
12
12
 
13
13
  const {
14
- default: component
14
+ default: Field
15
15
  } = require('./index.jsx')
16
16
 
17
- module.exports = component
17
+ /**
18
+ * Exports only default
19
+ */
20
+ module.exports = Field
@@ -0,0 +1,2 @@
1
+ export { default } from '#cogs/cogs/password/field'
2
+ export * from '#cogs/cogs/password/field'
@@ -0,0 +1,14 @@
1
+ declare module '#cogs/cogs/password/field' {
2
+ import {
3
+ ValueField
4
+ } from '#cogs/components/field'
5
+
6
+ export type PasswordProps = CogsTypes.Components.Field.Password.PasswordProps
7
+
8
+ export default class PasswordField<P extends PasswordProps> extends ValueField<P> {}
9
+ }
10
+
11
+ declare module '@modernpoacher/cogs/cogs/password/field' {
12
+ export { default } from '#cogs/cogs/password/field'
13
+ export * from '#cogs/cogs/password/field'
14
+ }