@simplybusiness/mobius 3.8.0 → 3.9.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 (412) hide show
  1. package/CHANGELOG.md +14 -1
  2. package/dist/cjs/components/Accordion/Accordion.stories.d.ts +12 -0
  3. package/dist/cjs/components/Accordion/Accordion.stories.js +48 -0
  4. package/dist/cjs/components/Accordion/Accordion.stories.js.map +1 -0
  5. package/dist/cjs/components/Alert/Alert.stories.d.ts +17 -0
  6. package/dist/cjs/components/Alert/Alert.stories.js +35 -0
  7. package/dist/cjs/components/Alert/Alert.stories.js.map +1 -0
  8. package/dist/cjs/components/Box/Box.stories.d.ts +17 -0
  9. package/dist/cjs/components/Box/Box.stories.js +23 -0
  10. package/dist/cjs/components/Box/Box.stories.js.map +1 -0
  11. package/dist/cjs/components/Breadcrumbs/Breadcrumbs.stories.d.ts +10 -0
  12. package/dist/cjs/components/Breadcrumbs/Breadcrumbs.stories.js +20 -0
  13. package/dist/cjs/components/Breadcrumbs/Breadcrumbs.stories.js.map +1 -0
  14. package/dist/cjs/components/Button/Button.stories.d.ts +67 -0
  15. package/dist/cjs/components/Button/Button.stories.js +201 -0
  16. package/dist/cjs/components/Button/Button.stories.js.map +1 -0
  17. package/dist/cjs/components/Checkbox/Checkbox.stories.d.ts +32 -0
  18. package/dist/cjs/components/Checkbox/Checkbox.stories.js +101 -0
  19. package/dist/cjs/components/Checkbox/Checkbox.stories.js.map +1 -0
  20. package/dist/cjs/components/Checkbox/CheckboxGroup.stories.d.ts +25 -0
  21. package/dist/cjs/components/Checkbox/CheckboxGroup.stories.js +74 -0
  22. package/dist/cjs/components/Checkbox/CheckboxGroup.stories.js.map +1 -0
  23. package/dist/cjs/components/Checkbox/types.d.ts +1 -1
  24. package/dist/cjs/components/Chopin/Actions/Actions.stories.d.ts +13 -0
  25. package/dist/cjs/components/Chopin/Actions/Actions.stories.js +59 -0
  26. package/dist/cjs/components/Chopin/Actions/Actions.stories.js.map +1 -0
  27. package/dist/cjs/components/Chopin/Footer/Footer.stories.d.ts +13 -0
  28. package/dist/cjs/components/Chopin/Footer/Footer.stories.js +169 -0
  29. package/dist/cjs/components/Chopin/Footer/Footer.stories.js.map +1 -0
  30. package/dist/cjs/components/Chopin/Header/Header.stories.d.ts +22 -0
  31. package/dist/cjs/components/Chopin/Header/Header.stories.js +41 -0
  32. package/dist/cjs/components/Chopin/Header/Header.stories.js.map +1 -0
  33. package/dist/cjs/components/Chopin/PercentageTotalsQuestion/PercentageTotalsQuestion.stories.d.ts +22 -0
  34. package/dist/cjs/components/Chopin/PercentageTotalsQuestion/PercentageTotalsQuestion.stories.js +46 -0
  35. package/dist/cjs/components/Chopin/PercentageTotalsQuestion/PercentageTotalsQuestion.stories.js.map +1 -0
  36. package/dist/cjs/components/Chopin/Question/Question.stories.d.ts +66 -0
  37. package/dist/cjs/components/Chopin/Question/Question.stories.js +139 -0
  38. package/dist/cjs/components/Chopin/Question/Question.stories.js.map +1 -0
  39. package/dist/cjs/components/Chopin/QuestionGroup/QuestionGroup.stories.d.ts +21 -0
  40. package/dist/cjs/components/Chopin/QuestionGroup/QuestionGroup.stories.js +43 -0
  41. package/dist/cjs/components/Chopin/QuestionGroup/QuestionGroup.stories.js.map +1 -0
  42. package/dist/cjs/components/Chopin/Section/Section.stories.d.ts +9 -0
  43. package/dist/cjs/components/Chopin/Section/Section.stories.js +19 -0
  44. package/dist/cjs/components/Chopin/Section/Section.stories.js.map +1 -0
  45. package/dist/cjs/components/Chopin/Steps/Steps.stories.d.ts +9 -0
  46. package/dist/cjs/components/Chopin/Steps/Steps.stories.js +15 -0
  47. package/dist/cjs/components/Chopin/Steps/Steps.stories.js.map +1 -0
  48. package/dist/cjs/components/Chopin/Testimonial/Testimonial.stories.d.ts +9 -0
  49. package/dist/cjs/components/Chopin/Testimonial/Testimonial.stories.js +18 -0
  50. package/dist/cjs/components/Chopin/Testimonial/Testimonial.stories.js.map +1 -0
  51. package/dist/cjs/components/Chopin/TradeSelector/TradeSelector.stories.d.ts +16 -0
  52. package/dist/cjs/components/Chopin/TradeSelector/TradeSelector.stories.js +55 -0
  53. package/dist/cjs/components/Chopin/TradeSelector/TradeSelector.stories.js.map +1 -0
  54. package/dist/cjs/components/Chopin/TradeSelector/TradeSelector.test.js +3 -0
  55. package/dist/cjs/components/Chopin/TradeSelector/TradeSelector.test.js.map +1 -1
  56. package/dist/cjs/components/Container/Container.stories.d.ts +9 -0
  57. package/dist/cjs/components/Container/Container.stories.js +15 -0
  58. package/dist/cjs/components/Container/Container.stories.js.map +1 -0
  59. package/dist/cjs/components/DataTable/DataTable.stories.d.ts +15 -0
  60. package/dist/cjs/components/DataTable/DataTable.stories.js +200 -0
  61. package/dist/cjs/components/DataTable/DataTable.stories.js.map +1 -0
  62. package/dist/cjs/components/DatePicker/DatePicker.stories.d.ts +16 -0
  63. package/dist/cjs/components/DatePicker/DatePicker.stories.js +28 -0
  64. package/dist/cjs/components/DatePicker/DatePicker.stories.js.map +1 -0
  65. package/dist/cjs/components/Divider/Divider.stories.d.ts +13 -0
  66. package/dist/cjs/components/Divider/Divider.stories.js +15 -0
  67. package/dist/cjs/components/Divider/Divider.stories.js.map +1 -0
  68. package/dist/cjs/components/DropdownMenu/DropdownMenu.stories.d.ts +21 -0
  69. package/dist/cjs/components/DropdownMenu/DropdownMenu.stories.js +64 -0
  70. package/dist/cjs/components/DropdownMenu/DropdownMenu.stories.js.map +1 -0
  71. package/dist/cjs/components/ErrorMessage/ErrorMessage.stories.d.ts +14 -0
  72. package/dist/cjs/components/ErrorMessage/ErrorMessage.stories.js +24 -0
  73. package/dist/cjs/components/ErrorMessage/ErrorMessage.stories.js.map +1 -0
  74. package/dist/cjs/components/Fieldset/Fieldset.stories.d.ts +10 -0
  75. package/dist/cjs/components/Fieldset/Fieldset.stories.js +25 -0
  76. package/dist/cjs/components/Fieldset/Fieldset.stories.js.map +1 -0
  77. package/dist/cjs/components/Flex/Flex.stories.d.ts +82 -0
  78. package/dist/cjs/components/Flex/Flex.stories.js +151 -0
  79. package/dist/cjs/components/Flex/Flex.stories.js.map +1 -0
  80. package/dist/cjs/components/Grid/Grid.d.ts +2 -0
  81. package/dist/cjs/components/Grid/Grid.js +10 -4
  82. package/dist/cjs/components/Grid/Grid.js.map +1 -1
  83. package/dist/cjs/components/Grid/Grid.stories.d.ts +86 -0
  84. package/dist/cjs/components/Grid/Grid.stories.js +230 -0
  85. package/dist/cjs/components/Grid/Grid.stories.js.map +1 -0
  86. package/dist/cjs/components/Grid/Item.d.ts +2 -0
  87. package/dist/cjs/components/Grid/Item.js +7 -2
  88. package/dist/cjs/components/Grid/Item.js.map +1 -1
  89. package/dist/cjs/components/Icon/Icon.stories.d.ts +24 -0
  90. package/dist/cjs/components/Icon/Icon.stories.js +46 -0
  91. package/dist/cjs/components/Icon/Icon.stories.js.map +1 -0
  92. package/dist/cjs/components/Icon/types.d.ts +2 -0
  93. package/dist/cjs/components/Image/Image.stories.d.ts +9 -0
  94. package/dist/cjs/components/Image/Image.stories.js +20 -0
  95. package/dist/cjs/components/Image/Image.stories.js.map +1 -0
  96. package/dist/cjs/components/Label/Label.stories.d.ts +9 -0
  97. package/dist/cjs/components/Label/Label.stories.js +18 -0
  98. package/dist/cjs/components/Label/Label.stories.js.map +1 -0
  99. package/dist/cjs/components/Link/Link.stories.d.ts +38 -0
  100. package/dist/cjs/components/Link/Link.stories.js +44 -0
  101. package/dist/cjs/components/Link/Link.stories.js.map +1 -0
  102. package/dist/cjs/components/LinkButton/LinkButton.stories.d.ts +48 -0
  103. package/dist/cjs/components/LinkButton/LinkButton.stories.js +45 -0
  104. package/dist/cjs/components/LinkButton/LinkButton.stories.js.map +1 -0
  105. package/dist/cjs/components/List/List.stories.d.ts +33 -0
  106. package/dist/cjs/components/List/List.stories.js +80 -0
  107. package/dist/cjs/components/List/List.stories.js.map +1 -0
  108. package/dist/cjs/components/LoadingIndicator/LoadingIndicator.d.ts +2 -0
  109. package/dist/cjs/components/LoadingIndicator/LoadingIndicator.js.map +1 -1
  110. package/dist/cjs/components/LoadingIndicator/LoadingIndicator.stories.d.ts +31 -0
  111. package/dist/cjs/components/LoadingIndicator/LoadingIndicator.stories.js +53 -0
  112. package/dist/cjs/components/LoadingIndicator/LoadingIndicator.stories.js.map +1 -0
  113. package/dist/cjs/components/MaskedField/MaskedField.stories.d.ts +16 -0
  114. package/dist/cjs/components/MaskedField/MaskedField.stories.js +25 -0
  115. package/dist/cjs/components/MaskedField/MaskedField.stories.js.map +1 -0
  116. package/dist/cjs/components/Modal/Modal.stories.d.ts +44 -0
  117. package/dist/cjs/components/Modal/Modal.stories.js +82 -0
  118. package/dist/cjs/components/Modal/Modal.stories.js.map +1 -0
  119. package/dist/cjs/components/NumberField/NumberField.stories.d.ts +50 -0
  120. package/dist/cjs/components/NumberField/NumberField.stories.js +106 -0
  121. package/dist/cjs/components/NumberField/NumberField.stories.js.map +1 -0
  122. package/dist/cjs/components/PasswordField/PasswordField.stories.d.ts +28 -0
  123. package/dist/cjs/components/PasswordField/PasswordField.stories.js +34 -0
  124. package/dist/cjs/components/PasswordField/PasswordField.stories.js.map +1 -0
  125. package/dist/cjs/components/Progress/Progress.stories.d.ts +56 -0
  126. package/dist/cjs/components/Progress/Progress.stories.js +92 -0
  127. package/dist/cjs/components/Progress/Progress.stories.js.map +1 -0
  128. package/dist/cjs/components/Radio/Radio.stories.d.ts +39 -0
  129. package/dist/cjs/components/Radio/Radio.stories.js +121 -0
  130. package/dist/cjs/components/Radio/Radio.stories.js.map +1 -0
  131. package/dist/cjs/components/Radio/RadioButton.stories.d.ts +23 -0
  132. package/dist/cjs/components/Radio/RadioButton.stories.js +91 -0
  133. package/dist/cjs/components/Radio/RadioButton.stories.js.map +1 -0
  134. package/dist/cjs/components/SVG/SVG.stories.d.ts +9 -0
  135. package/dist/cjs/components/SVG/SVG.stories.js +22 -0
  136. package/dist/cjs/components/SVG/SVG.stories.js.map +1 -0
  137. package/dist/cjs/components/SVG/SVG.test.js.map +1 -1
  138. package/dist/cjs/components/Segment/Segment.stories.d.ts +32 -0
  139. package/dist/cjs/components/Segment/Segment.stories.js +78 -0
  140. package/dist/cjs/components/Segment/Segment.stories.js.map +1 -0
  141. package/dist/cjs/components/Select/Select.stories.d.ts +31 -0
  142. package/dist/cjs/components/Select/Select.stories.js +82 -0
  143. package/dist/cjs/components/Select/Select.stories.js.map +1 -0
  144. package/dist/cjs/components/Slider/Slider.d.ts +2 -2
  145. package/dist/cjs/components/Slider/Slider.js.map +1 -1
  146. package/dist/cjs/components/Slider/Slider.stories.d.ts +12 -0
  147. package/dist/cjs/components/Slider/Slider.stories.js +66 -0
  148. package/dist/cjs/components/Slider/Slider.stories.js.map +1 -0
  149. package/dist/cjs/components/Table/Table.stories.d.ts +10 -0
  150. package/dist/cjs/components/Table/Table.stories.js +18 -0
  151. package/dist/cjs/components/Table/Table.stories.js.map +1 -0
  152. package/dist/cjs/components/Text/Text.stories.d.ts +10 -0
  153. package/dist/cjs/components/Text/Text.stories.js +29 -0
  154. package/dist/cjs/components/Text/Text.stories.js.map +1 -0
  155. package/dist/cjs/components/TextArea/TextArea.stories.d.ts +26 -0
  156. package/dist/cjs/components/TextArea/TextArea.stories.js +83 -0
  157. package/dist/cjs/components/TextArea/TextArea.stories.js.map +1 -0
  158. package/dist/cjs/components/TextField/TextField.stories.d.ts +36 -0
  159. package/dist/cjs/components/TextField/TextField.stories.js +103 -0
  160. package/dist/cjs/components/TextField/TextField.stories.js.map +1 -0
  161. package/dist/cjs/components/Title/Title.stories.d.ts +9 -0
  162. package/dist/cjs/components/Title/Title.stories.js +19 -0
  163. package/dist/cjs/components/Title/Title.stories.js.map +1 -0
  164. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.stories.d.ts +9 -0
  165. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.stories.js +15 -0
  166. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.stories.js.map +1 -0
  167. package/dist/cjs/hooks/useBreakpoint/useBreakpoint.stories.d.ts +11 -0
  168. package/dist/cjs/hooks/useBreakpoint/useBreakpoint.stories.js +43 -0
  169. package/dist/cjs/hooks/useBreakpoint/useBreakpoint.stories.js.map +1 -0
  170. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  171. package/dist/esm/components/Accordion/Accordion.stories.js +45 -0
  172. package/dist/esm/components/Accordion/Accordion.stories.js.map +1 -0
  173. package/dist/esm/components/Alert/Alert.stories.js +32 -0
  174. package/dist/esm/components/Alert/Alert.stories.js.map +1 -0
  175. package/dist/esm/components/Box/Box.stories.js +20 -0
  176. package/dist/esm/components/Box/Box.stories.js.map +1 -0
  177. package/dist/esm/components/Breadcrumbs/Breadcrumbs.stories.js +17 -0
  178. package/dist/esm/components/Breadcrumbs/Breadcrumbs.stories.js.map +1 -0
  179. package/dist/esm/components/Button/Button.stories.js +198 -0
  180. package/dist/esm/components/Button/Button.stories.js.map +1 -0
  181. package/dist/esm/components/Checkbox/Checkbox.stories.js +98 -0
  182. package/dist/esm/components/Checkbox/Checkbox.stories.js.map +1 -0
  183. package/dist/esm/components/Checkbox/CheckboxGroup.stories.js +71 -0
  184. package/dist/esm/components/Checkbox/CheckboxGroup.stories.js.map +1 -0
  185. package/dist/esm/components/Chopin/Actions/Actions.stories.js +56 -0
  186. package/dist/esm/components/Chopin/Actions/Actions.stories.js.map +1 -0
  187. package/dist/esm/components/Chopin/Footer/Footer.stories.js +166 -0
  188. package/dist/esm/components/Chopin/Footer/Footer.stories.js.map +1 -0
  189. package/dist/esm/components/Chopin/Header/Header.stories.js +38 -0
  190. package/dist/esm/components/Chopin/Header/Header.stories.js.map +1 -0
  191. package/dist/esm/components/Chopin/PercentageTotalsQuestion/PercentageTotalsQuestion.stories.js +43 -0
  192. package/dist/esm/components/Chopin/PercentageTotalsQuestion/PercentageTotalsQuestion.stories.js.map +1 -0
  193. package/dist/esm/components/Chopin/Question/Question.stories.js +136 -0
  194. package/dist/esm/components/Chopin/Question/Question.stories.js.map +1 -0
  195. package/dist/esm/components/Chopin/QuestionGroup/QuestionGroup.stories.js +40 -0
  196. package/dist/esm/components/Chopin/QuestionGroup/QuestionGroup.stories.js.map +1 -0
  197. package/dist/esm/components/Chopin/Section/Section.stories.js +16 -0
  198. package/dist/esm/components/Chopin/Section/Section.stories.js.map +1 -0
  199. package/dist/esm/components/Chopin/Steps/Steps.stories.js +12 -0
  200. package/dist/esm/components/Chopin/Steps/Steps.stories.js.map +1 -0
  201. package/dist/esm/components/Chopin/Testimonial/Testimonial.stories.js +15 -0
  202. package/dist/esm/components/Chopin/Testimonial/Testimonial.stories.js.map +1 -0
  203. package/dist/esm/components/Chopin/TradeSelector/TradeSelector.stories.js +52 -0
  204. package/dist/esm/components/Chopin/TradeSelector/TradeSelector.stories.js.map +1 -0
  205. package/dist/esm/components/Chopin/TradeSelector/TradeSelector.test.js +3 -0
  206. package/dist/esm/components/Chopin/TradeSelector/TradeSelector.test.js.map +1 -1
  207. package/dist/esm/components/Container/Container.stories.js +12 -0
  208. package/dist/esm/components/Container/Container.stories.js.map +1 -0
  209. package/dist/esm/components/DataTable/DataTable.stories.js +174 -0
  210. package/dist/esm/components/DataTable/DataTable.stories.js.map +1 -0
  211. package/dist/esm/components/DatePicker/DatePicker.stories.js +25 -0
  212. package/dist/esm/components/DatePicker/DatePicker.stories.js.map +1 -0
  213. package/dist/esm/components/Divider/Divider.stories.js +12 -0
  214. package/dist/esm/components/Divider/Divider.stories.js.map +1 -0
  215. package/dist/esm/components/DropdownMenu/DropdownMenu.stories.js +58 -0
  216. package/dist/esm/components/DropdownMenu/DropdownMenu.stories.js.map +1 -0
  217. package/dist/esm/components/ErrorMessage/ErrorMessage.stories.js +21 -0
  218. package/dist/esm/components/ErrorMessage/ErrorMessage.stories.js.map +1 -0
  219. package/dist/esm/components/Fieldset/Fieldset.stories.js +22 -0
  220. package/dist/esm/components/Fieldset/Fieldset.stories.js.map +1 -0
  221. package/dist/esm/components/Flex/Flex.stories.js +148 -0
  222. package/dist/esm/components/Flex/Flex.stories.js.map +1 -0
  223. package/dist/esm/components/Grid/Grid.js +8 -5
  224. package/dist/esm/components/Grid/Grid.js.map +1 -1
  225. package/dist/esm/components/Grid/Grid.stories.js +227 -0
  226. package/dist/esm/components/Grid/Grid.stories.js.map +1 -0
  227. package/dist/esm/components/Grid/Item.js +5 -3
  228. package/dist/esm/components/Grid/Item.js.map +1 -1
  229. package/dist/esm/components/Icon/Icon.stories.js +43 -0
  230. package/dist/esm/components/Icon/Icon.stories.js.map +1 -0
  231. package/dist/esm/components/Image/Image.stories.js +17 -0
  232. package/dist/esm/components/Image/Image.stories.js.map +1 -0
  233. package/dist/esm/components/Label/Label.stories.js +15 -0
  234. package/dist/esm/components/Label/Label.stories.js.map +1 -0
  235. package/dist/esm/components/Link/Link.stories.js +41 -0
  236. package/dist/esm/components/Link/Link.stories.js.map +1 -0
  237. package/dist/esm/components/LinkButton/LinkButton.stories.js +42 -0
  238. package/dist/esm/components/LinkButton/LinkButton.stories.js.map +1 -0
  239. package/dist/esm/components/List/List.stories.js +77 -0
  240. package/dist/esm/components/List/List.stories.js.map +1 -0
  241. package/dist/esm/components/LoadingIndicator/LoadingIndicator.js.map +1 -1
  242. package/dist/esm/components/LoadingIndicator/LoadingIndicator.stories.js +50 -0
  243. package/dist/esm/components/LoadingIndicator/LoadingIndicator.stories.js.map +1 -0
  244. package/dist/esm/components/MaskedField/MaskedField.stories.js +22 -0
  245. package/dist/esm/components/MaskedField/MaskedField.stories.js.map +1 -0
  246. package/dist/esm/components/Modal/Modal.stories.js +79 -0
  247. package/dist/esm/components/Modal/Modal.stories.js.map +1 -0
  248. package/dist/esm/components/NumberField/NumberField.stories.js +103 -0
  249. package/dist/esm/components/NumberField/NumberField.stories.js.map +1 -0
  250. package/dist/esm/components/PasswordField/PasswordField.stories.js +31 -0
  251. package/dist/esm/components/PasswordField/PasswordField.stories.js.map +1 -0
  252. package/dist/esm/components/Progress/Progress.stories.js +89 -0
  253. package/dist/esm/components/Progress/Progress.stories.js.map +1 -0
  254. package/dist/esm/components/Radio/Radio.stories.js +118 -0
  255. package/dist/esm/components/Radio/Radio.stories.js.map +1 -0
  256. package/dist/esm/components/Radio/RadioButton.stories.js +88 -0
  257. package/dist/esm/components/Radio/RadioButton.stories.js.map +1 -0
  258. package/dist/esm/components/SVG/SVG.stories.js +19 -0
  259. package/dist/esm/components/SVG/SVG.stories.js.map +1 -0
  260. package/dist/esm/components/SVG/SVG.test.js.map +1 -1
  261. package/dist/esm/components/Segment/Segment.stories.js +75 -0
  262. package/dist/esm/components/Segment/Segment.stories.js.map +1 -0
  263. package/dist/esm/components/Select/Select.stories.js +79 -0
  264. package/dist/esm/components/Select/Select.stories.js.map +1 -0
  265. package/dist/esm/components/Slider/Slider.js.map +1 -1
  266. package/dist/esm/components/Slider/Slider.stories.js +63 -0
  267. package/dist/esm/components/Slider/Slider.stories.js.map +1 -0
  268. package/dist/esm/components/Table/Table.stories.js +15 -0
  269. package/dist/esm/components/Table/Table.stories.js.map +1 -0
  270. package/dist/esm/components/Text/Text.stories.js +26 -0
  271. package/dist/esm/components/Text/Text.stories.js.map +1 -0
  272. package/dist/esm/components/TextArea/TextArea.stories.js +80 -0
  273. package/dist/esm/components/TextArea/TextArea.stories.js.map +1 -0
  274. package/dist/esm/components/TextField/TextField.stories.js +100 -0
  275. package/dist/esm/components/TextField/TextField.stories.js.map +1 -0
  276. package/dist/esm/components/Title/Title.stories.js +16 -0
  277. package/dist/esm/components/Title/Title.stories.js.map +1 -0
  278. package/dist/esm/components/VisuallyHidden/VisuallyHidden.stories.js +12 -0
  279. package/dist/esm/components/VisuallyHidden/VisuallyHidden.stories.js.map +1 -0
  280. package/dist/esm/hooks/useBreakpoint/useBreakpoint.stories.js +40 -0
  281. package/dist/esm/hooks/useBreakpoint/useBreakpoint.stories.js.map +1 -0
  282. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  283. package/dist/mobius.d.ts +11 -2
  284. package/package.json +2 -2
  285. package/src/components/Accordion/{Accordion.story.mdx → Accordion.mdx} +15 -96
  286. package/src/components/Accordion/Accordion.stories.tsx +87 -0
  287. package/src/components/Alert/{Alert.story.mdx → Alert.mdx} +5 -35
  288. package/src/components/Alert/Alert.stories.tsx +47 -0
  289. package/src/components/Box/{Box.story.mdx → Box.mdx} +5 -21
  290. package/src/components/Box/Box.stories.tsx +26 -0
  291. package/src/components/Breadcrumbs/{Breadcrumbs.story.mdx → Breadcrumbs.mdx} +15 -48
  292. package/src/components/Breadcrumbs/Breadcrumbs.stories.tsx +52 -0
  293. package/src/components/Button/Button.mdx +227 -0
  294. package/src/components/Button/Button.stories.tsx +225 -0
  295. package/src/components/Button/Button.story.styles.css +3 -0
  296. package/src/components/Checkbox/Checkbox.mdx +122 -0
  297. package/src/components/Checkbox/Checkbox.stories.tsx +122 -0
  298. package/src/components/Checkbox/{CheckboxGroup.story.mdx → CheckboxGroup.mdx} +12 -114
  299. package/src/components/Checkbox/CheckboxGroup.stories.tsx +109 -0
  300. package/src/components/Checkbox/types.ts +1 -1
  301. package/src/components/Chopin/Actions/{Actions.story.mdx → Actions.mdx} +17 -88
  302. package/src/components/Chopin/Actions/Actions.stories.tsx +81 -0
  303. package/src/components/Chopin/Footer/Footer.mdx +163 -0
  304. package/src/components/Chopin/Footer/Footer.stories.tsx +217 -0
  305. package/src/components/Chopin/Header/{Header.story.mdx → Header.mdx} +7 -47
  306. package/src/components/Chopin/Header/Header.stories.tsx +50 -0
  307. package/src/components/Chopin/PercentageTotalsQuestion/{PercentageTotalsQuestion.story.mdx → PercentageTotalsQuestion.mdx} +4 -36
  308. package/src/components/Chopin/PercentageTotalsQuestion/PercentageTotalsQuestion.stories.tsx +63 -0
  309. package/src/components/Chopin/Question/{Question.story.mdx → Question.mdx} +29 -227
  310. package/src/components/Chopin/Question/Question.stories.tsx +211 -0
  311. package/src/components/Chopin/QuestionGroup/QuestionGroup.mdx +149 -0
  312. package/src/components/Chopin/QuestionGroup/QuestionGroup.stories.tsx +187 -0
  313. package/src/components/Chopin/Section/{Section.story.mdx → Section.mdx} +6 -24
  314. package/src/components/Chopin/Section/Section.stories.tsx +30 -0
  315. package/src/components/Chopin/Steps/{Steps.story.mdx → Steps.mdx} +6 -20
  316. package/src/components/Chopin/Steps/Steps.stories.tsx +22 -0
  317. package/src/components/Chopin/Testimonial/{Testimonial.story.mdx → Testimonial.mdx} +4 -14
  318. package/src/components/Chopin/Testimonial/Testimonial.stories.tsx +23 -0
  319. package/src/components/Chopin/TradeSelector/{TradeSelector.story.mdx → TradeSelector.mdx} +14 -52
  320. package/src/components/Chopin/TradeSelector/TradeSelector.stories.tsx +67 -0
  321. package/src/components/Chopin/TradeSelector/TradeSelector.test.tsx +3 -0
  322. package/src/components/Container/{Container.story.mdx → Container.mdx} +4 -16
  323. package/src/components/Container/Container.stories.tsx +20 -0
  324. package/src/components/DataTable/{DataTable.story.mdx → DataTable.mdx} +10 -203
  325. package/src/components/DataTable/DataTable.stories.tsx +228 -0
  326. package/src/components/DatePicker/{DatePicker.story.mdx → DatePicker.mdx} +9 -29
  327. package/src/components/DatePicker/DatePicker.stories.tsx +32 -0
  328. package/src/components/Divider/{Divider.story.mdx → Divider.mdx} +4 -9
  329. package/src/components/Divider/Divider.stories.tsx +13 -0
  330. package/src/components/DropdownMenu/{DropdownMenu.story.mdx → DropdownMenu.mdx} +5 -39
  331. package/src/components/DropdownMenu/DropdownMenu.stories.tsx +84 -0
  332. package/src/components/DropdownMenu/DropdownMenu.story.styles.css +12 -0
  333. package/src/components/ErrorMessage/ErrorMessage.mdx +39 -0
  334. package/src/components/ErrorMessage/ErrorMessage.stories.tsx +24 -0
  335. package/src/components/Fieldset/{Fieldset.story.mdx → Fieldset.mdx} +5 -28
  336. package/src/components/Fieldset/Fieldset.stories.tsx +40 -0
  337. package/src/components/Flex/{Flex.story.mdx → Flex.mdx} +13 -150
  338. package/src/components/Flex/Flex.stories.tsx +182 -0
  339. package/src/components/Grid/{Grid.story.mdx → Grid.mdx} +78 -360
  340. package/src/components/Grid/Grid.stories.tsx +375 -0
  341. package/src/components/Grid/Grid.story.styles.css +4 -0
  342. package/src/components/Grid/Grid.tsx +16 -4
  343. package/src/components/Grid/Item.tsx +14 -2
  344. package/src/components/Icon/Icon.mdx +75 -0
  345. package/src/components/Icon/Icon.stories.tsx +50 -0
  346. package/src/components/Icon/types.ts +2 -0
  347. package/src/components/Image/{Image.story.mdx → Image.mdx} +4 -9
  348. package/src/components/Image/Image.stories.tsx +20 -0
  349. package/src/components/Label/{Label.story.mdx → Label.mdx} +4 -9
  350. package/src/components/Label/Label.stories.tsx +16 -0
  351. package/src/components/Link/{Link.story.mdx → Link.mdx} +8 -52
  352. package/src/components/Link/Link.stories.tsx +50 -0
  353. package/src/components/LinkButton/LinkButton.mdx +45 -0
  354. package/src/components/LinkButton/LinkButton.stories.tsx +61 -0
  355. package/src/components/List/{List.story.mdx → List.mdx} +18 -113
  356. package/src/components/List/List.stories.tsx +135 -0
  357. package/src/components/LoadingIndicator/LoadingIndicator.mdx +59 -0
  358. package/src/components/LoadingIndicator/LoadingIndicator.stories.tsx +59 -0
  359. package/src/components/LoadingIndicator/LoadingIndicator.tsx +2 -0
  360. package/src/components/MaskedField/{MaskedField.story.mdx → MaskedField.mdx} +11 -12
  361. package/src/components/MaskedField/MaskedField.stories.tsx +26 -0
  362. package/src/components/Modal/{Modal.story.mdx → Modal.mdx} +20 -84
  363. package/src/components/Modal/Modal.stories.tsx +181 -0
  364. package/src/components/NumberField/NumberField.mdx +104 -0
  365. package/src/components/NumberField/NumberField.stories.tsx +114 -0
  366. package/src/components/PasswordField/{PasswordField.story.mdx → PasswordField.mdx} +10 -49
  367. package/src/components/PasswordField/PasswordField.stories.tsx +36 -0
  368. package/src/components/Progress/Progress.mdx +83 -0
  369. package/src/components/Progress/Progress.stories.tsx +105 -0
  370. package/src/components/Radio/Radio.mdx +202 -0
  371. package/src/components/Radio/Radio.stories.tsx +202 -0
  372. package/src/components/Radio/{RadioButton.story.mdx → RadioButton.mdx} +15 -156
  373. package/src/components/Radio/RadioButton.stories.tsx +153 -0
  374. package/src/components/SVG/{SVG.story.mdx → SVG.mdx} +5 -10
  375. package/src/components/SVG/SVG.stories.tsx +29 -0
  376. package/src/components/SVG/SVG.test.tsx +3 -14
  377. package/src/components/Segment/{Segment.story.mdx → Segment.mdx} +79 -107
  378. package/src/components/Segment/Segment.stories.tsx +129 -0
  379. package/src/components/Select/{Select.story.mdx → Select.mdx} +25 -186
  380. package/src/components/Select/Select.stories.tsx +163 -0
  381. package/src/components/Slider/Slider.mdx +55 -0
  382. package/src/components/Slider/Slider.stories.tsx +82 -0
  383. package/src/components/Slider/Slider.tsx +5 -2
  384. package/src/components/Table/Table.mdx +74 -0
  385. package/src/components/Table/Table.stories.tsx +149 -0
  386. package/src/components/Text/{Text.story.mdx → Text.mdx} +20 -16
  387. package/src/components/Text/Text.stories.tsx +28 -0
  388. package/src/components/TextArea/TextArea.mdx +82 -0
  389. package/src/components/TextArea/TextArea.stories.tsx +89 -0
  390. package/src/components/TextField/TextField.mdx +122 -0
  391. package/src/components/TextField/TextField.stories.tsx +111 -0
  392. package/src/components/Title/{Title.story.mdx → Title.mdx} +4 -12
  393. package/src/components/Title/Title.stories.tsx +17 -0
  394. package/src/components/VisuallyHidden/{VisuallyHidden.story.mdx → VisuallyHidden.mdx} +4 -13
  395. package/src/components/VisuallyHidden/VisuallyHidden.stories.tsx +17 -0
  396. package/src/hooks/useBreakpoint/{useBreakpoint.story.mdx → useBreakpoint.mdx} +6 -47
  397. package/src/hooks/useBreakpoint/useBreakpoint.stories.tsx +61 -0
  398. package/src/components/Button/Button.story.mdx +0 -401
  399. package/src/components/Checkbox/Checkbox.story.mdx +0 -233
  400. package/src/components/Chopin/Footer/Footer.story.mdx +0 -368
  401. package/src/components/Chopin/QuestionGroup/QuestionGroup.story.mdx +0 -309
  402. package/src/components/ErrorMessage/ErrorMessage.story.mdx +0 -57
  403. package/src/components/Icon/Icon.story.mdx +0 -175
  404. package/src/components/LinkButton/LinkButton.story.mdx +0 -96
  405. package/src/components/LoadingIndicator/LoadingIndicator.story.mdx +0 -96
  406. package/src/components/NumberField/NumberField.story.mdx +0 -193
  407. package/src/components/Progress/Progress.story.mdx +0 -172
  408. package/src/components/Radio/Radio.story.mdx +0 -402
  409. package/src/components/Slider/Slider.story.mdx +0 -130
  410. package/src/components/Table/Table.story.mdx +0 -213
  411. package/src/components/TextArea/TextArea.story.mdx +0 -172
  412. package/src/components/TextField/TextField.story.mdx +0 -232
