@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,87 @@
1
+ @use "design-system/helpers/breakpoints";
2
+ @use "design-system/palette";
3
+
4
+ @mixin cog-checkbox {
5
+ position: relative;
6
+ padding-left: 3rem;
7
+ margin-bottom: 0.5rem;
8
+ min-height: 2rem;
9
+
10
+ &:last-of-type {
11
+ margin-bottom: 0;
12
+ }
13
+
14
+ label {
15
+ @include breakpoints.breakpoint(mobile) {
16
+ padding-top: 0.375rem;
17
+ }
18
+
19
+ @include breakpoints.breakpoint(large-mobile) {
20
+ padding-top: 0.375rem;
21
+ }
22
+
23
+ @include breakpoints.breakpoint(small-mobile) {
24
+ padding-top: 0.375rem;
25
+ }
26
+ }
27
+
28
+ label:before {
29
+ box-sizing: border-box;
30
+ position: absolute;
31
+ left: 0;
32
+ height: 2rem;
33
+ top: 0;
34
+ width: 2rem;
35
+ overflow: hidden;
36
+ border: 2px solid currentColor;
37
+ content: "\200b";
38
+ background-color: palette.$white;
39
+ }
40
+
41
+ input {
42
+ position: absolute;
43
+ left: 0.5rem;
44
+ top: 0.5rem;
45
+
46
+ &:focus + label:before {
47
+ box-shadow: 0 0 0 2px palette.$outline;
48
+ }
49
+
50
+ &:checked + label:after {
51
+ box-sizing: border-box;
52
+ position: absolute;
53
+ top: 0.625rem; // 10px;
54
+ bottom: 0.625rem; // 10px;
55
+ left: 0.3125rem; // 5px;
56
+ width: 1.375rem; // 22px;
57
+ height: 0.625rem; // 10px;
58
+ overflow: hidden;
59
+ border-bottom: 4px solid currentColor;
60
+ border-left: 4px solid currentColor;
61
+ content: "\200b";
62
+ background-color: palette.$white;
63
+ transform: rotate(-45deg);
64
+ }
65
+ }
66
+
67
+ &.disabled {
68
+ input:checked + {
69
+ label::before {
70
+ border-color: palette.$disabled;
71
+ }
72
+
73
+ label::after {
74
+ border-left-color: palette.$disabled;
75
+ border-bottom-color: palette.$disabled;
76
+ }
77
+ }
78
+
79
+ input + label::before /* stylelint-disable-line no-descending-specificity */ {
80
+ border-color: palette.$disabled;
81
+ }
82
+ }
83
+ }
84
+
85
+ %cog-checkbox {
86
+ @include cog-checkbox;
87
+ }
@@ -0,0 +1,15 @@
1
+ @use "design-system/palette";
2
+ @use "design-system/typography";
3
+
4
+ @mixin cog-disabled {
5
+ input:not([type="checkbox"]):not([type="radio"]),
6
+ select,
7
+ textarea {
8
+ border-color: palette.$disabled;
9
+ color: palette.$disabled;
10
+ }
11
+ }
12
+
13
+ %cog-disabled {
14
+ @include cog-disabled;
15
+ }
@@ -0,0 +1,48 @@
1
+ @use "design-system/palette";
2
+ @use "design-system/typography";
3
+
4
+ @mixin cog-error {
5
+ border-left: 0.25rem solid palette.$error-standard;
6
+ padding: 0 1rem;
7
+
8
+ input:not([type="checkbox"]):not([type="radio"]),
9
+ select,
10
+ textarea {
11
+ border: 2px solid palette.$error-standard;
12
+
13
+ &:focus {
14
+ border-color: palette.$black;
15
+ }
16
+ }
17
+
18
+ &.radio,
19
+ &.checkbox {
20
+ padding-left: 4rem;
21
+
22
+ input /* stylelint-disable-line no-descending-specificity */ {
23
+ left: 1.5rem;
24
+ }
25
+
26
+ label:before /* stylelint-disable-line no-descending-specificity */ {
27
+ left: 1rem;
28
+
29
+ border: 2px solid palette.$error-standard;
30
+ }
31
+ }
32
+
33
+ &.radio {
34
+ input:checked + label:after {
35
+ left: 1.5rem;
36
+ }
37
+ }
38
+
39
+ &.checkbox {
40
+ input:checked + label:after {
41
+ left: 1.3125rem; // 21px;
42
+ }
43
+ }
44
+ }
45
+
46
+ %cog-error {
47
+ @include cog-error;
48
+ }
@@ -0,0 +1,93 @@
1
+ @use "design-system/helpers/breakpoints";
2
+
3
+ @use "design-system/palette";
4
+ @use "design-system/typography";
5
+
6
+ @mixin cog-radio {
7
+ position: relative;
8
+ padding-left: 3rem;
9
+ margin-bottom: 0.5rem;
10
+ min-height: 2rem;
11
+
12
+ &:last-of-type {
13
+ margin-bottom: 0;
14
+ }
15
+
16
+ label {
17
+ @include breakpoints.breakpoint(mobile) {
18
+ padding-top: 0.375rem;
19
+ }
20
+
21
+ @include breakpoints.breakpoint(large-mobile) {
22
+ padding-top: 0.375rem;
23
+ }
24
+
25
+ @include breakpoints.breakpoint(small-mobile) {
26
+ padding-top: 0.375rem;
27
+ }
28
+ }
29
+
30
+ label:before {
31
+ box-sizing: border-box;
32
+ position: absolute;
33
+ left: 0;
34
+ height: 32px;
35
+ top: 0;
36
+ width: 32px;
37
+ overflow: hidden;
38
+ border: 2px solid currentColor;
39
+ border-radius: 50%;
40
+ content: "\200b";
41
+ background-color: palette.$white;
42
+ }
43
+
44
+ input {
45
+ position: absolute;
46
+ left: 0.5rem;
47
+ top: 0.5rem;
48
+
49
+ &:focus + label:before {
50
+ box-shadow: 0 0 0 2px palette.$outline;
51
+ }
52
+
53
+ &:checked + label:after {
54
+ box-sizing: border-box;
55
+ position: absolute;
56
+ top: 0.5rem;
57
+ bottom: 0.5rem;
58
+ left: 0.5rem;
59
+ right: 0.5rem;
60
+ width: 1rem;
61
+ height: 1rem;
62
+ overflow: hidden;
63
+ border: 2px solid currentColor;
64
+ border-radius: 50%;
65
+ content: "\200b";
66
+ background-color: palette.$black;
67
+ }
68
+ }
69
+
70
+ &.disabled {
71
+ input + label {
72
+ &::before,
73
+ &::after {
74
+ border-color: palette.$disabled;
75
+ }
76
+ }
77
+
78
+ input:checked + label {
79
+ &::before,
80
+ &::after {
81
+ border-color: palette.$disabled;
82
+ }
83
+
84
+ &::after /* stylelint-disable-line no-descending-specificity */ {
85
+ background-color: palette.$disabled;
86
+ }
87
+ }
88
+ }
89
+ }
90
+
91
+ %cog-radio {
92
+ @include cog-radio;
93
+ }
package/jsconfig.json DELETED
@@ -1,5 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "baseUrl": "."
4
- }
5
- }
@@ -1,9 +0,0 @@
1
- declare module '#cogs/cogs/checkbox/field' {
2
- import Field from '#cogs/components/field'
3
-
4
- export default class CheckboxField extends Field {}
5
- }
6
-
7
- declare module '@modernpoacher/cogs/cogs/checkbox/field' {
8
- export { default } from '#cogs/cogs/checkbox/field'
9
- }
@@ -1,9 +0,0 @@
1
- declare module '#cogs/cogs/checkbox' {
2
- import Cog from '#cogs/cogs'
3
-
4
- export default class CheckboxCog extends Cog {}
5
- }
6
-
7
- declare module '@modernpoacher/cogs/cogs/checkbox' {
8
- export { default } from '#cogs/cogs/checkbox'
9
- }
@@ -1,9 +0,0 @@
1
- declare module '#cogs/cogs/email/field' {
2
- import Field from '#cogs/components/field'
3
-
4
- export default class EmailField extends Field {}
5
- }
6
-
7
- declare module '@modernpoacher/cogs/cogs/email/field' {
8
- export { default } from '#cogs/cogs/email/field'
9
- }
@@ -1,54 +0,0 @@
1
- /**
2
- * EmailField component
3
- */
4
- import React from 'react'
5
- import classnames from 'classnames'
6
-
7
- import { ValueField } from '#cogs/components/field'
8
-
9
- export default class EmailField extends ValueField {
10
- getClassName () {
11
- return classnames(super.getClassName(), 'email')
12
- }
13
-
14
- render () {
15
- const {
16
- id,
17
- name,
18
- value,
19
- defaultValue,
20
- required = false,
21
- disabled = false,
22
- readOnly = false,
23
- tabIndex,
24
- accessKey,
25
- placeholder,
26
- fieldRef
27
- } = this.props
28
-
29
- const className = this.getClassName()
30
-
31
- return (
32
- <input
33
- id={id}
34
- name={name}
35
- value={value}
36
- defaultValue={defaultValue}
37
- required={required}
38
- disabled={disabled}
39
- readOnly={readOnly}
40
- tabIndex={tabIndex}
41
- accessKey={accessKey}
42
- placeholder={placeholder}
43
- onChange={this.handleChange}
44
- className={className}
45
- type='email'
46
- ref={fieldRef}
47
- />
48
- )
49
- }
50
- }
51
-
52
- EmailField.propTypes = {
53
- ...ValueField.propTypes
54
- }
@@ -1,9 +0,0 @@
1
- declare module '#cogs/cogs/email' {
2
- import Cog from '#cogs/cogs'
3
-
4
- export default class EmailCog extends Cog {}
5
- }
6
-
7
- declare module '@modernpoacher/cogs/cogs/email' {
8
- export { default } from '#cogs/cogs/email'
9
- }
@@ -1,15 +0,0 @@
1
- /**
2
- * EmailTitle component
3
- */
4
- import classnames from 'classnames'
5
- import Title from '#cogs/components/title'
6
-
7
- export default class EmailTitle extends Title {
8
- getClassName () {
9
- return classnames(super.getClassName(), 'email')
10
- }
11
- }
12
-
13
- EmailTitle.propTypes = {
14
- ...Title.propTypes
15
- }
@@ -1,24 +0,0 @@
1
- declare module '#cogs/cogs' {
2
- import React from 'react'
3
-
4
- export interface CogProps {
5
- id: string
6
- name: string
7
- title: string
8
- description: string
9
- errorMessage: CogsTypes.ErrorDefinitionType
10
- required: boolean
11
- disabled: boolean
12
- readOnly: boolean
13
- placeholder: string
14
- onChange: CogsTypes.onEventType
15
- fieldRef: object
16
- }
17
-
18
- export default class Cog extends React.Component<CogProps> {}
19
- }
20
-
21
- declare module '@modernpoacher/cogs/cogs' {
22
- export { default } from '#cogs/cogs'
23
- export * from '#cogs/cogs'
24
- }
@@ -1,9 +0,0 @@
1
- declare module '#cogs/cogs/number/field' {
2
- import Field from '#cogs/components/field'
3
-
4
- export default class NumberField extends Field {}
5
- }
6
-
7
- declare module '@modernpoacher/cogs/cogs/number/field' {
8
- export { default } from '#cogs/cogs/number/field'
9
- }
@@ -1,9 +0,0 @@
1
- declare module '#cogs/cogs/number' {
2
- import Cog from '#cogs/cogs'
3
-
4
- export default class NumberCog extends Cog {}
5
- }
6
-
7
- declare module '@modernpoacher/cogs/cogs/number' {
8
- export { default } from '#cogs/cogs/number'
9
- }
@@ -1,9 +0,0 @@
1
- declare module '#cogs/cogs/password/field' {
2
- import Field from '#cogs/components/field'
3
-
4
- export default class PasswordField extends Field {}
5
- }
6
-
7
- declare module '@modernpoacher/cogs/cogs/password/field' {
8
- export { default } from '#cogs/cogs/password/field'
9
- }
@@ -1,54 +0,0 @@
1
- /**
2
- * PasswordField component
3
- */
4
- import React from 'react'
5
- import classnames from 'classnames'
6
-
7
- import { ValueField } from '#cogs/components/field'
8
-
9
- export default class PasswordField extends ValueField {
10
- getClassName () {
11
- return classnames(super.getClassName(), 'password')
12
- }
13
-
14
- render () {
15
- const {
16
- id,
17
- name,
18
- value,
19
- defaultValue,
20
- required = false,
21
- disabled = false,
22
- readOnly = false,
23
- tabIndex,
24
- accessKey,
25
- placeholder,
26
- fieldRef
27
- } = this.props
28
-
29
- const className = this.getClassName()
30
-
31
- return (
32
- <input
33
- id={id}
34
- name={name}
35
- value={value}
36
- defaultValue={defaultValue}
37
- required={required}
38
- disabled={disabled}
39
- readOnly={readOnly}
40
- tabIndex={tabIndex}
41
- accessKey={accessKey}
42
- placeholder={placeholder}
43
- onChange={this.handleChange}
44
- className={className}
45
- type='password'
46
- ref={fieldRef}
47
- />
48
- )
49
- }
50
- }
51
-
52
- PasswordField.propTypes = {
53
- ...ValueField.propTypes
54
- }
@@ -1,9 +0,0 @@
1
- declare module '#cogs/cogs/password' {
2
- import Cog from '#cogs/cogs'
3
-
4
- export default class PasswordCog extends Cog {}
5
- }
6
-
7
- declare module '@modernpoacher/cogs/cogs/password' {
8
- export { default } from '#cogs/cogs/password'
9
- }
@@ -1,9 +0,0 @@
1
- declare module '#cogs/cogs/radio/field' {
2
- import Field from '#cogs/components/field'
3
-
4
- export default class RadioField extends Field {}
5
- }
6
-
7
- declare module '@modernpoacher/cogs/cogs/radio/field' {
8
- export { default } from '#cogs/cogs/radio/field'
9
- }
@@ -1,9 +0,0 @@
1
- declare module '#cogs/cogs/radio' {
2
- import Cog from '#cogs/cogs'
3
-
4
- export default class RadioCog extends Cog {}
5
- }
6
-
7
- declare module '@modernpoacher/cogs/cogs/radio' {
8
- export { default } from '#cogs/cogs/radio'
9
- }
@@ -1,9 +0,0 @@
1
- declare module '#cogs/cogs/select/field' {
2
- import Field from '#cogs/components/field'
3
-
4
- export default class SelectField extends Field {}
5
- }
6
-
7
- declare module '@modernpoacher/cogs/cogs/select/field' {
8
- export { default } from '#cogs/cogs/select/field'
9
- }
@@ -1,111 +0,0 @@
1
- /**
2
- * SelectField component
3
- */
4
- import React from 'react'
5
- import PropTypes from 'prop-types'
6
- import classnames from 'classnames'
7
-
8
- import { ValueField } from '#cogs/components/field'
9
-
10
- import {
11
- DEFAULT_HANDLE_CHANGE
12
- } from '#cogs/common'
13
-
14
- function getSelectedValues ({ target: { selectedOptions } }) {
15
- return (
16
- Array.from(selectedOptions)
17
- .map(({ value, text }) => value || text)
18
- )
19
- }
20
-
21
- function getSelectedValue ({ target: { value } }) {
22
- return value
23
- }
24
-
25
- export default class SelectField extends ValueField {
26
- shouldComponentUpdate (props, state) {
27
- return (
28
- super.shouldComponentUpdate(props) ||
29
- (props.multiple !== this.props.multiple) ||
30
- (props.children !== this.props.children)
31
- )
32
- }
33
-
34
- getClassName () {
35
- return classnames(super.getClassName(), 'select')
36
- }
37
-
38
- handleChange = (event) => {
39
- const {
40
- multiple = false,
41
- onChange = DEFAULT_HANDLE_CHANGE
42
- } = this.props
43
-
44
- if (multiple) {
45
- onChange(getSelectedValues(event))
46
- } else {
47
- onChange(getSelectedValue(event))
48
- }
49
- }
50
-
51
- render () {
52
- const {
53
- id,
54
- name,
55
- value,
56
- defaultValue,
57
- required = false,
58
- disabled = false,
59
- readOnly = false,
60
- tabIndex,
61
- accessKey,
62
- multiple = false,
63
- children,
64
- fieldRef
65
- } = this.props
66
-
67
- const className = this.getClassName()
68
-
69
- return (
70
- <select
71
- id={id}
72
- name={name}
73
- value={value}
74
- defaultValue={defaultValue}
75
- required={required}
76
- disabled={disabled}
77
- readOnly={readOnly}
78
- tabIndex={tabIndex}
79
- accessKey={accessKey}
80
- multiple={multiple}
81
- onChange={this.handleChange}
82
- className={className}
83
- ref={fieldRef}>
84
- {children}
85
- </select>
86
- )
87
- }
88
- }
89
-
90
- SelectField.propTypes = {
91
- ...ValueField.propTypes,
92
- multiple: PropTypes.bool,
93
- value: PropTypes.oneOfType([
94
- PropTypes.string,
95
- PropTypes.arrayOf(
96
- PropTypes.string
97
- )
98
- ]),
99
- defaultValue: PropTypes.oneOfType([
100
- PropTypes.string,
101
- PropTypes.arrayOf(
102
- PropTypes.string
103
- )
104
- ]),
105
- children: PropTypes.oneOfType([
106
- PropTypes.node,
107
- PropTypes.arrayOf(
108
- PropTypes.node
109
- )
110
- ])
111
- }
@@ -1,9 +0,0 @@
1
- declare module '#cogs/cogs/select' {
2
- import Cog from '#cogs/cogs'
3
-
4
- export default class SelectCog extends Cog {}
5
- }
6
-
7
- declare module '@modernpoacher/cogs/cogs/select' {
8
- export { default } from '#cogs/cogs/select'
9
- }
@@ -1,15 +0,0 @@
1
- /**
2
- * SelectTitle component
3
- */
4
- import classnames from 'classnames'
5
- import Title from '#cogs/components/title'
6
-
7
- export default class SelectTitle extends Title {
8
- getClassName () {
9
- return classnames(super.getClassName(), 'select')
10
- }
11
- }
12
-
13
- SelectTitle.propTypes = {
14
- ...Title.propTypes
15
- }
@@ -1,9 +0,0 @@
1
- declare module '#cogs/cogs/text/field' {
2
- import Field from '#cogs/components/field'
3
-
4
- export default class TextField extends Field {}
5
- }
6
-
7
- declare module '@modernpoacher/cogs/cogs/text/field' {
8
- export { default } from '#cogs/cogs/text/field'
9
- }