@cruk/cruk-react-components 6.2.3 → 7.1.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 (240) hide show
  1. package/README.md +185 -7
  2. package/lib/index.css +4248 -0
  3. package/lib/index.css.map +1 -0
  4. package/lib/node_modules/tslib/tslib.es6.js +1 -1
  5. package/lib/node_modules/tslib/tslib.es6.js.map +1 -1
  6. package/lib/src/components/AddressLookup/index.d.ts +8 -9
  7. package/lib/src/components/AddressLookup/index.js +1 -1
  8. package/lib/src/components/AddressLookup/index.js.map +1 -1
  9. package/lib/src/components/AllThemesWrapper.d.ts +3 -3
  10. package/lib/src/components/Avatar/index.d.ts +10 -8
  11. package/lib/src/components/Avatar/index.js +1 -1
  12. package/lib/src/components/Avatar/index.js.map +1 -1
  13. package/lib/src/components/Badge/index.d.ts +12 -16
  14. package/lib/src/components/Badge/index.js +1 -1
  15. package/lib/src/components/Badge/index.js.map +1 -1
  16. package/lib/src/components/Box/index.d.ts +7 -7
  17. package/lib/src/components/Box/index.js +1 -1
  18. package/lib/src/components/Box/index.js.map +1 -1
  19. package/lib/src/components/Button/index.d.ts +7 -16
  20. package/lib/src/components/Button/index.js +1 -1
  21. package/lib/src/components/Button/index.js.map +1 -1
  22. package/lib/src/components/Carousel/Dots.js +1 -1
  23. package/lib/src/components/Carousel/Dots.js.map +1 -1
  24. package/lib/src/components/Carousel/index.d.ts +23 -13
  25. package/lib/src/components/Carousel/index.js +1 -1
  26. package/lib/src/components/Carousel/index.js.map +1 -1
  27. package/lib/src/components/Checkbox/index.d.ts +7 -8
  28. package/lib/src/components/Checkbox/index.js +1 -1
  29. package/lib/src/components/Checkbox/index.js.map +1 -1
  30. package/lib/src/components/Collapse/index.d.ts +2 -2
  31. package/lib/src/components/Collapse/index.js +1 -1
  32. package/lib/src/components/Collapse/index.js.map +1 -1
  33. package/lib/src/components/DateField/index.d.ts +5 -6
  34. package/lib/src/components/DateField/index.js +1 -1
  35. package/lib/src/components/DateField/index.js.map +1 -1
  36. package/lib/src/components/ErrorText/index.d.ts +7 -6
  37. package/lib/src/components/ErrorText/index.js +1 -1
  38. package/lib/src/components/ErrorText/index.js.map +1 -1
  39. package/lib/src/components/Footer/index.d.ts +8 -6
  40. package/lib/src/components/Footer/index.js +1 -1
  41. package/lib/src/components/Footer/index.js.map +1 -1
  42. package/lib/src/components/Header/index.d.ts +19 -18
  43. package/lib/src/components/Header/index.js +1 -1
  44. package/lib/src/components/Header/index.js.map +1 -1
  45. package/lib/src/components/Heading/index.d.ts +5 -17
  46. package/lib/src/components/Heading/index.js +1 -1
  47. package/lib/src/components/Heading/index.js.map +1 -1
  48. package/lib/src/components/IconFa/index.d.ts +9 -9
  49. package/lib/src/components/IconFa/index.js +1 -1
  50. package/lib/src/components/IconFa/index.js.map +1 -1
  51. package/lib/src/components/InfoBox/index.d.ts +13 -16
  52. package/lib/src/components/InfoBox/index.js +1 -1
  53. package/lib/src/components/InfoBox/index.js.map +1 -1
  54. package/lib/src/components/LabelWrapper/index.js +1 -1
  55. package/lib/src/components/LabelWrapper/index.js.map +1 -1
  56. package/lib/src/components/LegendWrapper/index.js +1 -1
  57. package/lib/src/components/LegendWrapper/index.js.map +1 -1
  58. package/lib/src/components/Link/index.d.ts +6 -10
  59. package/lib/src/components/Link/index.js +1 -1
  60. package/lib/src/components/Link/index.js.map +1 -1
  61. package/lib/src/components/Loader/index.js +1 -1
  62. package/lib/src/components/Loader/index.js.map +1 -1
  63. package/lib/src/components/Modal/TestModalWithContent.d.ts +3 -1
  64. package/lib/src/components/Modal/TestModalWithState.d.ts +3 -1
  65. package/lib/src/components/Modal/index.d.ts +14 -17
  66. package/lib/src/components/Modal/index.js +1 -1
  67. package/lib/src/components/Modal/index.js.map +1 -1
  68. package/lib/src/components/Pagination/index.js +1 -1
  69. package/lib/src/components/Pagination/index.js.map +1 -1
  70. package/lib/src/components/PopOver/index.d.ts +1 -1
  71. package/lib/src/components/PopOver/index.js +1 -1
  72. package/lib/src/components/PopOver/index.js.map +1 -1
  73. package/lib/src/components/ProgressBar/index.d.ts +1 -1
  74. package/lib/src/components/ProgressBar/index.js +1 -1
  75. package/lib/src/components/ProgressBar/index.js.map +1 -1
  76. package/lib/src/components/Radio/index.js +1 -1
  77. package/lib/src/components/Radio/index.js.map +1 -1
  78. package/lib/src/components/RadioConsent/index.d.ts +8 -9
  79. package/lib/src/components/RadioConsent/index.js +1 -1
  80. package/lib/src/components/RadioConsent/index.js.map +1 -1
  81. package/lib/src/components/Select/index.js +1 -1
  82. package/lib/src/components/Select/index.js.map +1 -1
  83. package/lib/src/components/Step/index.d.ts +7 -8
  84. package/lib/src/components/Step/index.js +1 -1
  85. package/lib/src/components/Step/index.js.map +1 -1
  86. package/lib/src/components/Text/index.d.ts +7 -27
  87. package/lib/src/components/Text/index.js +1 -1
  88. package/lib/src/components/Text/index.js.map +1 -1
  89. package/lib/src/components/TextAreaField/index.d.ts +5 -6
  90. package/lib/src/components/TextAreaField/index.js +1 -1
  91. package/lib/src/components/TextAreaField/index.js.map +1 -1
  92. package/lib/src/components/TextField/index.d.ts +3 -1
  93. package/lib/src/components/TextField/index.js +1 -1
  94. package/lib/src/components/TextField/index.js.map +1 -1
  95. package/lib/src/components/Totaliser/index.d.ts +5 -6
  96. package/lib/src/components/Totaliser/index.js +1 -1
  97. package/lib/src/components/Totaliser/index.js.map +1 -1
  98. package/lib/src/components/UserBlock/index.d.ts +3 -1
  99. package/lib/src/components/UserBlock/index.js +1 -1
  100. package/lib/src/components/UserBlock/index.js.map +1 -1
  101. package/lib/src/components/index.d.ts +34 -10
  102. package/lib/src/components/index.js +1 -1
  103. package/lib/src/types.d.ts +45 -172
  104. package/lib/src/types.js +2 -0
  105. package/lib/src/types.js.map +1 -0
  106. package/lib/src/utils/Helper.d.ts +3 -0
  107. package/lib/src/utils/Helper.js +1 -1
  108. package/lib/src/utils/Helper.js.map +1 -1
  109. package/lib/src/utils/themeUtils.d.ts +4 -3
  110. package/lib/src/utils/themeUtils.js +1 -1
  111. package/lib/src/utils/themeUtils.js.map +1 -1
  112. package/package.json +11 -9
  113. package/lib/src/components/AddressLookup/styles.d.ts +0 -17
  114. package/lib/src/components/AddressLookup/styles.js +0 -2
  115. package/lib/src/components/AddressLookup/styles.js.map +0 -1
  116. package/lib/src/components/Avatar/styles.d.ts +0 -6
  117. package/lib/src/components/Avatar/styles.js +0 -2
  118. package/lib/src/components/Avatar/styles.js.map +0 -1
  119. package/lib/src/components/Badge/styles.d.ts +0 -10
  120. package/lib/src/components/Badge/styles.js +0 -2
  121. package/lib/src/components/Badge/styles.js.map +0 -1
  122. package/lib/src/components/Box/styles.d.ts +0 -9
  123. package/lib/src/components/Box/styles.js +0 -2
  124. package/lib/src/components/Box/styles.js.map +0 -1
  125. package/lib/src/components/Button/styles.d.ts +0 -13
  126. package/lib/src/components/Button/styles.js +0 -2
  127. package/lib/src/components/Button/styles.js.map +0 -1
  128. package/lib/src/components/Carousel/styles.d.ts +0 -30
  129. package/lib/src/components/Carousel/styles.js +0 -2
  130. package/lib/src/components/Carousel/styles.js.map +0 -1
  131. package/lib/src/components/Checkbox/styles.d.ts +0 -17
  132. package/lib/src/components/Checkbox/styles.js +0 -2
  133. package/lib/src/components/Checkbox/styles.js.map +0 -1
  134. package/lib/src/components/Collapse/styles.d.ts +0 -26
  135. package/lib/src/components/Collapse/styles.js +0 -2
  136. package/lib/src/components/Collapse/styles.js.map +0 -1
  137. package/lib/src/components/DateField/styles.d.ts +0 -25
  138. package/lib/src/components/DateField/styles.js +0 -2
  139. package/lib/src/components/DateField/styles.js.map +0 -1
  140. package/lib/src/components/Divider.d.ts +0 -5
  141. package/lib/src/components/Divider.js +0 -2
  142. package/lib/src/components/Divider.js.map +0 -1
  143. package/lib/src/components/ErrorText/styles.d.ts +0 -16
  144. package/lib/src/components/ErrorText/styles.js +0 -2
  145. package/lib/src/components/ErrorText/styles.js.map +0 -1
  146. package/lib/src/components/Flex.d.ts +0 -8
  147. package/lib/src/components/Flex.js +0 -2
  148. package/lib/src/components/Flex.js.map +0 -1
  149. package/lib/src/components/Fontface.d.ts +0 -4
  150. package/lib/src/components/Fontface.js +0 -2
  151. package/lib/src/components/Fontface.js.map +0 -1
  152. package/lib/src/components/Footer/styles.d.ts +0 -16
  153. package/lib/src/components/Footer/styles.js +0 -2
  154. package/lib/src/components/Footer/styles.js.map +0 -1
  155. package/lib/src/components/GlobalStyle.d.ts +0 -2
  156. package/lib/src/components/GlobalStyle.js +0 -2
  157. package/lib/src/components/GlobalStyle.js.map +0 -1
  158. package/lib/src/components/GlobalStyleNoFontFace.d.ts +0 -2
  159. package/lib/src/components/GlobalStyleNoFontFace.js +0 -2
  160. package/lib/src/components/GlobalStyleNoFontFace.js.map +0 -1
  161. package/lib/src/components/Header/styles.d.ts +0 -33
  162. package/lib/src/components/Header/styles.js +0 -2
  163. package/lib/src/components/Header/styles.js.map +0 -1
  164. package/lib/src/components/Heading/styles.d.ts +0 -17
  165. package/lib/src/components/Heading/styles.js +0 -2
  166. package/lib/src/components/Heading/styles.js.map +0 -1
  167. package/lib/src/components/IconFa/styles.d.ts +0 -7
  168. package/lib/src/components/IconFa/styles.js +0 -2
  169. package/lib/src/components/IconFa/styles.js.map +0 -1
  170. package/lib/src/components/InfoBox/styles.d.ts +0 -13
  171. package/lib/src/components/InfoBox/styles.js +0 -2
  172. package/lib/src/components/InfoBox/styles.js.map +0 -1
  173. package/lib/src/components/LabelWrapper/styles.d.ts +0 -16
  174. package/lib/src/components/LabelWrapper/styles.js +0 -2
  175. package/lib/src/components/LabelWrapper/styles.js.map +0 -1
  176. package/lib/src/components/LegendWrapper/styles.d.ts +0 -15
  177. package/lib/src/components/LegendWrapper/styles.js +0 -2
  178. package/lib/src/components/LegendWrapper/styles.js.map +0 -1
  179. package/lib/src/components/Link/styles.d.ts +0 -20
  180. package/lib/src/components/Link/styles.js +0 -2
  181. package/lib/src/components/Link/styles.js.map +0 -1
  182. package/lib/src/components/Loader/styles.d.ts +0 -7
  183. package/lib/src/components/Loader/styles.js +0 -2
  184. package/lib/src/components/Loader/styles.js.map +0 -1
  185. package/lib/src/components/Modal/styles.d.ts +0 -32
  186. package/lib/src/components/Modal/styles.js +0 -2
  187. package/lib/src/components/Modal/styles.js.map +0 -1
  188. package/lib/src/components/Pagination/styles.d.ts +0 -12
  189. package/lib/src/components/Pagination/styles.js +0 -2
  190. package/lib/src/components/Pagination/styles.js.map +0 -1
  191. package/lib/src/components/PopOver/styles.d.ts +0 -11
  192. package/lib/src/components/PopOver/styles.js +0 -2
  193. package/lib/src/components/PopOver/styles.js.map +0 -1
  194. package/lib/src/components/ProgressBar/styles.d.ts +0 -32
  195. package/lib/src/components/ProgressBar/styles.js +0 -2
  196. package/lib/src/components/ProgressBar/styles.js.map +0 -1
  197. package/lib/src/components/Radio/styles.d.ts +0 -21
  198. package/lib/src/components/Radio/styles.js +0 -2
  199. package/lib/src/components/Radio/styles.js.map +0 -1
  200. package/lib/src/components/RadioConsent/styles.d.ts +0 -10
  201. package/lib/src/components/RadioConsent/styles.js +0 -2
  202. package/lib/src/components/RadioConsent/styles.js.map +0 -1
  203. package/lib/src/components/Select/styles.d.ts +0 -9
  204. package/lib/src/components/Select/styles.js +0 -2
  205. package/lib/src/components/Select/styles.js.map +0 -1
  206. package/lib/src/components/Spacing/index.d.ts +0 -68
  207. package/lib/src/components/Spacing/index.js +0 -2
  208. package/lib/src/components/Spacing/index.js.map +0 -1
  209. package/lib/src/components/Step/styles.d.ts +0 -16
  210. package/lib/src/components/Step/styles.js +0 -2
  211. package/lib/src/components/Step/styles.js.map +0 -1
  212. package/lib/src/components/Text/styles.d.ts +0 -15
  213. package/lib/src/components/Text/styles.js +0 -2
  214. package/lib/src/components/Text/styles.js.map +0 -1
  215. package/lib/src/components/TextAreaField/styles.d.ts +0 -10
  216. package/lib/src/components/TextAreaField/styles.js +0 -2
  217. package/lib/src/components/TextAreaField/styles.js.map +0 -1
  218. package/lib/src/components/TextField/styles.d.ts +0 -18
  219. package/lib/src/components/TextField/styles.js +0 -2
  220. package/lib/src/components/TextField/styles.js.map +0 -1
  221. package/lib/src/components/ThemeCheatSheet.d.ts +0 -7
  222. package/lib/src/components/Totaliser/styles.d.ts +0 -27
  223. package/lib/src/components/Totaliser/styles.js +0 -2
  224. package/lib/src/components/Totaliser/styles.js.map +0 -1
  225. package/lib/src/components/UserBlock/styles.d.ts +0 -9
  226. package/lib/src/components/UserBlock/styles.js +0 -2
  227. package/lib/src/components/UserBlock/styles.js.map +0 -1
  228. package/lib/src/themes/bowelbabe.d.ts +0 -14
  229. package/lib/src/themes/bowelbabe.js +0 -2
  230. package/lib/src/themes/bowelbabe.js.map +0 -1
  231. package/lib/src/themes/cruk.d.ts +0 -14
  232. package/lib/src/themes/cruk.js +0 -2
  233. package/lib/src/themes/cruk.js.map +0 -1
  234. package/lib/src/themes/rfl.d.ts +0 -14
  235. package/lib/src/themes/rfl.js +0 -2
  236. package/lib/src/themes/rfl.js.map +0 -1
  237. package/lib/src/themes/su2c.d.ts +0 -14
  238. package/lib/src/themes/su2c.js +0 -2
  239. package/lib/src/themes/su2c.js.map +0 -1
  240. package/lib/vite.config.d.ts +0 -2
