@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,4 @@
1
+ *.html
2
+ *.mjs
3
+ *.cjs
4
+ .stylelintrc
package/babel.config.cjs CHANGED
@@ -51,7 +51,10 @@ module.exports = (api) => {
51
51
  presets,
52
52
  plugins,
53
53
  ignore: [
54
- /node_modules\/(?!@modernpoacher\/cogs|@modernpoacher\/sprockets|@modernpoacher\/gremlins)/
54
+ /node_modules\/(?!@modernpoacher\/cogs|@modernpoacher\/sprockets|@modernpoacher\/gremlins)\//,
55
+ /node_modules\/(?!react-component-instance)\//,
56
+ /node_modules\/(?!react-component-snapshot)\//,
57
+ /node_modules\/(?!react-component-name)\//
55
58
  ]
56
59
  }
57
60
  }
package/eslint.config.mjs CHANGED
@@ -58,12 +58,11 @@ export default [
58
58
  ]
59
59
  },
60
60
  /**
61
- * React config for all `jsx` and `tsx` files
61
+ * React config for all `jsx` files
62
62
  */
63
63
  {
64
64
  ...reactPlugin.configs.flat.recommended,
65
65
  settings: {
66
- ...reactPlugin.configs.flat.recommended.settings,
67
66
  ...reactSettings
68
67
  }
69
68
  },
@@ -80,7 +79,9 @@ export default [
80
79
  ],
81
80
  ignores: [
82
81
  'src',
83
- 'stories'
82
+ 'stories',
83
+ 'test',
84
+ 'jest.*.mjs'
84
85
  ],
85
86
  languageOptions: {
86
87
  globals: {
@@ -99,16 +100,26 @@ export default [
99
100
  }
100
101
  }
101
102
  }),
103
+ standard({
104
+ files: [
105
+ 'test/**/*.{mjs,cjs,mts,cts}'
106
+ ],
107
+ languageOptions: {
108
+ globals: {
109
+ ...globals.mocha
110
+ }
111
+ }
112
+ }),
102
113
  /**
103
- * Standard config for all `jsx` and `tsx` files
114
+ * Standard config for all `jsx` files
104
115
  */
105
116
  standard({
106
117
  files: [
107
- 'src/**/*.tsx',
118
+ 'src/**/*.jsx',
108
119
  'stories/**/*.jsx'
109
120
  ],
110
121
  ignores: [
111
- 'src/**/__tests__/**/*.tsx',
122
+ 'src/**/__tests__/**/*.jsx',
112
123
  'stories/**/__tests__/**/*.jsx'
113
124
  ],
114
125
  languageOptions: {
@@ -120,25 +131,23 @@ export default [
120
131
  globals: {
121
132
  ...globals.browser
122
133
  }
123
- },
134
+ }, // @ts-expect-error Storybook
124
135
  plugins: {
125
136
  ...reactPlugins,
126
137
  ...storybookPlugins
127
- },
138
+ }, // @ts-expect-error Storybook
128
139
  rules: {
129
140
  ...reactRules
130
141
  },
131
142
  settings: {
132
- ...reactSettings,
133
- 'import/resolver': {
134
- 'babel-module': {}
135
- }
143
+ ...reactSettings
136
144
  }
137
145
  }),
138
146
  standard({
139
147
  files: [
140
- 'src/**/__tests__/**/*.tsx',
141
- 'stories/**/__tests__/**/*.jsx'
148
+ 'src/**/__tests__/**/*.jsx',
149
+ 'stories/**/__tests__/**/*.jsx',
150
+ 'jest.*.mjs'
142
151
  ],
143
152
  languageOptions: {
144
153
  parser: babelParser,
@@ -150,19 +159,16 @@ export default [
150
159
  ...globals.browser,
151
160
  ...globals.jest
152
161
  }
153
- },
162
+ }, // @ts-expect-error Storybook
154
163
  plugins: {
155
164
  ...reactPlugins,
156
165
  ...storybookPlugins
157
- },
166
+ }, // @ts-expect-error Storybook
158
167
  rules: {
159
168
  ...reactRules
160
169
  },
161
170
  settings: {
162
- ...reactSettings,
163
- 'import/resolver': {
164
- 'babel-module': {}
165
- }
171
+ ...reactSettings
166
172
  }
