@simplybusiness/mobius 4.16.0 → 5.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 (439) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/dist/cjs/components/Accordion/Accordion.js +8 -8
  3. package/dist/cjs/components/Accordion/Accordion.js.map +1 -1
  4. package/dist/cjs/components/Alert/Alert.js +4 -4
  5. package/dist/cjs/components/Alert/Alert.js.map +1 -1
  6. package/dist/cjs/components/Box/Box.js +1 -1
  7. package/dist/cjs/components/Box/Box.js.map +1 -1
  8. package/dist/cjs/components/Breadcrumbs/BreadcrumbItem.js +2 -2
  9. package/dist/cjs/components/Breadcrumbs/BreadcrumbItem.js.map +1 -1
  10. package/dist/cjs/components/Breadcrumbs/Breadcrumbs.js +1 -1
  11. package/dist/cjs/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
  12. package/dist/cjs/components/Button/Button.js +4 -2
  13. package/dist/cjs/components/Button/Button.js.map +1 -1
  14. package/dist/cjs/components/Button/Loading.js +12 -6
  15. package/dist/cjs/components/Button/Loading.js.map +1 -1
  16. package/dist/cjs/components/Button/Success.js +4 -3
  17. package/dist/cjs/components/Button/Success.js.map +1 -1
  18. package/dist/cjs/components/Checkbox/Checkbox.js +10 -6
  19. package/dist/cjs/components/Checkbox/Checkbox.js.map +1 -1
  20. package/dist/cjs/components/Checkbox/CheckboxGroup.js +2 -2
  21. package/dist/cjs/components/Checkbox/CheckboxGroup.js.map +1 -1
  22. package/dist/cjs/components/Container/Container.js +1 -1
  23. package/dist/cjs/components/Container/Container.js.map +1 -1
  24. package/dist/cjs/components/Divider/Divider.js +2 -2
  25. package/dist/cjs/components/Divider/Divider.js.map +1 -1
  26. package/dist/cjs/components/Drawer/Content.js +1 -1
  27. package/dist/cjs/components/Drawer/Content.js.map +1 -1
  28. package/dist/cjs/components/Drawer/Drawer.js +1 -1
  29. package/dist/cjs/components/Drawer/Drawer.js.map +1 -1
  30. package/dist/cjs/components/Drawer/Header.js +2 -2
  31. package/dist/cjs/components/Drawer/Header.js.map +1 -1
  32. package/dist/cjs/components/DropdownMenu/DropdownMenu.js +3 -3
  33. package/dist/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  34. package/dist/cjs/components/DropdownMenu/Item.js +1 -1
  35. package/dist/cjs/components/DropdownMenu/Item.js.map +1 -1
  36. package/dist/cjs/components/ErrorMessage/ErrorMessage.js +7 -4
  37. package/dist/cjs/components/ErrorMessage/ErrorMessage.js.map +1 -1
  38. package/dist/cjs/components/Fieldset/Fieldset.js +2 -2
  39. package/dist/cjs/components/Fieldset/Fieldset.js.map +1 -1
  40. package/dist/cjs/components/Flex/Flex.js +1 -1
  41. package/dist/cjs/components/Flex/Flex.js.map +1 -1
  42. package/dist/cjs/components/Grid/Grid.js +1 -1
  43. package/dist/cjs/components/Grid/Grid.js.map +1 -1
  44. package/dist/cjs/components/Grid/Item.js +1 -1
  45. package/dist/cjs/components/Grid/Item.js.map +1 -1
  46. package/dist/cjs/components/Icon/Icon.js +1 -1
  47. package/dist/cjs/components/Icon/Icon.js.map +1 -1
  48. package/dist/cjs/components/Image/Image.js +1 -1
  49. package/dist/cjs/components/Image/Image.js.map +1 -1
  50. package/dist/cjs/components/Label/Label.js +1 -1
  51. package/dist/cjs/components/Label/Label.js.map +1 -1
  52. package/dist/cjs/components/Link/Link.js +1 -1
  53. package/dist/cjs/components/Link/Link.js.map +1 -1
  54. package/dist/cjs/components/LinkButton/LinkButton.js +1 -1
  55. package/dist/cjs/components/LinkButton/LinkButton.js.map +1 -1
  56. package/dist/cjs/components/List/List.js +1 -1
  57. package/dist/cjs/components/List/List.js.map +1 -1
  58. package/dist/cjs/components/List/ListItem.js +3 -3
  59. package/dist/cjs/components/List/ListItem.js.map +1 -1
  60. package/dist/cjs/components/LoadingIndicator/LoadingIndicator.js +1 -1
  61. package/dist/cjs/components/LoadingIndicator/LoadingIndicator.js.map +1 -1
  62. package/dist/cjs/components/Logo/Logo.js +1 -1
  63. package/dist/cjs/components/Logo/Logo.js.map +1 -1
  64. package/dist/cjs/components/Modal/Content.js +1 -1
  65. package/dist/cjs/components/Modal/Content.js.map +1 -1
  66. package/dist/cjs/components/Modal/Header.js +2 -2
  67. package/dist/cjs/components/Modal/Header.js.map +1 -1
  68. package/dist/cjs/components/Modal/Modal.js +1 -1
  69. package/dist/cjs/components/Modal/Modal.js.map +1 -1
  70. package/dist/cjs/components/NumberField/NumberField.js +7 -5
  71. package/dist/cjs/components/NumberField/NumberField.js.map +1 -1
  72. package/dist/cjs/components/PasswordField/PasswordField.js +1 -1
  73. package/dist/cjs/components/PasswordField/PasswordField.js.map +1 -1
  74. package/dist/cjs/components/PasswordField/ShowHideButton.js +1 -1
  75. package/dist/cjs/components/PasswordField/ShowHideButton.js.map +1 -1
  76. package/dist/cjs/components/Popover/Popover.js +8 -8
  77. package/dist/cjs/components/Popover/Popover.js.map +1 -1
  78. package/dist/cjs/components/Progress/Progress.js +5 -5
  79. package/dist/cjs/components/Progress/Progress.js.map +1 -1
  80. package/dist/cjs/components/Radio/Radio.js +6 -6
  81. package/dist/cjs/components/Radio/Radio.js.map +1 -1
  82. package/dist/cjs/components/Radio/RadioGroup.js +36 -32
  83. package/dist/cjs/components/Radio/RadioGroup.js.map +1 -1
  84. package/dist/cjs/components/SVG/SVG.js +1 -1
  85. package/dist/cjs/components/SVG/SVG.js.map +1 -1
  86. package/dist/cjs/components/Segment/Segment.js +2 -2
  87. package/dist/cjs/components/Segment/Segment.js.map +1 -1
  88. package/dist/cjs/components/Segment/SegmentGroup.js +5 -5
  89. package/dist/cjs/components/Segment/SegmentGroup.js.map +1 -1
  90. package/dist/cjs/components/Select/Select.js +8 -8
  91. package/dist/cjs/components/Select/Select.js.map +1 -1
  92. package/dist/cjs/components/Slider/Slider.js +7 -7
  93. package/dist/cjs/components/Slider/Slider.js.map +1 -1
  94. package/dist/cjs/components/Stack/Stack.js +72 -0
  95. package/dist/cjs/components/Stack/Stack.js.map +1 -0
  96. package/dist/cjs/components/Stack/index.js +20 -0
  97. package/dist/cjs/components/Stack/index.js.map +1 -0
  98. package/dist/cjs/components/Table/Body.js +1 -1
  99. package/dist/cjs/components/Table/Body.js.map +1 -1
  100. package/dist/cjs/components/Table/Cell.js +1 -1
  101. package/dist/cjs/components/Table/Cell.js.map +1 -1
  102. package/dist/cjs/components/Table/Foot.js +1 -1
  103. package/dist/cjs/components/Table/Foot.js.map +1 -1
  104. package/dist/cjs/components/Table/Head.js +1 -1
  105. package/dist/cjs/components/Table/Head.js.map +1 -1
  106. package/dist/cjs/components/Table/HeaderCell.js +1 -1
  107. package/dist/cjs/components/Table/HeaderCell.js.map +1 -1
  108. package/dist/cjs/components/Table/Row.js +1 -1
  109. package/dist/cjs/components/Table/Row.js.map +1 -1
  110. package/dist/cjs/components/Table/Table.js +1 -1
  111. package/dist/cjs/components/Table/Table.js.map +1 -1
  112. package/dist/cjs/components/Text/Text.js +5 -2
  113. package/dist/cjs/components/Text/Text.js.map +1 -1
  114. package/dist/cjs/components/TextArea/TextArea.js +5 -5
  115. package/dist/cjs/components/TextArea/TextArea.js.map +1 -1
  116. package/dist/cjs/components/TextAreaInput/TextAreaInput.js +1 -1
  117. package/dist/cjs/components/TextAreaInput/TextAreaInput.js.map +1 -1
  118. package/dist/cjs/components/TextField/TextField.js +12 -10
  119. package/dist/cjs/components/TextField/TextField.js.map +1 -1
  120. package/dist/cjs/components/Title/Title.js +4 -4
  121. package/dist/cjs/components/Title/Title.js.map +1 -1
  122. package/dist/cjs/components/Trust/Trust.js +4 -5
  123. package/dist/cjs/components/Trust/Trust.js.map +1 -1
  124. package/dist/cjs/components/Trust/constants.js +3 -3
  125. package/dist/cjs/components/Trust/constants.js.map +1 -1
  126. package/dist/cjs/components/index.js +1 -0
  127. package/dist/cjs/components/index.js.map +1 -1
  128. package/dist/cjs/tsconfig.tsbuildinfo +1 -0
  129. package/dist/esm/components/Accordion/Accordion.js +8 -8
  130. package/dist/esm/components/Accordion/Accordion.js.map +1 -1
  131. package/dist/esm/components/Alert/Alert.js +4 -4
  132. package/dist/esm/components/Alert/Alert.js.map +1 -1
  133. package/dist/esm/components/Box/Box.js +1 -1
  134. package/dist/esm/components/Box/Box.js.map +1 -1
  135. package/dist/esm/components/Breadcrumbs/BreadcrumbItem.js +2 -2
  136. package/dist/esm/components/Breadcrumbs/BreadcrumbItem.js.map +1 -1
  137. package/dist/esm/components/Breadcrumbs/Breadcrumbs.js +1 -1
  138. package/dist/esm/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
  139. package/dist/esm/components/Button/Button.js +4 -2
  140. package/dist/esm/components/Button/Button.js.map +1 -1
  141. package/dist/esm/components/Button/Loading.js +12 -6
  142. package/dist/esm/components/Button/Loading.js.map +1 -1
  143. package/dist/esm/components/Button/Success.js +4 -3
  144. package/dist/esm/components/Button/Success.js.map +1 -1
  145. package/dist/esm/components/Checkbox/Checkbox.js +11 -7
  146. package/dist/esm/components/Checkbox/Checkbox.js.map +1 -1
  147. package/dist/esm/components/Checkbox/CheckboxGroup.js +2 -2
  148. package/dist/esm/components/Checkbox/CheckboxGroup.js.map +1 -1
  149. package/dist/esm/components/Container/Container.js +1 -1
  150. package/dist/esm/components/Container/Container.js.map +1 -1
  151. package/dist/esm/components/Divider/Divider.js +2 -2
  152. package/dist/esm/components/Divider/Divider.js.map +1 -1
  153. package/dist/esm/components/Drawer/Content.js +1 -1
  154. package/dist/esm/components/Drawer/Content.js.map +1 -1
  155. package/dist/esm/components/Drawer/Drawer.js +1 -1
  156. package/dist/esm/components/Drawer/Drawer.js.map +1 -1
  157. package/dist/esm/components/Drawer/Header.js +2 -2
  158. package/dist/esm/components/Drawer/Header.js.map +1 -1
  159. package/dist/esm/components/DropdownMenu/DropdownMenu.js +3 -3
  160. package/dist/esm/components/DropdownMenu/DropdownMenu.js.map +1 -1
  161. package/dist/esm/components/DropdownMenu/Item.js +1 -1
  162. package/dist/esm/components/DropdownMenu/Item.js.map +1 -1
  163. package/dist/esm/components/ErrorMessage/ErrorMessage.js +7 -4
  164. package/dist/esm/components/ErrorMessage/ErrorMessage.js.map +1 -1
  165. package/dist/esm/components/Fieldset/Fieldset.js +2 -2
  166. package/dist/esm/components/Fieldset/Fieldset.js.map +1 -1
  167. package/dist/esm/components/Flex/Flex.js +1 -1
  168. package/dist/esm/components/Flex/Flex.js.map +1 -1
  169. package/dist/esm/components/Grid/Grid.js +1 -1
  170. package/dist/esm/components/Grid/Grid.js.map +1 -1
  171. package/dist/esm/components/Grid/Item.js +1 -1
  172. package/dist/esm/components/Grid/Item.js.map +1 -1
  173. package/dist/esm/components/Icon/Icon.js +1 -1
  174. package/dist/esm/components/Icon/Icon.js.map +1 -1
  175. package/dist/esm/components/Image/Image.js +1 -1
  176. package/dist/esm/components/Image/Image.js.map +1 -1
  177. package/dist/esm/components/Label/Label.js +1 -1
  178. package/dist/esm/components/Label/Label.js.map +1 -1
  179. package/dist/esm/components/Link/Link.js +1 -1
  180. package/dist/esm/components/Link/Link.js.map +1 -1
  181. package/dist/esm/components/LinkButton/LinkButton.js +1 -1
  182. package/dist/esm/components/LinkButton/LinkButton.js.map +1 -1
  183. package/dist/esm/components/List/List.js +1 -1
  184. package/dist/esm/components/List/List.js.map +1 -1
  185. package/dist/esm/components/List/ListItem.js +3 -3
  186. package/dist/esm/components/List/ListItem.js.map +1 -1
  187. package/dist/esm/components/LoadingIndicator/LoadingIndicator.js +1 -1
  188. package/dist/esm/components/LoadingIndicator/LoadingIndicator.js.map +1 -1
  189. package/dist/esm/components/Logo/Logo.js +1 -1
  190. package/dist/esm/components/Logo/Logo.js.map +1 -1
  191. package/dist/esm/components/Modal/Content.js +1 -1
  192. package/dist/esm/components/Modal/Content.js.map +1 -1
  193. package/dist/esm/components/Modal/Header.js +2 -2
  194. package/dist/esm/components/Modal/Header.js.map +1 -1
  195. package/dist/esm/components/Modal/Modal.js +1 -1
  196. package/dist/esm/components/Modal/Modal.js.map +1 -1
  197. package/dist/esm/components/NumberField/NumberField.js +7 -5
  198. package/dist/esm/components/NumberField/NumberField.js.map +1 -1
  199. package/dist/esm/components/PasswordField/PasswordField.js +1 -1
  200. package/dist/esm/components/PasswordField/PasswordField.js.map +1 -1
  201. package/dist/esm/components/PasswordField/ShowHideButton.js +1 -1
  202. package/dist/esm/components/PasswordField/ShowHideButton.js.map +1 -1
  203. package/dist/esm/components/Popover/Popover.js +8 -8
  204. package/dist/esm/components/Popover/Popover.js.map +1 -1
  205. package/dist/esm/components/Progress/Progress.js +5 -5
  206. package/dist/esm/components/Progress/Progress.js.map +1 -1
  207. package/dist/esm/components/Radio/Radio.js +6 -6
  208. package/dist/esm/components/Radio/Radio.js.map +1 -1
  209. package/dist/esm/components/Radio/RadioGroup.js +36 -32
  210. package/dist/esm/components/Radio/RadioGroup.js.map +1 -1
  211. package/dist/esm/components/SVG/SVG.js +1 -1
  212. package/dist/esm/components/SVG/SVG.js.map +1 -1
  213. package/dist/esm/components/Segment/Segment.js +2 -2
  214. package/dist/esm/components/Segment/Segment.js.map +1 -1
  215. package/dist/esm/components/Segment/SegmentGroup.js +5 -5
  216. package/dist/esm/components/Segment/SegmentGroup.js.map +1 -1
  217. package/dist/esm/components/Select/Select.js +8 -8
  218. package/dist/esm/components/Select/Select.js.map +1 -1
  219. package/dist/esm/components/Slider/Slider.js +7 -7
  220. package/dist/esm/components/Slider/Slider.js.map +1 -1
  221. package/dist/esm/components/Stack/Stack.js +16 -0
  222. package/dist/esm/components/Stack/Stack.js.map +1 -0
  223. package/dist/esm/components/Stack/index.js +3 -0
  224. package/dist/esm/components/Stack/index.js.map +1 -0
  225. package/dist/esm/components/Table/Body.js +1 -1
  226. package/dist/esm/components/Table/Body.js.map +1 -1
  227. package/dist/esm/components/Table/Cell.js +1 -1
  228. package/dist/esm/components/Table/Cell.js.map +1 -1
  229. package/dist/esm/components/Table/Foot.js +1 -1
  230. package/dist/esm/components/Table/Foot.js.map +1 -1
  231. package/dist/esm/components/Table/Head.js +1 -1
  232. package/dist/esm/components/Table/Head.js.map +1 -1
  233. package/dist/esm/components/Table/HeaderCell.js +1 -1
  234. package/dist/esm/components/Table/HeaderCell.js.map +1 -1
  235. package/dist/esm/components/Table/Row.js +1 -1
  236. package/dist/esm/components/Table/Row.js.map +1 -1
  237. package/dist/esm/components/Table/Table.js +1 -1
  238. package/dist/esm/components/Table/Table.js.map +1 -1
  239. package/dist/esm/components/Text/Text.js +5 -2
  240. package/dist/esm/components/Text/Text.js.map +1 -1
  241. package/dist/esm/components/TextArea/TextArea.js +5 -5
  242. package/dist/esm/components/TextArea/TextArea.js.map +1 -1
  243. package/dist/esm/components/TextAreaInput/TextAreaInput.js +1 -1
  244. package/dist/esm/components/TextAreaInput/TextAreaInput.js.map +1 -1
  245. package/dist/esm/components/TextField/TextField.js +12 -10
  246. package/dist/esm/components/TextField/TextField.js.map +1 -1
  247. package/dist/esm/components/Title/Title.js +4 -4
  248. package/dist/esm/components/Title/Title.js.map +1 -1
  249. package/dist/esm/components/Trust/Trust.js +4 -5
  250. package/dist/esm/components/Trust/Trust.js.map +1 -1
  251. package/dist/esm/components/Trust/constants.js +3 -3
  252. package/dist/esm/components/Trust/constants.js.map +1 -1
  253. package/dist/esm/components/index.js +1 -0
  254. package/dist/esm/components/index.js.map +1 -1
  255. package/dist/types/components/Button/Button.d.ts +2 -2
  256. package/dist/types/components/Button/Loading.d.ts +5 -1
  257. package/dist/types/components/Segment/Segment.stories.d.ts +2 -2
  258. package/dist/types/components/Segment/SegmentGroup.d.ts +1 -1
  259. package/dist/types/components/Stack/Stack.d.ts +15 -0
  260. package/dist/types/components/Stack/Stack.stories.d.ts +7 -0
  261. package/dist/types/components/Stack/Stack.test.d.ts +1 -0
  262. package/dist/types/components/Stack/index.d.ts +1 -0
  263. package/dist/types/components/index.d.ts +1 -0
  264. package/package.json +3 -2
  265. package/src/components/Accordion/Accordion.css +72 -0
  266. package/src/components/Accordion/Accordion.mdx +9 -10
  267. package/src/components/Accordion/Accordion.test.tsx +4 -4
  268. package/src/components/Accordion/Accordion.tsx +8 -8
  269. package/src/components/Alert/Alert.css +53 -0
  270. package/src/components/Alert/Alert.mdx +1 -5
  271. package/src/components/Alert/Alert.tsx +4 -4
  272. package/src/components/Box/Box.css +3 -0
  273. package/src/components/Box/Box.mdx +1 -5
  274. package/src/components/Box/Box.test.tsx +1 -1
  275. package/src/components/Box/Box.tsx +1 -1
  276. package/src/components/Breadcrumbs/BreadcrumbItem.tsx +2 -2
  277. package/src/components/Breadcrumbs/Breadcrumbs.css +34 -0
  278. package/src/components/Breadcrumbs/Breadcrumbs.mdx +4 -8
  279. package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +2 -2
  280. package/src/components/Breadcrumbs/Breadcrumbs.tsx +1 -1
  281. package/src/components/Button/Button.css +253 -0
  282. package/src/components/Button/Button.mdx +3 -11
  283. package/src/components/Button/Button.story.styles.css +2 -2
  284. package/src/components/Button/Button.test.tsx +4 -6
  285. package/src/components/Button/Button.tsx +4 -4
  286. package/src/components/Button/Loading.tsx +21 -8
  287. package/src/components/Button/Success.tsx +5 -3
  288. package/src/components/Checkbox/Checkbox.css +112 -0
  289. package/src/components/Checkbox/Checkbox.mdx +6 -12
  290. package/src/components/Checkbox/Checkbox.test.tsx +1 -7
  291. package/src/components/Checkbox/Checkbox.tsx +9 -7
  292. package/src/components/Checkbox/CheckboxGroup.css +26 -0
  293. package/src/components/Checkbox/CheckboxGroup.mdx +12 -22
  294. package/src/components/Checkbox/CheckboxGroup.test.tsx +2 -7
  295. package/src/components/Checkbox/CheckboxGroup.tsx +2 -2
  296. package/src/components/Container/Container.css +13 -0
  297. package/src/components/Container/Container.mdx +1 -5
  298. package/src/components/Container/Container.test.tsx +1 -2
  299. package/src/components/Container/Container.tsx +1 -1
  300. package/src/components/Divider/Divider.css +14 -0
  301. package/src/components/Divider/Divider.mdx +2 -6
  302. package/src/components/Divider/Divider.test.tsx +1 -1
  303. package/src/components/Divider/Divider.tsx +2 -2
  304. package/src/components/Drawer/Content.tsx +1 -1
  305. package/src/components/Drawer/Drawer.css +189 -0
  306. package/src/components/Drawer/Drawer.mdx +5 -12
  307. package/src/components/Drawer/Drawer.test.tsx +2 -2
  308. package/src/components/Drawer/Drawer.tsx +1 -1
  309. package/src/components/Drawer/Header.tsx +2 -2
  310. package/src/components/DropdownMenu/DropdownMenu.css +70 -0
  311. package/src/components/DropdownMenu/DropdownMenu.mdx +4 -8
  312. package/src/components/DropdownMenu/DropdownMenu.story.styles.css +3 -3
  313. package/src/components/DropdownMenu/DropdownMenu.test.tsx +4 -4
  314. package/src/components/DropdownMenu/DropdownMenu.tsx +3 -3
  315. package/src/components/DropdownMenu/Item.tsx +1 -1
  316. package/src/components/ErrorMessage/ErrorMessage.css +11 -0
  317. package/src/components/ErrorMessage/ErrorMessage.test.tsx +1 -1
  318. package/src/components/ErrorMessage/ErrorMessage.tsx +5 -3
  319. package/src/components/Fieldset/Fieldset.css +15 -0
  320. package/src/components/Fieldset/Fieldset.mdx +2 -6
  321. package/src/components/Fieldset/Fieldset.tsx +2 -2
  322. package/src/components/Flex/Flex.css +4 -0
  323. package/src/components/Flex/Flex.mdx +1 -5
  324. package/src/components/Flex/Flex.test.tsx +1 -1
  325. package/src/components/Flex/Flex.tsx +1 -1
  326. package/src/components/Grid/Grid.mdx +0 -4
  327. package/src/components/Grid/Grid.tsx +1 -1
  328. package/src/components/Grid/Item.tsx +1 -1
  329. package/src/components/Icon/Icon.css +44 -0
  330. package/src/components/Icon/Icon.mdx +1 -5
  331. package/src/components/Icon/Icon.test.tsx +1 -1
  332. package/src/components/Icon/Icon.tsx +1 -1
  333. package/src/components/Image/Image.mdx +1 -5
  334. package/src/components/Image/Image.test.tsx +1 -1
  335. package/src/components/Image/Image.tsx +1 -1
  336. package/src/components/Label/Label.css +21 -0
  337. package/src/components/Label/Label.mdx +1 -5
  338. package/src/components/Label/Label.test.tsx +1 -1
  339. package/src/components/Label/Label.tsx +1 -1
  340. package/src/components/Link/Link.css +26 -0
  341. package/src/components/Link/Link.mdx +1 -5
  342. package/src/components/Link/Link.test.tsx +1 -1
  343. package/src/components/Link/Link.tsx +1 -1
  344. package/src/components/LinkButton/LinkButton.mdx +1 -5
  345. package/src/components/LinkButton/LinkButton.tsx +1 -1
  346. package/src/components/List/List.css +60 -0
  347. package/src/components/List/List.mdx +4 -8
  348. package/src/components/List/List.test.tsx +4 -4
  349. package/src/components/List/List.tsx +1 -1
  350. package/src/components/List/ListItem.tsx +3 -3
  351. package/src/components/LoadingIndicator/LoadingIndicator.css +3 -0
  352. package/src/components/LoadingIndicator/LoadingIndicator.mdx +1 -5
  353. package/src/components/LoadingIndicator/LoadingIndicator.test.tsx +1 -1
  354. package/src/components/LoadingIndicator/LoadingIndicator.tsx +1 -1
  355. package/src/components/Logo/Logo.mdx +1 -5
  356. package/src/components/Logo/Logo.test.tsx +1 -1
  357. package/src/components/Logo/Logo.tsx +1 -1
  358. package/src/components/Modal/Content.tsx +1 -1
  359. package/src/components/Modal/Header.tsx +2 -2
  360. package/src/components/Modal/Modal.css +145 -0
  361. package/src/components/Modal/Modal.mdx +5 -12
  362. package/src/components/Modal/Modal.test.tsx +2 -2
  363. package/src/components/Modal/Modal.tsx +1 -1
  364. package/src/components/NumberField/NumberField.css +64 -0
  365. package/src/components/NumberField/NumberField.mdx +4 -8
  366. package/src/components/NumberField/NumberField.tsx +7 -6
  367. package/src/components/PasswordField/PasswordField.css +31 -0
  368. package/src/components/PasswordField/PasswordField.mdx +4 -8
  369. package/src/components/PasswordField/PasswordField.tsx +1 -1
  370. package/src/components/PasswordField/ShowHideButton.tsx +1 -1
  371. package/src/components/Popover/Popover.css +43 -0
  372. package/src/components/Popover/Popover.mdx +7 -11
  373. package/src/components/Popover/Popover.story.styles.css +3 -3
  374. package/src/components/Popover/Popover.test.tsx +7 -7
  375. package/src/components/Popover/Popover.tsx +8 -8
  376. package/src/components/Progress/Progress.css +30 -0
  377. package/src/components/Progress/Progress.mdx +5 -11
  378. package/src/components/Progress/Progress.test.tsx +7 -3
  379. package/src/components/Progress/Progress.tsx +5 -5
  380. package/src/components/Radio/Radio.css +185 -0
  381. package/src/components/Radio/Radio.mdx +9 -13
  382. package/src/components/Radio/Radio.test.tsx +10 -5
  383. package/src/components/Radio/Radio.tsx +6 -6
  384. package/src/components/Radio/RadioGroup.tsx +28 -25
  385. package/src/components/SVG/SVG.mdx +1 -5
  386. package/src/components/SVG/SVG.test.tsx +1 -1
  387. package/src/components/SVG/SVG.tsx +1 -1
  388. package/src/components/Segment/Segment.css +204 -0
  389. package/src/components/Segment/Segment.mdx +9 -13
  390. package/src/components/Segment/Segment.stories.tsx +7 -7
  391. package/src/components/Segment/Segment.tsx +2 -2
  392. package/src/components/Segment/SegmentGroup.tsx +6 -6
  393. package/src/components/Select/Select.css +85 -0
  394. package/src/components/Select/Select.mdx +4 -8
  395. package/src/components/Select/Select.test.tsx +2 -2
  396. package/src/components/Select/Select.tsx +7 -7
  397. package/src/components/Slider/Slider.css +138 -0
  398. package/src/components/Slider/Slider.mdx +8 -14
  399. package/src/components/Slider/Slider.test.tsx +4 -1
  400. package/src/components/Slider/Slider.tsx +7 -7
  401. package/src/components/Stack/Stack.css +30 -0
  402. package/src/components/Stack/Stack.mdx +41 -0
  403. package/src/components/Stack/Stack.stories.tsx +56 -0
  404. package/src/components/Stack/Stack.test.tsx +8 -0
  405. package/src/components/Stack/Stack.tsx +34 -0
  406. package/src/components/Stack/index.tsx +1 -0
  407. package/src/components/Table/Body.tsx +1 -1
  408. package/src/components/Table/Cell.tsx +1 -1
  409. package/src/components/Table/Foot.tsx +1 -1
  410. package/src/components/Table/Head.tsx +1 -1
  411. package/src/components/Table/HeaderCell.tsx +1 -1
  412. package/src/components/Table/Row.tsx +1 -1
  413. package/src/components/Table/Table.css +62 -0
  414. package/src/components/Table/Table.mdx +10 -14
  415. package/src/components/Table/Table.test.tsx +28 -15
  416. package/src/components/Table/Table.tsx +1 -1
  417. package/src/components/Text/Text.css +94 -0
  418. package/src/components/Text/Text.mdx +1 -5
  419. package/src/components/Text/Text.test.tsx +1 -1
  420. package/src/components/Text/Text.tsx +3 -4
  421. package/src/components/TextArea/TextArea.css +46 -0
  422. package/src/components/TextArea/TextArea.mdx +4 -8
  423. package/src/components/TextArea/TextArea.test.tsx +1 -1
  424. package/src/components/TextArea/TextArea.tsx +8 -5
  425. package/src/components/TextAreaInput/TextAreaInput.test.tsx +1 -1
  426. package/src/components/TextAreaInput/TextAreaInput.tsx +1 -1
  427. package/src/components/TextField/TextField.css +166 -0
  428. package/src/components/TextField/TextField.mdx +4 -8
  429. package/src/components/TextField/TextField.test.tsx +10 -10
  430. package/src/components/TextField/TextField.tsx +14 -11
  431. package/src/components/Title/Title.css +41 -0
  432. package/src/components/Title/Title.mdx +4 -8
  433. package/src/components/Title/Title.tsx +4 -4
  434. package/src/components/Trust/Trust.mdx +1 -7
  435. package/src/components/Trust/Trust.test.tsx +1 -1
  436. package/src/components/Trust/Trust.tsx +4 -5
  437. package/src/components/Trust/constants.ts +3 -3
  438. package/src/components/VisuallyHidden/VisuallyHidden.mdx +0 -4
  439. package/src/components/index.tsx +1 -0