package/README.md CHANGED
@@ -1,28 +1,35 @@
1
1
  # cruk-react-components
2
2
 
3
- React implementation of the CRUK design system.
3
+ React implementation of the CRUK design system using only React HTML and CSS.
4
+ Contains the following themes for all components
4
5
 
5
- ## View the docs
6
+ - CRUK
7
+ - RFL
8
+ - SU2C
9
+ - Bowelbabe
6
10
 
7
- cruk-react-component docs site: https://master.d28a8la187lo73.amplifyapp.com/
11
+ ## View storybook
8
12
 
9
- ## Usage
13
+ cruk-react-component storybook site demoing all the components with their different variants and themes:
14
+ https://master.d28a8la187lo73.amplifyapp.com/
10
15
 
11
- ---
16
+ ## Getting Started
12
17
 
13
18
  Add cruk-react-components and its peer dependencies react, react-dom and styled-components to your package.json file.
14
19
 
15
20
  ```sh
16
21
  "dependencies": {
17
22
  "react": "^19",
18
- "react-dom": "^19",
19
- "styled-components": "^6"
23
+ "react-dom": "^19"
20
24
  }
21
25
  ```
22
26
 
23
27
  After an `npm i @cruk/cruk-react-components --save`, you can start importing components from the library:
24
28
 