167
173
  }),
168
174
  /**
@@ -174,80 +180,35 @@ export default [
174
180
  ],
175
181
  ignores: [
176
182
  'src',
177
- 'stories'
178
- ],
179
- languageOptions: {
180
- globals: {
181
- ...globals.node,
182
- CogsTypes: 'readonly'
183
- }
184
- }
185
- }),
186
- typescript({
187
- files: [
188
- 'src/**/*.{mts,cts}'
189
- ],
190
- languageOptions: {
191
- globals: {
192
- ...globals.browser
193
- }
194
- }
195
- }),
196
- /**
197
- * TypeScript config for only `tsx` files
198
- */
199
- typescript({
200
- files: [
201
- 'src/**/*.tsx'
202
- ],
203
- ignores: [
204
- 'src/**/__tests__/**/*.tsx'
183
+ 'test'
205
184
  ],
206
185
  languageOptions: {
207
186
  parser: typescriptParser,
208
187
  parserOptions: {
209
- ...reactParserOptions,
210
188
  projectService: true,
211
189
  project: 'tsconfig.json'
212
190
  },
213
191
  globals: {
214
- ...globals.browser
192
+ ...globals.node,
193
+ CogsTypes: 'readonly'
215
194
  }
216
- },
217
- plugins: {
218
- ...reactPlugins
219
- },
220
- rules: {
221
- ...reactRules
222
- },
223
- settings: {
224
- ...reactSettings
225
195
  }
226
196
  }),
227
197
  typescript({
228
198
  files: [
229
- 'src/**/__tests__/**/*.tsx'
199
+ 'src/**/*.{mts,cts}',
200
+ 'test/**/*.{mts,cts}'
230
201
  ],
231
202
  languageOptions: {
232
203
  parser: typescriptParser,
233
204
  parserOptions: {
234
- ...reactParserOptions,
235
205
  projectService: true,
236
206
  project: 'tsconfig.json'
237
207
  },
238
208
  globals: {
239
209
  ...globals.browser,
240
- ...globals.jest
210
+ CogsTypes: 'readonly'
241
211
  }
242
- },
243
- plugins: {
244
- ...reactPlugins
245
- },
246
- rules: {
247
- ...reactRules
248
- },
249
- settings: {
250
- ...reactSettings
251
212
  }
252
213
  })
253
214
  ]