@@ -1,38 +1,11 @@
1
1
  import { useState } from "react";
2
- import { Meta, ArgsTable, Canvas, Story } from "@storybook/addon-docs";
2
+ import { Meta, ArgsTable, Canvas, Story } from "@storybook/blocks";
3
3
  import { PasswordField } from "./PasswordField";
4
4
  import { Label, Segment, SegmentGroup } from "..";
5
5
  import { excludeControls } from "../../utils/excludeControls";
6
+ import * as PasswordFieldStories from "./PasswordField.stories";
6
7
 
7
- <Meta
8
- title="Forms/PasswordField"
9
- component={PasswordField}
10
- argTypes={{
11
- validationState: {
12
- control: {
13
- type: "radio",
14
- options: {
15
- valid: "valid",
16
- invalid: "invalid",
17
- neither: "",
18
- },
19
- defaultValue: {
20
- neither: "",
21
- },
22
- },
23
- },
24
- type: {
25
- control: {
26
- type: "radio",
27
- options: {
28
- text: "text",
29
- password: "password",
30
- },
31
- },
32
- },
33
- ...excludeControls("className"),
34
- }}
35
- />
8
+ <Meta of={PasswordFieldStories} />
36
9
 
37
10
  # PasswordField
38
11
 
@@ -55,19 +28,7 @@ import { PasswordField } from "@simplybusiness/mobius";
55
28
  ### Normal