25
29
  ```js
30
+ // Ideally you would import the css on the top level entry point on you app
31
+ // because you only need to import this once
32
+ import "@cruk/cruk-react-components/lib/index.css";
26
33
  import { Button } from "cruk-react-components";
27
34
 
28
35
  const MyComponent = () => (
@@ -32,6 +39,177 @@ const MyComponent = () => (
32
39
  );
33
40
  ```
34
41
 
42
+ ## Extending your components with custom styles
43
+
44
+ ### Using the style prop
45
+
46
+ ```js
47
+ import { Button } from "cruk-react-components";
48
+
49
+ const MyComponent = () => (
50
+ <div>
51
+ <Button style={{ color: "#ff0000" }} />
52
+ </div>
53
+ );
54
+ ```
55
+
56
+ ### Using your own css class
57
+
58
+ Lets say we want to preseve and use the API that exists on the component, we want to add our own CSS class but we don't want to overwrite the CSS class that already styles the component The solution is simple because each components CSS already exposed when you import the index css
59
+
60
+ ```js
61
+ import "@cruk/cruk-react-components/lib/index.css";
62
+ ```
63
+
64
+ The always follow the same naming convetion of
65
+
66
+ `.component-{componentName}`
67
+
68
+ For example
69
+
70
+ - `.component-button`
71
+ - `.component-link`
72
+ - `.component-text-field`
73
+ - `.component-textarea-field`
74
+
75
+ So we need to include the component class as well as our new CSS classes
76
+
77
+ ```js
78
+ import { Button } from "cruk-react-components";
79
+
80
+ const MyComponent = () => (
81
+ <div>
82
+ <Button
83
+ appearance="primary"
84
+ className={["component-button", "my-other-class-name"].join(" ")}
85
+ />
86
+ </div>
87
+ );
88
+ ```
89
+
90
+ ### Utility classes
91
+
92
+ There are currently three utility CCS classes
93
+
94
+ - `color-props`
95
+ - `spacing-props`
96
+ - `text-props`
97
+
98
+ This utility CSS classes can be used like this
99
+
100
+ ```js
101
+ const MyComponent = () => (
102
+ <div className="color-props" data-bg-color="primary">
103
+ <Button
104
+ appearance="primary"
105
+ className={["component-button", "spacing-props"].join(" ")}
106
+ data-margin-bottom="s"
107
+ />
108
+ </div>
109
+ );
110
+ ```
111
+
112
+ ##### color-props
113
+
114
+ This CSS class will take names colours within the themes and applies them to the following data attributes
115
+
116
+ - `data-color`: the text and svg colour
117
+ - `data-bg-color`: the background colour
118
+ - `data-border-color`: the border colour
119
+
120
+ ##### text-props
121
+
122
+ This CSS class will take theme values like named font weights (vlight, light, medum, normal, heavy), named font families (base, buttons, links, headings, labels) and named font sizes (xs, s, m, l, xl, xxl, xxxl ) specified in each theme, as well as word wrap, overflow wrap, text align etc following data attributes
123
+
124
+ - `data-word-break`: word-break
125
+ - `data-overflow-wrap`: overflow-wrßap
126
+ - `data-text-font-family`: sets font family using named font categories
127
+ - `data-text-weight`: sets font weight using names weight categories, matches HTML convention
128
+ - `data-text-size`: sets font size using named font sizes from themes
129
+
130
+ ##### spacing-props
131
+
132
+ This CSS class will set the following named spacing values to different spacing CSS attributes.
133
+ The names spacing values are:
134
+
135
+ - `none`: 0;
136
+ - `auto`: auto;
137
+ - `xxxs`: 0.25rem; /_ 4px _/
138
+ - `xxs`: 0.5rem; /_ 8px _/
139
+ - `xs`: 1rem; /_ 16px _/
140
+ - `s`: 1.5rem; /_ 24px _/
141
+ - `m`: 2rem; /_ 32px _/
142
+ - `l`: 2.5rem; /_ 40px _/
143
+ - `xl`: 3rem; /_ 48px _/
144
+ - `xxl`: 3.5rem; /_ 56px _/
145
+ - `full`: 100%;
146
+
147
+ The attribute available are:
148
+
149
+ - `data-margin`: all margins
150
+ - `data-margin-vertical`: top and bottom margin
151
+ - `data-margin-horizontal`: left and right margin
152
+ - `data-margin-top`: top margin
153
+ - `data-margin-bottom`: bottom margin
154
+ - `data-margin-left`: left margin
155
+ - `data-margin-right`: right margin
156
+ - `data-padding`: all padding
157
+ - `data-padding-vertical`: top and bottom padding
158
+ - `data-padding-horizontal`: left and right padding
159
+ - `data-padding-top`: top padding
160
+ - `data-padding-bottom`: bottom padding
161
+ - `data-padding-left`: left padding
162
+ - `data-padding-right`: right padding
163
+
164
+ ## Migration from V5 and V6 to V7
165
+
166
+ Styled Components has entered maintenance mode.
167
+
168
+ - The first phase was to uses CSS variables and data attributes on HTML elements for theming, instead of using Styled Components themes and ThemeProvider.
169
+ - The second phase was to convert components written in Styled Components into html and css modules and remove Styled Components.
170
+
171
+ ### Themeing
172
+
173
+ So intstead of themeing like this
174
+
175
+ ```tsx
176
+ import { Button, crukTheme } from "cruk-react-components";
177
+ import { ThemeProvider } from "styled-components";
178
+
179
+ const MyComponent = () => (
180
+ <ThemeProvider theme={crukTheme}>
181
+ <Button/>
182
+ <ThemeProvider />
183
+ );
184
+
185
+ ```
186
+
187
+ you only need an html element with `data-theme="cruk"`, the inner most element with data-theme will override outer wrapping elements.
188
+
189
+ ```tsx
190
+ const MyComponent = () => (
191
+ <span data-theme="su2c">
192
+ <Button/>
193
+ <span/>
194
+ );
195
+ ```
196
+
197
+ ### Components with theme dependent content
198
+
199
+ Because the new themeing strategy only effects CSS and not content, components which have theme specific content now have a required property of "themeName". This prop will have to be entered by the app that uses these components. The following components require the themeName prop:
200
+
201
+ - Avatar
202
+ - Header
203
+ - Footer
204
+ - UserBlock
205
+ - Modal\*
206
+
207
+ \* Modal is a special case, it needs themeName prop because the any theme provider will not work. Modals uses React Portals which places the elements in whole new html context.
208
+
209
+ ### Theme variable naming conventions
210
+
211
+ Because the theme names now come from CSS variable instead of theme objects, the theme names that were camel cased, are now snake cased so `textDark` now becomes `text-dark`
212
+
35
213
  ## Migration from V4 to V5
36
214
 
37
215
  Because Styped Components now manages its own types on stead of relying on the community efforts on the DefinitelyTyped project, you may need to use generics instead of inline prop type definition inside styledComponents componets.