package/index.d.mts CHANGED
@@ -1,12 +1,230 @@
1
+ import type React from 'react'
2
+
1
3
  declare global {
2
4
  namespace CogsTypes {
3
- export type onEventType = () => void
5
+ export type OnEventType = (
6
+ value?: string | string[],
7
+ checked?: boolean
8
+ ) => void
9
+
10
+ export interface FieldErrorType {
11
+ text: string
12
+ href: string
13
+ }
14
+
15
+ export namespace Super {
16
+ export namespace Cogs {
17
+ export interface CogProps {
18
+ id?: string
19
+ name: string
20
+ title?: string
21
+ value?: string
22
+ description?: string
23
+ errorMessage?: string
24
+ required?: boolean
25
+ disabled?: boolean
26
+ readOnly?: boolean
27
+ tabIndex?: number
28
+ accessKey?: string
29
+ placeholder?: string
30
+ onChange?: OnEventType
31
+ fieldRef?: React.RefObject<any> // eslint-disable-line @typescript-eslint/no-explicit-any -- Simplicity
32
+ }
33
+ }
34
+
35
+ export namespace Components {
36
+ export namespace Description {
37
+ export interface DescriptionProps {
38
+ description?: string
39
+ }
40
+ }
41
+
42
+ export namespace ErrorMessage {
43
+ export interface ErrorMessageProps {
44
+ errorMessage?: string
45
+ }
46
+
47
+ export interface ErrorMessageState {
48
+ errorMessage?: string
49
+ }
50
+ }
51
+
52
+ export namespace Field {
53
+ export interface FieldProps extends React.PropsWithChildren {
54
+ id?: string
55
+ name: string
56
+ value?: string
57
+ required?: boolean
58
+ disabled?: boolean
59
+ readOnly?: boolean
60
+ tabIndex?: number
61
+ accessKey?: string
62
+ placeholder?: string
63
+ onChange?: OnEventType
64
+ fieldRef?: React.RefObject<any> // eslint-disable-line @typescript-eslint/no-explicit-any -- Simplicity
65
+ }
66
+ }
67
+
68
+ export namespace Title {
69
+ export interface TitleProps extends React.PropsWithChildren {
70
+ id: string
71
+ title?: string
72
+ required?: boolean
73
+ disabled?: boolean
74
+ readOnly?: boolean
75
+ }
76
+ }
77
+ }
78
+ }
79
+
80
+ export namespace Components {
81
+ export namespace Common {
82
+ export namespace TextContent {
83
+ export interface TextContentProps {
84
+ textContent?: string
85
+ }
86
+ }
87
+ }
88
+
89
+ export namespace Description {
90
+ export type DescriptionProps = Super.Components.Description.DescriptionProps
91
+ }
92
+
93
+ export namespace ErrorMessage {
94
+ export type ErrorMessageProps = Super.Components.ErrorMessage.ErrorMessageProps
95
+
96
+ export type ErrorMessageState = Super.Components.ErrorMessage.ErrorMessageState
97
+ }
98
+
99
+ export namespace Field {
100
+ export interface ValueProps extends Super.Components.Field.FieldProps {
101
+ defaultValue?: string
102
+ }
103
+
104
+ export interface CheckProps extends Super.Components.Field.FieldProps {
105
+ checked?: boolean
106
+ defaultChecked?: boolean
107
+ onClick?: OnEventType
108
+ }
109
+
110
+ export namespace Checkbox {
111
+ export type CheckboxProps = CheckProps
112
+ }
113
+
114
+ export namespace Email {
115
+ export type EmailProps = ValueProps
116
+ }
117
+
118
+ export namespace Number {
119
+ export type NumberProps = ValueProps
120
+ }
121
+
122
+ export namespace Password {
123
+ export type PasswordProps = ValueProps
124
+ }
125
+
126
+ export namespace Radio {
127
+ export type RadioProps = CheckProps
128
+ }
129
+
130
+ export namespace Select {
131
+ export interface SelectProps extends ValueProps, React.PropsWithChildren {
132
+ multiple?: boolean
133
+ }
134
+ }
135
+
136
+ export namespace Text {
137
+ export type TextProps = ValueProps
138
+ }
139
+
140
+ export namespace Textarea {
141
+ export type TextareaProps = ValueProps
142
+ }
143
+ }
144
+
145
+ export namespace Title {
146
+ export namespace Checkbox {
147
+ export type CheckboxProps = Super.Components.Title.TitleProps
148
+ }
149
+
150
+ export namespace Email {
151
+ export type EmailProps = Super.Components.Title.TitleProps
152
+ }
153
+
154
+ export namespace Number {
155
+ export type NumberProps = Super.Components.Title.TitleProps
156
+ }
157
+
158
+ export namespace Password {
159
+ export type PasswordProps = Super.Components.Title.TitleProps
160
+ }
161
+
162
+ export namespace Radio {
163
+ export type RadioProps = Super.Components.Title.TitleProps
164
+ }
165
+
166
+ export namespace Select {
167
+ export type SelectProps = Super.Components.Title.TitleProps
168
+ }
169
+
170
+ export namespace Text {
171
+ export type TextProps = Super.Components.Title.TitleProps
172
+ }
173
+
174
+ export namespace Textarea {
175
+ export type TextareaProps = Super.Components.Title.TitleProps
176
+ }
177
+ }
178
+ }
179
+
180
+ export namespace Cogs {
181
+ export interface ValueProps extends Super.Cogs.CogProps {
182
+ defaultValue?: string
183
+ }
184
+
185
+ export interface CheckProps extends Super.Cogs.CogProps {
186
+ checked?: boolean
187
+ defaultChecked?: boolean
188
+ onClick?: OnEventType
189
+ }
190
+
191
+ export namespace Checkbox {
192
+ export type CheckboxProps = CheckProps
193
+ }
194
+
195
+ export namespace Email {
196
+ export type EmailProps = ValueProps
197
+ }
198
+
199
+ export namespace Number {
200
+ export interface NumberProps extends Omit<Omit<ValueProps, 'value'>, 'defaultValue'> {
201
+ value?: string | number
202
+ defaultValue?: string | number
203
+ }
204
+ }
205
+
206
+ export namespace Password {
207
+ export type PasswordProps = ValueProps
208
+ }
209
+
210
+ export namespace Radio {
211
+ export type RadioProps = CheckProps
212
+ }
213
+
214
+ export namespace Select {
215
+ export interface SelectProps extends Omit<Omit<ValueProps, 'value'>, 'defaultValue'>, React.PropsWithChildren {
216
+ value?: string | string[]
217
+ defaultValue?: string | string[]
218
+ multiple?: boolean
219
+ }
220
+ }
221
+
222
+ export namespace Text {
223
+ export type TextProps = ValueProps
224
+ }
4
225
 
5
- export interface ErrorDefinitionType {
6
- type: string
7
- uri: string
8
- params: {
9
- expectedType: string
226
+ export namespace Textarea {
227
+ export type TextareaProps = ValueProps
10
228
  }
11
229
  }
12
230
  }
@@ -0,0 +1,10 @@
1
+ afterEach(() => {
2
+ const {
3
+ body
4
+ } = document
5
+
6
+ Array.from(body.children)
7
+ .forEach((child) => {
8
+ body.removeChild(child)
9
+ })
10
+ })
@@ -0,0 +1,10 @@
1
+ beforeEach(() => {
2
+ const {
3
+ body
4
+ } = document
5
+
6
+ Array.from(body.children)
7
+ .forEach((child) => {
8
+ body.removeChild(child)
9
+ })
10
+ })
package/jest.config.mjs CHANGED
@@ -14,5 +14,15 @@ export default {
14
14
  '^.+\\.jsx$': 'babel-jest',
15
15
  '^.+\\.mjs$': 'babel-jest'
16
16
  },
17
- moduleFileExtensions: ['js', 'jsx', 'mjs']
17
+ transformIgnorePatterns: [
18
+ '/node_modules\\/(?!react-component-instance)\\/',
19
+ '/node_modules\\/(?!react-component-snapshot)\\/',
20
+ '/node_modules\\/(?!react-component-name)\\/'
21
+ ],
22
+ moduleFileExtensions: ['js', 'jsx', 'mjs'],
23
+ testEnvironment: 'jsdom',
24
+ setupFilesAfterEnv: [
25
+ '<rootDir>/jest.before-each.mjs',
26
+ '<rootDir>/jest.after-each.mjs'
27
+ ]
18
28
  }
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@modernpoacher/cogs",
3
- "version": "0.1.256",
3
+ "version": "1.0.0",
4
4
  "description": "Cogs",
5
5
  "keywords": [
6
6
  "Cogs",
7
7
  "React"
8
8
  ],
9
- "main": "./src/index.cjs",
9
+ "main": "./src/js/index.mjs",
10
10
  "type": "module",
11
11
  "types": "./index.d.mts",
12
12
  "author": {
@@ -23,20 +23,27 @@
23
23
  "url": "git+ssh://git@github.com/modernpoacher/cogs.git"
24
24
  },
25
25
  "scripts": {
26
- "build": "cross-env DEBUG=@modernpoacher/cogs* webpack",
26
+ "build": "cross-env DEBUG=@modernpoacher/cogs* webpack -c .storybook/webpack.config.mjs",
27
27
  "build-storybook": "storybook build",
28
- "build:watch": "cross-env DEBUG=@modernpoacher/cogs* webpack --watch",
29
- "lint": "eslint",
30
- "lint:fix": "npm run lint -- --fix",
28
+ "build:watch": "npm run build -- -w",
29
+ "lint": "npm run lint:js && npm run lint:sass",
30
+ "lint:fix": "npm run lint:js:fix && npm run lint:sass:fix",
31
+ "lint:js": "eslint",
32
+ "lint:js:fix": "npm run lint:js -- --fix",
33
+ "lint:sass": "stylelint src/sass .storybook/*.scss",
34
+ "lint:sass:fix": "npm run lint:sass -- --fix",
31
35
  "nvm": "bash nvm.sh",
32
36
  "prebuild": "npm run nvm",
33
37
  "prelint": "npm run nvm",
34
38
  "prepare": "husky",
35
- "prestorybook": "npm run build && npm run transform",
39
+ "prestorybook": "npm run build && npm run prettier && npm run transform",
36
40
  "pretest": "npm run nvm",
41
+ "prettier": "prettier src/sass .storybook --write",
37
42
  "storybook": "storybook dev -p 6006",
38
- "test": "cross-env NODE_ENV=test jest",
39
- "transform": "cross-env DEBUG=@modernpoacher/cogs* ./transform.sh"
43
+ "test": "npm run test:mocha && npm run test:jest",
44
+ "test:jest": "cross-env NODE_ENV=test jest",
45
+ "test:mocha": "cross-env NODE_ENV=test mocha test --recursive",
46
+ "transform": "cross-env DEBUG=@modernpoacher/cogs* .storybook/transform.sh"
40
47
  },
41
48
  "dependencies": {
42
49
  "classnames": "^2.5.1",
@@ -48,32 +55,43 @@
48
55
  "@babel/preset-env": "^7.26.9",
49
56
  "@babel/preset-react": "^7.26.3",
50
57
  "@babel/register": "^7.25.9",
51
- "@modernpoacher/design-system": "1.2.0",
58
+ "@modernpoacher/design-system": "2.0.2",
52
59
  "@sequencemedia/eslint-config-standard": "^0.2.46",
53
60
  "@sequencemedia/eslint-config-typescript": "^0.1.67",
54
- "@storybook/addon-actions": "^8.6.9",
55
- "@storybook/addon-essentials": "^8.6.9",
56
- "@storybook/addon-links": "^8.6.9",
61
+ "@storybook/addon-actions": "^8.6.10",
62
+ "@storybook/addon-essentials": "^8.6.10",
63
+ "@storybook/addon-links": "^8.6.10",
57
64
  "@storybook/addon-webpack5-compiler-babel": "^3.0.5",
58
- "@storybook/manager-api": "^8.6.9",
59
- "@storybook/react": "^8.6.9",
60
- "@storybook/react-webpack5": "^8.6.9",
61
- "@storybook/theming": "^8.6.9",
62
- "@types/react": "18.3.13",
65
+ "@storybook/manager-api": "^8.6.10",
66
+ "@storybook/react": "^8.6.10",
67
+ "@storybook/react-webpack5": "^8.6.10",
68
+ "@storybook/test": "^8.6.9",
69
+ "@storybook/theming": "^8.6.10",
70
+ "@testing-library/jest-dom": "^6.6.3",
71
+ "@testing-library/react": "^16.2.0",
72
+ "@types/babel__register": "^7.17.3",
73
+ "@types/chai": "^5.2.1",
74
+ "@types/debug": "^4.1.12",
75
+ "@types/jest": "^29.5.14",
76
+ "@types/mocha": "^10.0.10",
77
+ "@types/prop-types": "^15.7.14",
78
+ "@types/react": "^19.0.12",
79
+ "@types/react-dom": "^19.0.4",
63
80
  "@typescript-eslint/eslint-plugin": "^8.28.0",
64
81
  "@typescript-eslint/parser": "^8.28.0",
65
82
  "autoprefixer": "^10.4.21",
66
- "clean-webpack-plugin": "^4.0.0",
83
+ "chai": "^5.2.0",
67
84
  "core-js": "^3.41.0",
68
85
  "cross-env": "^7.0.3",
69
86
  "eslint": "^9.23.0",
70
- "eslint-import-resolver-babel-module": "^5.3.2",
71
87
  "eslint-plugin-react": "^7.37.4",
72
88
  "eslint-plugin-storybook": "^0.12.0",
73
89
  "globals": "^16.0.0",
74
90
  "husky": "^9.1.7",
75
91
  "jest": "^29.7.0",
92
+ "jest-environment-jsdom": "^29.7.0",
76
93
  "mini-css-extract-plugin": "^2.9.2",
94
+ "mocha": "^11.1.0",
77
95
  "perfectionist": "^2.4.0",
78
96
  "postcss": "^8.5.3",
79
97
  "postcss-discard-comments": "^7.0.3",
@@ -81,36 +99,71 @@
81
99
  "postcss-import": "^16.1.0",
82
100
  "postcss-loader": "^8.1.1",
83
101
  "postcss-map": "^0.11.0",
102
+ "prettier": "^3.5.3",
84
103
  "prop-types": "^15.8.1",
85
- "react": "18.3.1",
86
- "react-dom": "18.3.1",
87
- "react-test-renderer": "18.3.1",
104
+ "react": "^19.0.0",
105
+ "react-component-instance": "^0.0.15",
106
+ "react-component-snapshot": "^0.0.15",
107
+ "react-dom": "^19.0.0",
88
108
  "remove-files-webpack-plugin": "^1.5.0",
89
109
  "sass": "^1.86.0",
90
110
  "sass-loader": "^16.0.5",
91
- "storybook": "^8.6.9",
111
+ "storybook": "^8.6.10",
112
+ "stylelint": "^16.16.0",
113
+ "stylelint-config-recommended-scss": "^14.1.0",
114
+ "stylelint-scss": "^6.11.1",
92
115
  "webpack": "^5.98.0",
93
116
  "webpack-cli": "^6.0.1"
94
117
  },
95
118
  "imports": {
96
- "#build/paths": "./build/paths.mjs",
97
- "#cogs": "./src/index.mjs",
98
- "#cogs/cogs": "./src/cogs/index.jsx",
99
- "#cogs/cogs/*": "./src/cogs/*/index.jsx",
100
- "#cogs/common": "./src/common/index.mjs",
101
- "#cogs/components/*": "./src/components/*/index.jsx",
119
+ "#cogs": {
120
+ "require": "./src/js/index.cjs",
121
+ "import": "./src/js/index.mjs"
122
+ },
123
+ "#cogs/cogs": "./src/js/cogs/index.cjs",
124
+ "#cogs/cogs/*": "./src/js/cogs/*/index.cjs",
125
+ "#cogs/components": {
126
+ "require": "./src/js/components/index.cjs",
127
+ "import": "./src/js/components/index.mjs"
128
+ },
129
+ "#cogs/components/*": "./src/js/components/*/index.cjs",
130
+ "#cogs/super": {
131
+ "require": "./src/js/super/index.cjs",
132
+ "import": "./src/js/super/index.mjs"
133
+ },
134
+ "#cogs/super/cogs": "./src/js/super/cogs/index.cjs",
135
+ "#cogs/super/cogs/*": "./src/js/super/cogs/*/index.cjs",
136
+ "#cogs/super/components": {
137
+ "require": "./src/js/super/components/index.cjs",
138
+ "import": "./src/js/super/components/index.mjs"
139
+ },
140
+ "#cogs/super/components/*": "./src/js/super/components/*/index.cjs",
102
141
  "#stories/cogs/*": "./stories/cogs/*/index.stories.jsx",
103
142
  "#stories/state": "./stories/state/index.jsx",
104
143
  "#stories/state/*": "./stories/state/*/index.jsx"
105
144
  },
106
145
  "exports": {
107
146
  ".": {
108
- "require": "./src/index.cjs",
109
- "import": "./src/index.mjs"
147
+ "require": "./src/js/index.cjs",
148
+ "import": "./src/js/index.mjs"
149
+ },
150
+ "./cogs": "./src/js/cogs/index.cjs",
151
+ "./cogs/*": "./src/js/cogs/*/index.cjs",
152
+ "./components": {
153
+ "require": "./src/js/components/index.cjs",
154
+ "import": "./src/js/components/index.mjs"
155
+ },
156
+ "./components/*": "./src/js/components/*/index.cjs",
157
+ "./super": {
158
+ "require": "./src/js/super/index.cjs",
159
+ "import": "./src/js/super/index.mjs"
160
+ },
161
+ "./super/cogs": "./src/js/super/cogs/index.cjs",
162
+ "./super/cogs/*": "./src/js/super/cogs/*/index.cjs",
163
+ "./super/components": {
164
+ "require": "./src/js/super/components/index.cjs",
165
+ "import": "./src/js/super/components/index.mjs"
110
166
  },
111
- "./cogs": "./src/cogs/index.cjs",
112
- "./cogs/*": "./src/cogs/*/index.cjs",
113
- "./common": "./src/common/index.mjs",
114
- "./components/*": "./src/components/*/index.cjs"
167
+ "./super/components/*": "./src/js/super/components/*/index.cjs"
115
168
  }
116
169
  }