56
29
 
57
30
  <Canvas>
58
- <Story
59
- name="Normal"
60
- args={{
61
- label: "Password",
62
- placeholder: "",
63
- isDisabled: false,
64
- validationState: "",
65
- errorMessage: "",
66
- type: "password",
67
- }}
68
- >
69
- {args => <PasswordField {...args}></PasswordField>}
70
- </Story>
31
+ <Story of={PasswordFieldStories.Normal} />
71
32
  </Canvas>
72
33
 
73
34
  ## Accessibility
@@ -97,12 +58,12 @@ The following HTML is rendered for a PasswordField:
97
58
 
98
59
  Class names are augmented with the following flags if true:
99
60
 
100
- - --is-focused
101
- - --is-disabled
102
- - --is-hovered
103
- - --is-selected
104
- - --is-valid
105
- - --is-invalid
61
+ - \--is-focused
62
+ - \--is-disabled
63
+ - \--is-hovered
64
+ - \--is-selected
65
+ - \--is-valid
66
+ - \--is-invalid
106
67
 
107
68
  ---
108
69
 
@@ -0,0 +1,36 @@
1
+ import type { Meta } from "@storybook/react";
2
+ import { PasswordField, PasswordFieldProps } from "./PasswordField";
3
+ import { excludeControls } from "../../utils/excludeControls";
4
+
5
+ export default {
6
+ title: "Forms/PasswordField",
7
+ component: PasswordField,
8
+ argTypes: {
9
+ validationState: {
10
+ options: ["valid", "invalid", "neither"],
11
+ control: { type: "radio" },
12
+ mapping: {
13
+ valid: "valid",
14
+ invalid: "invalid",
15
+ neither: "",
16
+ },
17
+ },
18
+ type: {
19
+ control: { type: "radio" },
20
+ options: ["text", "password"],
21
+ },
22
+ ...excludeControls("className"),
23
+ },
24
+ };
25
+
26
+ export const Normal: Meta<typeof PasswordField> = {
27
+ render: (args: PasswordFieldProps) => <PasswordField {...args} />,
28
+ args: {
29
+ label: "Password",
30
+ placeholder: "",
31
+ isDisabled: false,
32
+ errorMessage: "",
33
+ type: "password",
34
+ isRequired: false,
35
+ },
36
+ };
@@ -0,0 +1,83 @@
1
+ import { Meta, ArgsTable, Canvas, Story } from "@storybook/blocks";
2
+ import { Progress, ProgressProps } from "./Progress";
3
+ import { excludeControls } from "../../utils/excludeControls";
4
+ import * as ProgressStories from "./Progress.stories";
5
+
6
+ <Meta of={ProgressStories} />
7
+
8
+ # Progress
9
+
10
+ Progress bars allow users to see how far along a task or workflow is. For
11
+ example, what step they are on in a multi-step form.
12
+
13
+ ## Install
14
+
15
+ ```bash
16
+ yarn add @simplybusiness/mobius
17
+ ```
18
+
19
+ ## Usage
20
+
21
+ ```js
22
+ import { Progress } from "@simplybusiness/mobius";
23
+ ```
24
+
25
+ ## Primary
26
+
27
+ <Canvas>
28
+ <Story of={ProgressStories.Primary} />
29
+ </Canvas>
30
+
31
+ ## Secondary
32
+
33
+ <Canvas>
34
+ <Story of={ProgressStories.Secondary} />
35
+ </Canvas>
36
+
37
+ ## No Visible Label
38
+
39
+ <Canvas>
40
+ <Story of={ProgressStories.NoVisibleLabel} />
41
+ </Canvas>
42
+
43
+ ## Custom value format
44
+
45
+ export const customValueFormatter = (value, minValue, maxValue) =>
46
+ `Step ${value} of ${maxValue}`;
47
+
48
+ <Canvas>
49
+ <Story of={ProgressStories.CustomValueFormat} />
50
+ </Canvas>
51
+
52
+ ## Props
53
+
54
+ <ArgsTable of={Progress} />
55
+
56
+ ## Component HTML Structure and Class names
57
+
58
+ The following HTML is rendered for a Progress:
59
+
60
+ ```html
61
+ <div
62
+ id="react-aria123"
63
+ aria-labelledby="react-aria456"
64
+ aria-valuenow="2"
65
+ aria-valuemin="0"
66
+ aria-valuemax="10"
67
+ aria-valuetext="20%"
68
+ role="progressbar"
69
+ class="mobius mobius/Progress --is-primary"
70
+ >
71
+ <label class="mobius mobius/Label mobius/ProgressLabel" id="react-aria456"
72
+ >Primary</label
73
+ >
74
+ <div class="mobius/ProgressTrack">
75
+ <div class="mobius/ProgressBar css-ufscxh"></div>
76
+ </div>
77
+ <label class="mobius mobius/Label">20%</label>
78
+ </div>
79
+ ```
80
+
81
+ ---
82
+
83
+ [See on Github](https://github.com/simplybusiness/mobius/tree/master/packages/mobius/src/components/Progress) | [Give feedback](https://simplybusiness.atlassian.net/CreateIssue.jspa?issuetype=10103&pid=10609) | [Get support](https://simplybusiness.slack.com/archives/C016CC0NDNE)
@@ -0,0 +1,105 @@
1
+ import type { Meta } from "@storybook/react";
2
+ import { Progress, ProgressProps } from "./Progress";
3
+ import { excludeControls } from "../../utils/excludeControls";
4
+
5
+ const customValueFormatter = (
6
+ value: number,
7
+ minValue: number,
8
+ maxValue: number,
9
+ ) => `Step ${value} of ${maxValue}`;
10
+
11
+ export default {
12
+ title: "Components/Progress",
13
+ component: Progress,
14
+ argTypes: {
15
+ value: {
16
+ control: {
17
+ control: { type: "range" },
18
+ min: 0,
19
+ max: 10,
20
+ step: 1,
21
+ },
22
+ },
23
+ minValue: {
24
+ control: {
25
+ control: { type: "range" },
26
+ min: 0,
27
+ max: 10,
28
+ step: 1,
29
+ },
30
+ },
31
+ maxValue: {
32
+ control: {
33
+ control: { type: "range" },
34
+ min: 0,
35
+ max: 10,
36
+ step: 1,
37
+ },
38
+ },
39
+ label: {
40
+ control: {
41
+ control: { type: "text" },
42
+ },
43
+ },
44
+ variant: {
45
+ control: { type: "radio" },
46
+ options: ["primary", "secondary"],
47
+ },
48
+ ...excludeControls("className", "valueFormatter"),
49
+ },
50
+ };
51
+
52
+ export const Primary: Meta<typeof Progress> = {
53
+ render: (args: ProgressProps) => <Progress {...args} />,
54
+ args: {
55
+ value: 2,
56
+ minValue: 0,
57
+ maxValue: 10,
58
+ label: "Progress",
59
+ variant: "primary",
60
+ showValueLabel: true,
61
+ },
62
+ };
63
+
64
+ export const Secondary: Meta<typeof Progress> = {
65
+ render: (args: ProgressProps) => <Progress {...args} />,
66
+ args: {
67
+ value: 2,
68
+ minValue: 0,
69
+ maxValue: 10,
70
+ label: "Secondary",
71
+ variant: "secondary",
72
+ showValueLabel: true,
73
+ },
74
+ };
75
+
76
+ export const NoVisibleLabel: Meta<typeof Progress> = {
77
+ render: (args: ProgressProps) => <Progress {...args} />,
78
+ args: {
79
+ value: 1,
80
+ minValue: 0,
81
+ maxValue: 4,
82
+ label: "",
83
+ variant: "primary",
84
+ "aria-label": "Progress",
85
+ showValueLabel: true,
86
+ },
87
+ parameters: {
88
+ controls: {
89
+ exclude: ["aria-label"],
90
+ },
91
+ },
92
+ };
93
+
94
+ export const CustomValueFormat: Meta<typeof Progress> = {
95
+ render: (args: ProgressProps) => <Progress {...args} />,
96
+ args: {
97
+ value: 1,
98
+ minValue: 0,
99
+ maxValue: 4,
100
+ label: "Progress",
101
+ variant: "primary",
102
+ showValueLabel: true,
103
+ valueFormatter: customValueFormatter,
104
+ },
105
+ };
@@ -0,0 +1,202 @@
1
+ import { Fragment, useState } from "react";
2
+ import { Meta, ArgsTable, Canvas, Story } from "@storybook/blocks";
3
+ import { Radio } from "./Radio";
4
+ import { RadioGroup } from "./RadioGroup";
5
+ import { Flex } from "../Flex";
6
+ import { Divider } from "../Divider";
7
+ import { Box } from "../Box";
8
+ import { excludeControls } from "../../utils/excludeControls";
9
+ import * as RadioStories from "./Radio.stories";
10
+
11
+ <Meta of={RadioStories} />
12
+
13
+ # Radio
14
+
15
+ Radio is a component for creating radio buttons. It must be contained within a
16
+ `<RadioGroup />` component to handle the ARIA attributes correctly.
17
+
18
+ It can be used to wrap one or more other components while ensuring consistency with the current theme.
19
+
20
+ ## Install
21
+
22
+ ```bash
23
+ yarn add @simplybusiness/mobius
24
+ ```
25
+
26
+ ## Usage
27
+
28
+ ```js
29
+ import { Radio, RadioGroup } from "@simplybusiness/mobius";
30
+ ```
31
+
32
+ ## Examples
33
+
34
+ ### Normal
35
+
36
+ For a radio to appear selected use `value` prop which expects a string.
37
+
38
+ For example, `<RadioGroup defaultValue="blue">`
39
+
40
+ This will allow user to change the value. Alternatively, see _Controlled Value_ example.
41
+
42
+ <Canvas>
43
+ <Story of={RadioStories.Normal} />
44
+ </Canvas>
45
+
46
+ ### Controlled Value
47
+
48
+ You may want a radio to appear selected based on some conditional logic in another component.
49
+
50
+ You can use `value` prop which expects a string. To make `Blue` appear selected use `<RadioGroup value="blue">`
51
+
52
+ <Canvas>
53
+ <Story of={RadioStories.ControlledValue} />
54
+ </Canvas>
55
+
56
+ ### Disabled
57
+
58
+ <Canvas>
59
+ <Story of={RadioStories.Disabled} />
60
+ </Canvas>
61
+
62
+ ### Disabled Individual Radios
63
+
64
+ <Canvas>
65
+ <Story of={RadioStories.DisabledIndividualRadios} />
66
+ </Canvas>
67
+
68
+ ### Valid
69
+
70
+ <Canvas>
71
+ <Story of={RadioStories.Valid} />
72
+ </Canvas>
73
+
74
+ ### Invalid
75
+
76
+ <Canvas>
77
+ <Story of={RadioStories.Invalid} />
78
+ </Canvas>
79
+
80
+ ### Complex label
81
+
82
+ <Story of={RadioStories.ComplexLabel} />
83
+
84
+ ```jsx
85
+ <RadioGroup>
86
+ <Radio value="annual" label="Pay annually">
87
+ <Flex
88
+ style={{
89
+ width: "100%",
90
+ flexDirection: "row",
91
+ justifyContent: "space-between",
92
+ }}
93
+ >
94
+ <div>To pay today</div>
95
+ <div>$1265.00</div>
96
+ </Flex>
97
+ </Radio>
98
+ <Radio value="monthly" label="Pay monthly">
99
+ <Flex
100
+ style={{
101
+ width: "100%",
102
+ flexDirection: "row",
103
+ justifyContent: "space-between",
104
+ marginBottom: "var(--size-20)",
105
+ }}
106
+ >
107
+ <div>To pay today</div>
108
+ <div>$316.25</div>
109
+ </Flex>
110
+ <Flex
111
+ style={{
112
+ width: "100%",
113
+ flexDirection: "row",
114
+ justifyContent: "space-between",
115
+ }}
116
+ >
117
+ <div>10 monthly payments of</div>
118
+ <div>$94.88</div>
119
+ </Flex>
120
+ <Divider />
121
+ <Flex
122
+ style={{
123
+ width: "100%",
124
+ flexDirection: "row",
125
+ justifyContent: "space-between",
126
+ }}
127
+ >
128
+ <div>
129
+ <strong>Total</strong>
130
+ </div>
131
+ <div>
132
+ <strong>$1265.00</strong>
133
+ </div>
134
+ </Flex>
135
+ </Radio>
136
+ </RadioGroup>
137
+ ```
138
+
139
+ ### Horizontal Layout
140
+
141
+ <Canvas>
142
+ <Story of={RadioStories.HorizontalLayout} />
143
+ </Canvas>
144
+
145
+ ## Accessibility
146
+
147
+ When the `label` prop is not provided, make sure to provide the `aria-label` prop instead. If the radio group is labeled by a separate element, the `aria-labelledby` props must be used with the id of the labeling element.
148
+
149
+ ## Events
150
+
151
+ The `onChange` prop can be used to listen to changes of the selected radio button. See the prop table for the complete list of events supported.
152
+
153
+ ## Radio Props
154
+
155
+ <ArgsTable components={{ RadioGroup: RadioGroup, Radio: Radio }} />
156
+
157
+ ## Component HTML Structure and Class names
158
+
159
+ The following HTML is rendered for a Radio Group:
160
+
161
+ ```html
162
+ <div class="mobius/RadioGroup --is-invalid" role="radiogroup">
163
+ <label class="mobius/Label --is-invalid"> Color </label>
164
+ <div class="mobius/RadioWrapper">
165
+ <label class="mobius/RadioLabel --is-invalid">
166
+ <span class="mobius/RadioBullet"></span>
167
+ <input class="mobius/RadioInput" type="radio" value="red" />
168
+ Red
169
+ </label>
170
+ <label class="mobius/RadioLabel --is-invalid">
171
+ <span class="mobius/RadioBullet"></span>
172
+ <input class="mobius/RadioInput" type="radio" value="blue" />
173
+ Blue
174
+ </label>
175
+ </div>
176
+ </div>
177
+ ```
178
+
179
+ The span allows for an image overlay to replace the standard radio UX in browsers.
180
+
181
+ Class names are augmented with the following flags if true (affected classes shown above):
182
+
183
+ - \--is-focused
184
+ - \--is-disabled
185
+ - \--is-hovered
186
+ - \--is-selected
187
+ - \--is-valid
188
+ - \--is-invalid
189
+
190
+ Class names for `<RadioGroup />`:
191
+
192
+ - \--is-disabled
193
+ - \--is-valid
194
+ - \--is-invalid
195
+ - \--is-required
196
+ - \--is-optional
197
+ - \--is-horizontal
198
+ - \--is-vertical
199
+
200
+ ---
201
+
202
+ [See on Github](https://github.com/simplybusiness/mobius/tree/master/packages/mobius/src/components/Radio) | [Give feedback](https://simplybusiness.atlassian.net/CreateIssue.jspa?issuetype=10103&pid=10609) | [Get support](https://simplybusiness.slack.com/archives/C016CC0NDNE)
@@ -0,0 +1,202 @@
1
+ import type { Meta } from "@storybook/react";
2
+ import { Radio } from "./Radio";
3
+ import { RadioGroup, RadioGroupProps } from "./RadioGroup";
4
+ import { Flex } from "../Flex";
5
+ import { Divider } from "../Divider";
6
+ import { excludeControls } from "../../utils/excludeControls";
7
+
8
+ export default {
9
+ title: "Forms/Radio",
10
+ component: Radio,
11
+ argTypes: {
12
+ validationState: {
13
+ options: ["valid", "invalid", "neither"],
14
+ control: { type: "radio" },
15
+ mapping: {
16
+ valid: "valid",
17
+ invalid: "invalid",
18
+ neither: "",
19
+ },
20
+ },
21
+ orientation: {
22
+ control: { type: "radio" },
23
+ options: ["horizontal", "vertical"],
24
+ },
25
+ label: {
26
+ control: { type: "text" },
27
+ },
28
+ ...excludeControls("children", "className", "elementType"),
29
+ },
30
+ };
31
+
32
+ export const Normal: Meta<typeof RadioGroup> = {
33
+ render: (args: RadioGroupProps) => (
34
+ <RadioGroup {...args}>
35
+ <Radio value="red" label="Red" />
36
+ <Radio value="blue" label="Blue" />
37
+ </RadioGroup>
38
+ ),
39
+ args: {
40
+ label: "Color",
41
+ isDisabled: false,
42
+ errorMessage: "",
43
+ orientation: "vertical",
44
+ defaultValue: "blue",
45
+ },
46
+ };
47
+
48
+ export const ControlledValue: Meta<typeof RadioGroup> = {
49
+ render: (args: RadioGroupProps) => (
50
+ <RadioGroup {...args}>
51
+ <Radio value="red" label="Red" />
52
+ <Radio value="blue" label="Blue" />
53
+ </RadioGroup>
54
+ ),
55
+ args: {
56
+ label: "Color",
57
+ isDisabled: false,
58
+ errorMessage: "",
59
+ orientation: "vertical",
60
+ value: "blue",
61
+ },
62
+ };
63
+
64
+ export const Disabled: Meta<typeof RadioGroup> = {
65
+ render: (args: RadioGroupProps) => (
66
+ <RadioGroup {...args}>
67
+ <Radio value="red" label="Red" isDisabled />
68
+ <Radio value="blue" label="Blue" />
69
+ </RadioGroup>
70
+ ),
71
+ args: {
72
+ label: "Color",
73
+ isDisabled: true,
74
+ errorMessage: "",
75
+ orientation: "vertical",
76
+ },
77
+ };
78
+
79
+ export const DisabledIndividualRadios: Meta<typeof RadioGroup> = {
80
+ render: (args: RadioGroupProps) => (
81
+ <RadioGroup {...args}>
82
+ <Radio value="red" label="Red" isDisabled />
83
+ <Radio value="blue" label="Blue" />
84
+ </RadioGroup>
85
+ ),
86
+ args: {
87
+ label: "Color",
88
+ isDisabled: false,
89
+ errorMessage: "",
90
+ orientation: "vertical",
91
+ },
92
+ };
93
+
94
+ export const Valid: Meta<typeof RadioGroup> = {
95
+ render: (args: RadioGroupProps) => (
96
+ <RadioGroup {...args}>
97
+ <Radio value="red" label="Red" />
98
+ <Radio value="blue" label="Blue" />
99
+ </RadioGroup>
100
+ ),
101
+ args: {
102
+ label: "Color",
103
+ isDisabled: false,
104
+ errorMessage: "",
105
+ validationState: "valid",
106
+ orientation: "vertical",
107
+ },
108
+ };
109
+
110
+ export const Invalid: Meta<typeof RadioGroup> = {
111
+ render: (args: RadioGroupProps) => (
112
+ <RadioGroup {...args}>
113
+ <Radio value="red" label="Red" />
114
+ <Radio value="blue" label="Blue" />
115
+ </RadioGroup>
116
+ ),
117
+ args: {
118
+ label: "Color",
119
+ isDisabled: false,
120
+ errorMessage: "Please select a color",
121
+ validationState: "invalid",
122
+ orientation: "vertical",
123
+ },
124
+ };
125
+
126
+ export const ComplexLabel: Meta<typeof RadioGroup> = {
127
+ render: (args: RadioGroupProps) => (
128
+ <RadioGroup {...args}>
129
+ <Radio value="annual" label="Pay annually">
130
+ <Flex
131
+ style={{
132
+ width: "100%",
133
+ flexDirection: "row",
134
+ justifyContent: "space-between",
135
+ }}
136
+ >
137
+ <div>To pay today</div>
138
+ <div>$1265.00</div>
139
+ </Flex>
140
+ </Radio>
141
+ <Radio value="monthly" label="Pay monthly">
142
+ <Flex
143
+ style={{
144
+ width: "100%",
145
+ flexDirection: "row",
146
+ justifyContent: "space-between",
147
+ marginBottom: "var(--size-20)",
148
+ }}
149
+ >
150
+ <div>To pay today</div>
151
+ <div>$316.25</div>
152
+ </Flex>
153
+ <Flex
154
+ style={{
155
+ width: "100%",
156
+ flexDirection: "row",
157
+ justifyContent: "space-between",
158
+ }}
159
+ >
160
+ <div>10 monthly payments of</div>
161
+ <div>$94.88</div>
162
+ </Flex>
163
+ <Divider />
164
+ <Flex
165
+ style={{
166
+ width: "100%",
167
+ flexDirection: "row",
168
+ justifyContent: "space-between",
169
+ }}
170
+ >
171
+ <div>
172
+ <strong>Total</strong>
173
+ </div>
174
+ <div>
175
+ <strong>$1265.00</strong>
176
+ </div>
177
+ </Flex>
178
+ </Radio>
179
+ </RadioGroup>
180
+ ),
181
+ args: {
182
+ label: "Payment Options",
183
+ isDisabled: false,
184
+ errorMessage: "",
185
+ orientation: "vertical",
186
+ },
187
+ };
188
+
189
+ export const HorizontalLayout: Meta<typeof RadioGroup> = {
190
+ render: (args: RadioGroupProps) => (
191
+ <RadioGroup {...args}>
192
+ <Radio value="red" label="Red" />
193
+ <Radio value="blue" label="Blue" />
194
+ </RadioGroup>
195
+ ),
196
+ args: {
197
+ label: "Color",
198
+ isDisabled: false,
199
+ errorMessage: "",
200
+ orientation: "horizontal",
201
+ },
202
+ };