@@ -0,0 +1,253 @@
1
+ :root,
2
+ :host {
3
+ --button-variant-primary-font-variation-settings: normal;
4
+ --button-variant-primary-color: var(--color-primary);
5
+ --button-variant-primary-hover-color: var(--color-primary-hover);
6
+ --button-border-radius: var(--radius-1);
7
+ }
8
+
9
+ .mobius-button {
10
+ box-sizing: border-box;
11
+ display: inline-block;
12
+ outline: none;
13
+ text-decoration: none;
14
+ font-family: var(--font-family);
15
+ cursor: pointer;
16
+ color: var(--button-content-color);
17
+ font-weight: var(--font-weight-bold);
18
+ border-radius: var(--button-border-radius);
19
+ border-width: var(--size-border-width);
20
+ border-color: transparent;
21
+ border-style: solid;
22
+ position: relative;
23
+ margin: 0;
24
+ transition:
25
+ color var(--transition-standard),
26
+ background-color var(--transition-standard);
27
+
28
+ &:where(.--has-icon) {
29
+ display: inline-flex;
30
+ gap: var(--size-xs);
31
+ }
32
+
33
+ /* Sizes */
34
+ /* TODO: CSS variables for line-height do not produce desired height for buttons. */
35
+ /* These hard-coded line-height values should be replaced with CSS variables. */
36
+ &:where(.--size-sm) {
37
+ font-size: var(--font-size-3);
38
+ line-height: 16px;
39
+ padding: 10px var(--size-sm);
40
+ }
41
+
42
+ &:where(.--size-md) {
43
+ font-size: var(--font-size-4);
44
+ line-height: 24px;
45
+ padding: 14px var(--size-md);
46
+ }
47
+
48
+ &:where(.--size-lg) {
49
+ font-size: var(--font-size-5);
50
+ line-height: 32px;
51
+ padding: 14px var(--size-md);
52
+ }
53
+
54
+ /* Primary */
55
+ &:where(.--variant-primary) {
56
+ --button-content-color: var(--color-text-inverted);
57
+ background-color: var(--button-variant-primary-color);
58
+ font-variation-settings: var(
59
+ --button-variant-primary-font-variation-settings
60
+ );
61
+
62
+ &:where(:active),
63
+ &:where(:hover) {
64
+ background-color: var(--button-variant-primary-hover-color);
65
+ }
66
+
67
+ &:where(:focus-visible) {
68
+ box-shadow: var(--box-shadow-default);
69
+ }
70
+
71
+ &:where(.--is-disabled) {
72
+ --button-content-color: var(--color-text-light);
73
+ background-color: var(--color-background-medium);
74
+ cursor: not-allowed;
75
+ }
76
+ }
77
+
78
+ /* Secondary */
79
+ &:where(.--variant-secondary) {
80
+ --button-content-color: var(--color-secondary);
81
+ background-color: transparent;
82
+ border-color: var(--color-secondary);
83
+
84
+ &:where(:active),
85
+ &:where(:hover) {
86
+ --button-content-color: var(--color-text-inverted);
87
+ background-color: var(--color-secondary-hover);
88
+ border-color: var(--color-secondary-hover);
89
+ }
90
+
91
+ &:where(:focus-visible) {
92
+ box-shadow: var(--box-shadow-default);
93
+ }
94
+
95
+ &:where(.--is-disabled) {
96
+ --button-content-color: var(--color-text-light);
97
+ border-color: transparent;
98
+ background-color: var(--color-background-medium);
99
+ cursor: not-allowed;
100
+ }
101
+ }
102
+
103
+ /* Ghost */
104
+ &:where(.--variant-ghost) {
105
+ --button-content-color: var(--color-secondary);
106
+ background-color: var(--color-background-highlight);
107
+ border: var(--border-default);
108
+ border-color: transparent;
109
+
110
+ &:where(:active) {
111
+ background-color: var(--color-secondary-hover);
112
+ }
113
+
114
+ &:where(:hover) {
115
+ --button-content-color: var(--color-text-inverted);
116
+ border-color: transparent;
117
+ background-color: var(--color-secondary-hover);
118
+ }
119
+
120
+ &:where(:focus-visible) {
121
+ box-shadow: var(--box-shadow-default);
122
+ }
123
+
124
+ &:where(.--is-disabled) {
125
+ --button-content-color: var(--color-text-light);
126
+ border-color: transparent;
127
+ background-color: var(--color-background-medium);
128
+ cursor: not-allowed;
129
+ }
130
+ }
131
+
132
+ /* Basic */
133
+ &:where(.--variant-basic) {
134
+ --button-content-color: var(--color-text);
135
+ border-color: transparent;
136
+ background-color: transparent;
137
+
138
+ &:where(:active) {
139
+ background-color: var(--color-background-light);
140
+ }
141
+
142
+ &:where(:hover) {
143
+ background-color: var(--color-background-light);
144
+ }
145
+
146
+ &:where(.--is-disabled) {
147
+ --button-content-color: var(--color-text-light);
148
+ background-color: var(--color-background-medium);
149
+ cursor: not-allowed;
150
+ }
151
+ }
152
+
153
+ /* Success */
154
+ &:where(.--is-success) {
155
+ background-color: var(--color-valid);
156
+ border-color: var(--color-valid);
157
+ color: transparent;
158
+
159
+ /* Hide content, but keep same space occupied */
160
+ > :not(.mobius-button__icon-wrapper) {
161
+ opacity: 0;
162
+ visibility: hidden;
163
+ }
164
+
165
+ /* Show succces/tick icon */
166
+ [data-icon="tick"] path {
167
+ fill: var(--color-text-inverted);
168
+ }
169
+
170
+ /* Link variant is the exception */
171
+ &:where(.--variant-link) [data-icon="tick"] path {
172
+ fill: var(--button-content-color);
173
+ }
174
+
175
+ &:where(:hover) {
176
+ background-color: var(--color-valid-hover);
177
+ border-color: var(--color-valid-hover);
178
+ }
179
+
180
+ &:where(:active) {
181
+ background-color: var(--color-valid);
182
+ }
183
+
184
+ &:where(.--is-disabled) {
185
+ border-color: transparent;
186
+ color: transparent;
187
+ background-color: var(--color-background-medium);
188
+ cursor: not-allowed;
189
+ }
190
+ }
191
+
192
+ /* Loading */
193
+ &:where(.--is-loading) {
194
+ /* Hide text */
195
+ color: transparent;
196
+
197
+ /* Hide content, but keep same space occupied */
198
+ > :not(.mobius-button__icon-wrapper) {
199
+ opacity: 0;
200
+ visibility: hidden;
201
+ }
202
+
203
+ /* Show loading icon */
204
+ [data-icon="loading"] path {
205
+ fill: var(--button-content-color);
206
+ }
207
+ }
208
+
209
+ /* Link */
210
+ &:where(.--variant-link) {
211
+ --button-content-color: var(--color-secondary);
212
+ appearance: none;
213
+ border: none;
214
+ padding: 0;
215
+ background-color: transparent;
216
+ font-weight: normal;
217
+
218
+ &:not(.--is-loading) {
219
+ text-decoration: underline;
220
+ }
221
+
222
+ &:hover,
223
+ &:active {
224
+ --button-content-color: var(--color-secondary-hover);
225
+ cursor: pointer;
226
+ }
227
+
228
+ &:focus-visible {
229
+ box-shadow: 0 0 0 var(--size-focus-ring) var(--color-focus);
230
+ padding: 3px 0;
231
+ }
232
+
233
+ &.--is-disabled {
234
+ --button-content-color: var(--color-text-light);
235
+ cursor: not-allowed;
236
+ }
237
+ }
238
+ }
239
+
240
+ .mobius-button__icon-wrapper {
241
+ position: absolute;
242
+ top: 0;
243
+ left: 0;
244
+ right: 0;
245
+ bottom: 0;
246
+ display: grid;
247
+ place-items: center;
248
+ }
249
+
250
+ a.mobius-button:focus-visible,
251
+ .mobius-button:focus-visible {
252
+ box-shadow: var(--box-shadow-default);
253
+ }
@@ -205,19 +205,15 @@ const PressButton = () => {
205
205
  The following example HTML is rendered for a `<Button>`:
206
206
 
207
207
  ```html
208
- <button class="mobius/Button --variant-primary --size-md">Text</button>
208
+ <button class="mobius-button --variant-primary --size-md">Text</button>
209
209
  ```
210
210
 
211
211
  And this for a `<Button>` with an icon:
212
212
 
213
213
  ```html
214
- <button class="mobius/Button --variant-primary --size-md">
214
+ <button class="mobius-button --variant-primary --size-md">
215
215
  Text
216
- <svg
217
- class="mobius mobius/Icon svg-inline--mobius-icon"
218
- role="img"
219
- focusable="false"
220
- >
216
+ <svg class="mobius-icon svg-inline--mobius-icon" role="img" focusable="false">
221
217
  (icon)
222
218
  </svg>
223
219
  </button>
@@ -235,7 +231,3 @@ Class names are augmented with the following flags if true:
235
231
  - \--variant-secondary
236
232
  - \--variant-ghost
237
233
  - \--variant-basic
238
-
239
- ---
240
-
241
- [See on Github](https://github.com/simplybusiness/mobius/tree/master/packages/mobius/src/components/Button) | [Give feedback](https://simplybusiness.atlassian.net/CreateIssue.jspa?issuetype=10103&pid=10609) | [Get support](https://simplybusiness.slack.com/archives/C016CC0NDNE)
@@ -1,8 +1,8 @@
1
- .button-example-with-theme.mobius\/Button {
1
+ .button-example-with-theme.mobius-button {
2
2
  background-color: darkred;
3
3
  }
4
4
 
5
- .button-example-with-icon.mobius\/Button {
5
+ .button-example-with-icon.mobius-button {
6
6
  display: inline-flex;
7
7
  gap: var(--size-xs);
8
8
  align-items: center;
@@ -4,7 +4,7 @@ import { chevronDown } from "@simplybusiness/icons";
4
4
  import { Icon } from "../Icon";
5
5
  import { Button } from ".";
6
6
 
7
- const CLASS_NAME = "mobius/Button";
7
+ const CLASS_NAME = "mobius-button";
8
8
 
9
9
  describe("Button", () => {
10
10
  // This is to supress console.warn for the
@@ -49,7 +49,7 @@ describe("Button", () => {
49
49
  });
50
50
 
51
51
  describe("given the button is set to 'loading'", () => {
52
- it("should only render the loading icon", () => {
52
+ it("should render the loading icon", () => {
53
53
  const BUTTON_TEXT = "Click me";
54
54
 
55
55
  const { container } = render(
@@ -59,15 +59,13 @@ describe("Button", () => {
59
59
  </Button>,
60
60
  );
61
61
 
62
+ const button = screen.getByRole("button");
62
63
  const loadingIcon = container.querySelector("[data-icon='loading']");
63
64
  const loadingText = screen.getByText("Loading");
64
- const buttonIcon = container.querySelector("[data-icon='chevron-down']");
65
- const buttonText = screen.queryByText(BUTTON_TEXT);
66
65
 
67
66
  expect(loadingIcon).toBeInTheDocument();
68
67
  expect(loadingText).toBeInTheDocument();
69
- expect(buttonIcon).not.toBeInTheDocument();
70
- expect(buttonText).not.toBeInTheDocument();
68
+ expect(button).toHaveClass("--is-loading");
71
69
  });
72
70
  });
73
71
 
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
 
3
- import { Ref, forwardRef, RefAttributes, ReactNode } from "react";
3
+ import { Ref, forwardRef, RefAttributes, ReactNode, MouseEvent } from "react";
4
4
  import classNames from "classnames/dedupe";
5
5
  import { DOMProps } from "../../types/dom";
6
6
  import { ForwardedRefComponent } from "../../types/components";
@@ -35,7 +35,7 @@ export interface ButtonProps
35
35
  isLoading?: boolean;
36
36
  /** Display success style */
37
37
  isSuccess?: boolean;
38
- onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;
38
+ onClick?: (event: MouseEvent<HTMLButtonElement>) => void;
39
39
  children?: ReactNode;
40
40
  }
41
41
 
@@ -82,7 +82,7 @@ const Button: ForwardedRefComponent<ButtonProps, ButtonElementType> =
82
82
  // Reshape class name and apply to outer element
83
83
  const classes = classNames(
84
84
  "mobius",
85
- "mobius/Button",
85
+ "mobius-button",
86
86
  `--variant-${buttonVariant}`,
87
87
  `--size-${size}`,
88
88
  {
@@ -96,7 +96,7 @@ const Button: ForwardedRefComponent<ButtonProps, ButtonElementType> =
96
96
 
97
97
  return (
98
98
  <Component ref={ref} {...buttonProps} {...otherProps}>
99
- {isLoading ? <Loading /> : children && children}
99
+ {isLoading ? <Loading>{children}</Loading> : children}
100
100
  {isSuccess && !isLoading && <Success />}
101
101
  </Component>
102
102
  );
@@ -1,13 +1,26 @@
1
+ import { ReactNode } from "react";
1
2
  import { loading } from "@simplybusiness/icons";
2
3
  import { Icon } from "../Icon";
4
+ import { VisuallyHidden } from "../VisuallyHidden";
3
5
 
4
- const Loading = () => (
5
- <>
6
- <div className="mobius/ButtonIconWrapper">
7
- <Icon icon={loading} spin />
8
- </div>
9
- <span className="mobius/LoadingText">Loading</span>
10
- </>
11
- );
6
+ type LoadingProps = {
7
+ children: ReactNode;
8
+ };
9
+
10
+ const Loading = (props: LoadingProps) => {
11
+ const { children } = props;
12
+
13
+ return (
14
+ <>
15
+ <div className="mobius-button__icon-wrapper">
16
+ <Icon icon={loading} spin size="md" />
17
+ </div>
18
+ <VisuallyHidden className="mobius-button__loading-text">
19
+ Loading
20
+ </VisuallyHidden>
21
+ {children}
22
+ </>
23
+ );
24
+ };
12
25
 
13
26
  export { Loading };
@@ -4,10 +4,12 @@ import { VisuallyHidden } from "../VisuallyHidden";
4
4
 
5
5
  const Success = () => (
6
6
  <>
7
- <div className="mobius/ButtonIconWrapper">
8
- <Icon icon={tick} />
7
+ <div className="mobius-button__icon-wrapper">
8
+ <Icon icon={tick} size="md" />
9
9
  </div>
10
- <VisuallyHidden className="mobius/SuccessText">Success</VisuallyHidden>
10
+ <VisuallyHidden className="mobius-button__success-text">
11
+ Success
12
+ </VisuallyHidden>
11
13
  </>
12
14
  );
13
15
 
@@ -0,0 +1,112 @@
1
+ .mobius-checkbox__input {
2
+ appearance: none;
3
+ position: absolute;
4
+ margin-top: 2px;
5
+ margin-left: 0px;
6
+ width: 21px;
7
+ height: 20px;
8
+ pointer-events: none;
9
+
10
+ /* Disable browser default since input already provides focus */
11
+ &:focus-visible {
12
+ outline: none;
13
+ }
14
+
15
+ /* Disabled */
16
+ &.--is-disabled {
17
+ color: var(--color-text-light);
18
+ border-color: var(--color-border-medium);
19
+ background-color: var(--color-background-light);
20
+ }
21
+
22
+ /* Invalid */
23
+ .--is-invalid &:not(.--is-disabled) {
24
+ border-color: var(--color-error);
25
+ }
26
+ }
27
+
28
+ .mobius-checkbox__label {
29
+ box-sizing: border-box;
30
+ display: flex;
31
+ align-items: flex-start;
32
+ flex-direction: row;
33
+ border: var(--border-default);
34
+ border-radius: var(--radius-1);
35
+ padding: var(--input-field-padding-tight);
36
+ position: relative;
37
+ user-select: none;
38
+ cursor: pointer;
39
+ background-color: var(--color-background-input);
40
+
41
+ /* Disabled */
42
+ &.--is-disabled {
43
+ color: var(--color-text-light);
44
+ border-color: var(--color-border-medium);
45
+ background-color: var(--color-background-light);
46
+ cursor: not-allowed;
47
+
48
+ .mobius-checkbox__icon {
49
+ color: var(--color-text-light);
50
+ }
51
+ }
52
+
53
+ /* Hovered */
54
+ &:hover:not(.--is-disabled):not(&.--is-invalid) {
55
+ border-color: var(--color-primary);
56
+ background-color: var(--color-background-input-active);
57
+
58
+ .mobius-checkbox__input {
59
+ border-color: var(--color-primary);
60
+ }
61
+
62
+ .mobius-checkbox__icon {
63
+ color: var(--color-primary);
64
+ }
65
+ }
66
+
67
+ /* Focused */
68
+ &:focus-within:not(.--is-disabled) {
69
+ &:not(.--is-invalid) {
70
+ box-shadow: var(--box-shadow-default);
71
+ border-color: var(--color-primary);
72
+ background-color: var(--color-background-input-active);
73
+
74
+ .mobius-checkbox__icon {
75
+ color: var(--color-primary);
76
+ }
77
+ }
78
+ }
79
+
80
+ /* Invalid */
81
+ &.--is-invalid:not(.--is-disabled) {
82
+ border-color: var(--color-error);
83
+ color: var(--color-error);
84
+
85
+ &:hover,
86
+ &:focus-within {
87
+ background-color: var(--color-error-background);
88
+ }
89
+
90
+ .mobius-checkbox__icon {
91
+ color: var(--color-error);
92
+ }
93
+
94
+ .mobius-checkbox__input {
95
+ border-color: var(--color-error);
96
+ }
97
+ }
98
+ }
99
+
100
+ .mobius-checkbox__icon {
101
+ position: relative;
102
+ color: var(--color-primary-light);
103
+ }
104
+
105
+ .mobius-checkbox__visible-label {
106
+ box-sizing: border-box;
107
+ width: 100%;
108
+ font-family: var(--font-family);
109
+ line-height: var(--line-height-normal);
110
+ font-size: var(--font-size-regular);
111
+ margin-left: var(--size-sm);
112
+ }
@@ -66,19 +66,17 @@ The `onChange` prop can be used to listen to changes of the selected state of th
66
66
  The following example HTML is rendered for a Checkbox:
67
67
 
68
68
  ```html
69
- <label class="mobius mobius/Checkbox --is-invalid --is-optional">
69
+ <label class="mobius-checkbox --is-invalid --is-optional">
70
70
  <input
71
- class="mobius/CheckboxInput --is-invalid --is-optional"
71
+ class="mobius-checkbox__input --is-invalid --is-optional"
72
72
  type="checkbox"
73
73
  value="agree"
74
74
  />
75
- <span class="mobius/CheckboxLabel">I agree</span>
75
+ <span class="mobius-checkbox__label">I agree</span>
76
76
  </label>
77
- <div class="mobius/ErrorMessage">
78
- <span class="mobius/ErrorIcon"></span>
79
- <span class="mobius/Text span mobius/ErrorText"
80
- >This is an error message</span
81
- >
77
+ <div class="mobius-error-message">
78
+ <span class="mobius-error-message__icon"></span>
79
+ <span class="mobius-error-message__text">This is an error message</span>
82
80
  </div>
83
81
  ```
84
82
 
@@ -90,7 +88,3 @@ Class names are augmented with the following flags if true:
90
88
  - \--is-invalid
91
89
  - \--is-required
92
90
  - \--is-optional
93
-
94
- ---
95
-
96
- [See on Github](https://github.com/simplybusiness/mobius/tree/master/packages/mobius/src/components/Checkbox) | [Give feedback](https://simplybusiness.atlassian.net/CreateIssue.jspa?issuetype=10103&pid=10609) | [Get support](https://simplybusiness.slack.com/archives/C016CC0NDNE)
@@ -2,8 +2,7 @@ import { render, screen } from "@testing-library/react";
2
2
  import userEvent from "@testing-library/user-event";
3
3
  import { Checkbox } from ".";
4
4
 
5
- const CHECKBOX_CONTAINER_CLASS_NAME = "mobius/Checkbox";
6
- const CHECKBOX_CLASS_NAME = "mobius/CheckboxInput";
5
+ const CHECKBOX_CLASS_NAME = "mobius-checkbox__input";
7
6
 
8
7
  describe("Checkbox", () => {
9
8
  it("should render without error", () => {
@@ -215,11 +214,9 @@ describe("Checkbox", () => {
215
214
  );
216
215
 
217
216
  const input = screen.getByRole("checkbox");
218
- const label = input.parentElement;
219
217
 
220
218
  expect(input).not.toHaveClass(customClass);
221
219
  expect(input).toHaveClass(CHECKBOX_CLASS_NAME);
222
- expect(label).toHaveClass(customClass);
223
220
  });
224
221
 
225
222
  it("only sets id on the input element", () => {
@@ -247,9 +244,6 @@ describe("Checkbox", () => {
247
244
  await userEvent.tab();
248
245
 
249
246
  expect(option).toHaveClass(CHECKBOX_CLASS_NAME);
250
- expect(option.closest("label")).toHaveClass(
251
- CHECKBOX_CONTAINER_CLASS_NAME,
252
- );
253
247
 
254
248
  await userEvent.keyboard("[Space]");
255
249
 
@@ -17,6 +17,7 @@ import { CheckboxElementType, CheckboxProps, CheckboxRef } from "./types";
17
17
  import { spaceDelimitedList } from "../../utils/spaceDelimitedList";
18
18
  import { useValidationClasses } from "../../hooks";
19
19
  import { Icon } from "../Icon";
20
+ import { Stack } from "../Stack";
20
21
 
21
22
  export const Checkbox: ForwardedRefComponent<
22
23
  CheckboxProps,
@@ -59,12 +60,13 @@ export const Checkbox: ForwardedRefComponent<
59
60
  // Append an additional wrapper class name to differenitate from input
60
61
  const wrapperClasses = classNames(
61
62
  "mobius",
62
- "mobius/Checkbox",
63
+ "mobius-checkbox",
63
64
  sharedClasses,
64
65
  className,
65
66
  );
66
- const inputClasses = classNames("mobius/CheckboxInput", sharedClasses);
67
- const iconClasses = classNames("mobius/CheckboxIcon", sharedClasses);
67
+ const labelClasses = classNames("mobius-checkbox__label", sharedClasses);
68
+ const inputClasses = classNames("mobius-checkbox__input", sharedClasses);
69
+ const iconClasses = classNames("mobius-checkbox__icon", sharedClasses);
68
70
  const errorMessageId = useId();
69
71
  const shouldErrorMessageShow = errorMessage ? errorMessageId : undefined;
70
72
  const describedBy = spaceDelimitedList([
@@ -98,8 +100,8 @@ export const Checkbox: ForwardedRefComponent<
98
100
  };
99
101
 
100
102
  return (
101
- <>
102
- <label className={wrapperClasses}>
103
+ <Stack gap="xs" className={wrapperClasses}>
104
+ <label className={labelClasses}>
103
105
  <input
104
106
  aria-describedby={describedBy}
105
107
  aria-errormessage={shouldErrorMessageShow}
@@ -125,11 +127,11 @@ export const Checkbox: ForwardedRefComponent<
125
127
  size="md"
126
128
  className={iconClasses}
127
129
  />
128
- <span id={labelId} className="mobius/CheckboxLabel">
130
+ <span id={labelId} className="mobius-checkbox__visible-label">
129
131
  {label}
130
132
  </span>
131
133
  </label>
132
134
  <ErrorMessage id={errorMessageId} errorMessage={errorMessage} />
133
- </>
135
+ </Stack>
134
136
  );
135
137
  });
@@ -0,0 +1,26 @@
1
+ .mobius-checkbox-group {
2
+ display: grid;
3
+
4
+ .mobius-checkbox-group__wrapper {
5
+ display: grid;
6
+ margin-bottom: var(--size-sm);
7
+ }
8
+
9
+ .mobius-checkbox,
10
+ .mobius-checkbox-group__wrapper {
11
+ margin-bottom: 0;
12
+ }
13
+
14
+ &.--is-horizontal .mobius-checkbox-group__wrapper {
15
+ grid-template-columns: repeat(var(--checkbox-items-per-row), 1fr);
16
+ gap: var(--size-sm);
17
+ }
18
+
19
+ &.--is-vertical .mobius-checkbox-group__wrapper {
20
+ gap: var(--size-xs);
21
+ }
22
+
23
+ &:where(.--is-optional) > :where(.mobius-label)::after {
24
+ content: " (optional)";
25
+ }
26
+ }