@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
@@ -0,0 +1,375 @@
1
+ import { ReactNode } from "react";
2
+ import type { Meta } from "@storybook/react";
3
+ import { Grid, GridItemProps, GridProps } from ".";
4
+ import { Box } from "../Box";
5
+ import { Flex } from "../Flex";
6
+ import { BreakpointsType, ThemeContext } from "../../contexts";
7
+ import { GridItem } from "./Item";
8
+ import { excludeControls } from "../../utils/excludeControls";
9
+
10
+ const sizeOptions = [
11
+ "",
12
+ "size-0",
13
+ "size-10",
14
+ "size-20",
15
+ "size-30",
16
+ "size-40",
17
+ "size-50",
18
+ "size-60",
19
+ "size-70",
20
+ "size-80",
21
+ "size-90",
22
+ "size-100",
23
+ ];
24
+
25
+ const breakpoints = [
26
+ { size: "xs", value: 320 },
27
+ { size: "sm", value: 480 },
28
+ { size: "md", value: 670 },
29
+ { size: "lg", value: 960 },
30
+ { size: "xl", value: 1200 },
31
+ { size: "xxl", value: 1320 },
32
+ ] as BreakpointsType;
33
+
34
+ const setBreakpoints = () => {};
35
+
36
+ type SharedProps = {
37
+ children: ReactNode;
38
+ };
39
+
40
+ const Card = ({ children, ...props }: SharedProps) => (
41
+ <Box
42
+ style={{
43
+ borderRadius: "4px",
44
+ padding: "8px",
45
+ backgroundColor: "#dddddd",
46
+ width: "80%",
47
+ }}
48
+ {...props}
49
+ >
50
+ {children}
51
+ </Box>
52
+ );
53
+
54
+ const Square = ({ children, ...props }: SharedProps) => (
55
+ <Flex
56
+ alignItems="center"
57
+ justifyContent="center"
58
+ style={{ height: "100%" }}
59
+ {...props}
60
+ >
61
+ {children}
62
+ </Flex>
63
+ );
64
+
65
+ const AlignSquare = ({ children, ...props }: SharedProps) => (
66
+ <Box style={{}} {...props}>
67
+ {children}
68
+ </Box>
69
+ );
70
+
71
+ export default {
72
+ title: "Layout/Grid",
73
+ component: Grid,
74
+ argTypes: {
75
+ columns: {
76
+ control: { type: "number" },
77
+ },
78
+ gap: {
79
+ control: { type: "select" },
80
+ options: [...sizeOptions],
81
+ },
82
+ rowGap: {
83
+ control: { type: "select" },
84
+ options: [...sizeOptions],
85
+ if: {
86
+ arg: "gap",
87
+ truthy: false,
88
+ },
89
+ },
90
+ columnGap: {
91
+ control: { type: "select" },
92
+ options: [...sizeOptions],
93
+ if: {
94
+ arg: "gap",
95
+ truthy: false,
96
+ },
97
+ },
98
+ alignContent: {
99
+ control: { type: "select" },
100
+ options: [
101
+ "",
102
+ "center",
103
+ "space-around",
104
+ "space-between",
105
+ "space-evenly",
106
+ "stretch",
107
+ ],
108
+ },
109
+ justifyContent: {
110
+ control: { type: "select" },
111
+ options: [
112
+ "",
113
+ "center",
114
+ "start",
115
+ "end",
116
+ "space-around",
117
+ "space-between",
118
+ "space-evenly",
119
+ ],
120
+ },
121
+ alignItems: {
122
+ control: { type: "select" },
123
+ options: ["", "center", "start", "end", "stretch", "baseline"],
124
+ },
125
+ justifyItems: {
126
+ control: { type: "select" },
127
+ options: ["", "start", "end", "center", "stretch"],
128
+ },
129
+ ...excludeControls("className"),
130
+ },
131
+ decorators: [
132
+ Story => {
133
+ // eslint-disable-next-line global-require
134
+ require("./Grid.story.styles.css");
135
+ return <Story />;
136
+ },
137
+ ],
138
+ } satisfies Meta<typeof Grid>;
139
+
140
+ export const AlignmentProperties: Meta<typeof Grid> = {
141
+ render: (args: GridProps) => (
142
+ <Grid {...args}>
143
+ <Grid.Item className="grid-example-grid-alignment-item" span={4}>
144
+ <Square>1</Square>
145
+ </Grid.Item>
146
+ <Grid.Item className="grid-example-grid-alignment-item" span={4}>
147
+ <Square>2</Square>
148
+ </Grid.Item>
149
+ <Grid.Item className="grid-example-grid-alignment-item" span={4}>
150
+ <Square>3</Square>
151
+ </Grid.Item>
152
+ <Grid.Item className="grid-example-grid-alignment-item" span={4}>
153
+ <Square>4</Square>
154
+ </Grid.Item>
155
+ <Grid.Item className="grid-example-grid-alignment-item" span={4}>
156
+ <Square>5</Square>
157
+ </Grid.Item>
158
+ <Grid.Item className="grid-example-grid-alignment-item" span={4}>
159
+ <Square>6</Square>
160
+ </Grid.Item>
161
+ <Grid.Item className="grid-example-grid-alignment-item" span={4}>
162
+ <Square>7</Square>
163
+ </Grid.Item>
164
+ <Grid.Item className="grid-example-grid-alignment-item" span={4}>
165
+ <Square>8</Square>
166
+ </Grid.Item>
167
+ <Grid.Item className="grid-example-grid-alignment-item" span={4}>
168
+ <Square>9</Square>
169
+ </Grid.Item>
170
+ </Grid>
171
+ ),
172
+ args: {
173
+ columns: 12,
174
+ gap: "size-20",
175
+ rowGap: "",
176
+ columnGap: "",
177
+ alignItems: "stretch",
178
+ justifyItems: "stretch",
179
+ className: "grid-example-fixed-size-grid",
180
+ },
181
+ };
182
+
183
+ export const Normal: Meta<typeof Grid> = {
184
+ render: (args: GridProps) => (
185
+ <Grid {...args}>
186
+ <Grid.Item span={12}>
187
+ <Card>span=12</Card>
188
+ </Grid.Item>
189
+ <Grid.Item span={11}>
190
+ <Card>span=11</Card>
191
+ </Grid.Item>
192
+ <Grid.Item span={1}>
193
+ <Card>span=1</Card>
194
+ </Grid.Item>
195
+ <Grid.Item span={10}>
196
+ <Card>span=10</Card>
197
+ </Grid.Item>
198
+ <Grid.Item span={2}>
199
+ <Card>span=2</Card>
200
+ </Grid.Item>
201
+ <Grid.Item span={9}>
202
+ <Card>span=9</Card>
203
+ </Grid.Item>
204
+ <Grid.Item span={3}>
205
+ <Card>span=3</Card>
206
+ </Grid.Item>
207
+ <Grid.Item span={8}>
208
+ <Card>span=8</Card>
209
+ </Grid.Item>
210
+ <Grid.Item span={4}>
211
+ <Card>span=4</Card>
212
+ </Grid.Item>
213
+ <Grid.Item span={7}>
214
+ <Card>span=7</Card>
215
+ </Grid.Item>
216
+ <Grid.Item span={5}>
217
+ <Card>span=5</Card>
218
+ </Grid.Item>
219
+ <Grid.Item span={6}>
220
+ <Card>span=6</Card>
221
+ </Grid.Item>
222
+ <Grid.Item span={6}>
223
+ <Card>span=6</Card>
224
+ </Grid.Item>
225
+ </Grid>
226
+ ),
227
+ args: {
228
+ columns: 12,
229
+ gap: "size-20",
230
+ rowGap: "",
231
+ columnGap: "",
232
+ alignItems: "stretch",
233
+ justifyItems: "stretch",
234
+ },
235
+ };
236
+
237
+ export const EightColumns: Meta<typeof Grid> = {
238
+ render: (args: GridProps) => (
239
+ <Grid {...args}>
240
+ {[...new Array(8)].map((_, k) => (
241
+ // eslint-disable-next-line react/no-array-index-key
242
+ <Card key={k}>span=1</Card>
243
+ ))}
244
+ </Grid>
245
+ ),
246
+ args: {
247
+ columns: 8,
248
+ gap: "size-20",
249
+ alignItems: "stretch",
250
+ justifyItems: "stretch",
251
+ className: "grid-example-eight-columns",
252
+ },
253
+ };
254
+
255
+ const breakpointControl = {
256
+ control: {
257
+ type: "number",
258
+ min: 0,
259
+ max: 12,
260
+ step: 1,
261
+ },
262
+ };
263
+
264
+ export const Responsive: Meta<typeof GridItem> = {
265
+ render: (args: GridItemProps) => {
266
+ const breakpointArgs = ["xs", "sm", "md", "lg", "xl", "xxl"];
267
+ const allArgs = Object.entries(args)
268
+ .filter(([breakpoint]) => breakpointArgs.includes(breakpoint))
269
+ .map(([breakpoint, value]) => `${breakpoint}=${value}`)
270
+ .join(" ");
271
+
272
+ return (
273
+ <Grid gap="size-20" alignItems="stretch" justifyItems="stretch">
274
+ <Grid.Item {...args}>
275
+ <Card>{allArgs}</Card>
276
+ </Grid.Item>
277
+ <Grid.Item lg={4}>
278
+ <Card>lg=4</Card>
279
+ </Grid.Item>
280
+ <Grid.Item xs={5}>
281
+ <Card>xs=5</Card>
282
+ </Grid.Item>
283
+ <Grid.Item span={5}>
284
+ <Card>span=5</Card>
285
+ </Grid.Item>
286
+ </Grid>
287
+ );
288
+ },
289
+ args: {
290
+ xs: 12,
291
+ sm: 6,
292
+ md: 2,
293
+ lg: 8,
294
+ xl: 12,
295
+ xxl: 4,
296
+ },
297
+ parameters: {
298
+ controls: {
299
+ exclude: ["columns"],
300
+ },
301
+ },
302
+ argTypes: {
303
+ xs: breakpointControl,
304
+ sm: breakpointControl,
305
+ md: breakpointControl,
306
+ lg: breakpointControl,
307
+ xl: breakpointControl,
308
+ xxl: breakpointControl,
309
+ },
310
+ decorators: [
311
+ Story => (
312
+ <ThemeContext.Provider
313
+ value={{
314
+ breakpoints,
315
+ setBreakpoints,
316
+ }}
317
+ >
318
+ <Story />
319
+ </ThemeContext.Provider>
320
+ ),
321
+ ],
322
+ };
323
+
324
+ export const ItemPositioning: Meta<typeof GridItem> = {
325
+ render: (args: GridItemProps) => (
326
+ <Grid
327
+ columns={12}
328
+ gap="size-20"
329
+ alignItems="stretch"
330
+ justifyItems="stretch"
331
+ className="grid-example-fixed-size-grid"
332
+ >
333
+ <Grid.Item className="grid-example-align-square-item" span={4} {...args}>
334
+ <AlignSquare>1</AlignSquare>
335
+ </Grid.Item>
336
+ <Grid.Item className="grid-example-align-square-item" span={4}>
337
+ <AlignSquare>2</AlignSquare>
338
+ </Grid.Item>
339
+ <Grid.Item className="grid-example-align-square-item" span={4}>
340
+ <AlignSquare>3</AlignSquare>
341
+ </Grid.Item>
342
+ <Grid.Item className="grid-example-align-square-item" span={4}>
343
+ <AlignSquare>4</AlignSquare>
344
+ </Grid.Item>
345
+ </Grid>
346
+ ),
347
+ args: {
348
+ alignSelf: "center",
349
+ justifySelf: "end",
350
+ },
351
+ argTypes: {
352
+ alignSelf: {
353
+ control: { type: "select" },
354
+ options: ["", "center", "start", "end", "stretch"],
355
+ },
356
+ justifySelf: {
357
+ control: { type: "select" },
358
+ options: ["", "center", "start", "end", "stretch"],
359
+ },
360
+ },
361
+ parameters: {
362
+ controls: {
363
+ exclude: [
364
+ "columns",
365
+ "gap",
366
+ "rowGap",
367
+ "columnGap",
368
+ "alignContent",
369
+ "justifyContent",
370
+ "alignItems",
371
+ "justifyItems",
372
+ ],
373
+ },
374
+ },
375
+ };
@@ -14,3 +14,7 @@
14
14
  .grid-example-align-square-item {
15
15
  background-color: #dddddd;
16
16
  }
17
+
18
+ .grid-example-eight-columns {
19
+ height: 300px;
20
+ }
@@ -1,6 +1,14 @@
1
- import { Ref, forwardRef, ReactNode, RefAttributes, CSSProperties } from "react";
1
+ import {
2
+ Ref,
3
+ forwardRef,
4
+ ReactNode,
5
+ RefAttributes,
6
+ CSSProperties,
7
+ } from "react";
8
+ import clsx from "clsx";
2
9
  import { DOMProps } from "@react-types/shared";
3
10
  import { ForwardedRefComponent } from "../../types/components";
11
+ import { withoutUndefinedValues } from "../Flex/propUtils";
4
12
 
5
13
  export type GridElementType = HTMLDivElement;
6
14
 
@@ -33,6 +41,8 @@ export interface GridProps extends RefAttributes<GridElementType>, DOMProps {
33
41
  alignItems?: "center" | "start" | "end" | "stretch" | "baseline";
34
42
  /** Aligns grid items along the inline (row) axis */
35
43
  justifyItems?: "start" | "end" | "center" | "stretch";
44
+ /** Custom class name for setting specific CSS */
45
+ className?: string;
36
46
  }
37
47
 
38
48
  export type GridRef = Ref<GridElementType>;
@@ -48,10 +58,12 @@ const Grid: ForwardedRefComponent<GridProps, GridElementType> = forwardRef(
48
58
  alignItems,
49
59
  justifyContent,
50
60
  justifyItems,
61
+ className,
51
62
  ...rest
52
63
  } = props;
64
+ const classes = clsx("mobius", "mobius/Grid", className);
53
65
 
54
- const styles: CSSProperties = {
66
+ const styles: CSSProperties = withoutUndefinedValues({
55
67
  boxSizing: "border-box",
56
68
  display: "grid",
57
69
  gridTemplateColumns: `repeat(${columns}, 1fr)`,
@@ -62,9 +74,9 @@ const Grid: ForwardedRefComponent<GridProps, GridElementType> = forwardRef(
62
74
  alignItems,
63
75
  justifyContent,
64
76
  justifyItems,
65
- };
77
+ });
66
78
 
67
- return <div style={styles} {...rest} />;
79
+ return <div style={styles} className={classes} {...rest} />;
68
80
  },
69
81
  );
70
82
 
@@ -1,6 +1,14 @@
1
1
  "use client";
2
2
 
3
- import { Ref, forwardRef, RefAttributes, useEffect, useState, CSSProperties } from "react";
3
+ import {
4
+ Ref,
5
+ forwardRef,
6
+ RefAttributes,
7
+ useEffect,
8
+ useState,
9
+ CSSProperties,
10
+ } from "react";
11
+ import clsx from "clsx";
4
12
  import { DOMProps } from "@react-types/shared";
5
13
  import { useBreakpoint } from "../../hooks";
6
14
  import { ForwardedRefComponent } from "../../types/components";
@@ -27,6 +35,8 @@ export interface GridItemProps
27
35
  alignSelf?: "center" | "start" | "end" | "stretch";
28
36
  /** Aligns the grid item along the inline (row) axis */
29
37
  justifySelf?: "center" | "start" | "end" | "stretch";
38
+ /** Custom class name for setting specific CSS */
39
+ className?: string;
30
40
  }
31
41
 
32
42
  export const getBreakpointMap = (config: Partial<Record<SizeType, number>>) =>
@@ -55,6 +65,7 @@ const GridItem: ForwardedRefComponent<GridItemProps, GridItemElementType> =
55
65
  xxl,
56
66
  alignSelf,
57
67
  justifySelf,
68
+ className,
58
69
  ...rest
59
70
  } = props;
60
71
  const breakpointMap = getBreakpointMap({
@@ -66,6 +77,7 @@ const GridItem: ForwardedRefComponent<GridItemProps, GridItemElementType> =
66
77
  xxl,
67
78
  });
68
79
  const [responsiveSpan, setResponsiveSpan] = useState();
80
+ const classes = clsx("mobius/GridItem", className);
69
81
 
70
82
  useEffect(() => {
71
83
  // @ts-expect-error
@@ -78,7 +90,7 @@ const GridItem: ForwardedRefComponent<GridItemProps, GridItemElementType> =
78
90
  justifySelf,
79
91
  };
80
92
 
81
- return <div style={{ ...styles }} {...rest} />;
93
+ return <div style={{ ...styles }} className={classes} {...rest} />;
82
94
  });
83
95
 
84
96
  GridItem.displayName = "GridItem";
@@ -0,0 +1,75 @@
1
+ import { Meta, ArgsTable, Story } from "@storybook/blocks";
2
+ import { Icon } from "./Icon";
3
+ import * as IconStories from "./Icon.stories";
4
+
5
+ <Meta of={IconStories} />
6
+
7
+ # Icon
8
+
9
+ Icon is a component for showing SVG icons provided by an icon library.
10
+
11
+ See the [icons documentation](/?path=/story/icons-getting-started--page) for the full list of icons.
12
+
13
+ ## Install
14
+
15
+ ```bash
16
+ yarn add @simplybusiness/mobius
17
+ ```
18
+
19
+ ## Usage
20
+
21
+ ```js
22
+ import { Icon } from "@simplybusiness/mobius";
23
+ ```
24
+
25
+ ## Examples
26
+
27
+ ### Normal
28
+
29
+ <Story of={IconStories.Normal} />
30
+
31
+ {/* prettier-ignore */}
32
+ ```jsx
33
+ import { Icon } from "@simplybusiness/mobius";
34
+
35
+ <Icon name="chevronDown" />
36
+ ```
37
+
38
+ ### Spinning
39
+
40
+ <Story of={IconStories.Spinning} />
41
+
42
+ {/* prettier-ignore */}
43
+ ```jsx
44
+ import { Icon } from "@simplybusiness/mobius";
45
+
46
+ <Icon name="loading" spin={true} />
47
+ ```
48
+
49
+ ## Accessibility
50
+
51
+ All icons are marked with aria-hidden and should not be used without some form of description outside of the icon. For example:
52
+
53
+ ```jsx
54
+ <Link aria-label="Go back to home" href="/">
55
+ <Icon name="chevronLeft" title="Go back" />
56
+ </Link>
57
+ ```
58
+
59
+ ## Props
60
+
61
+ <ArgsTable of={Icon} />
62
+
63
+ ## Component HTML Structure and Class names
64
+
65
+ The following HTML is rendered for an Icon:
66
+
67
+ ```html
68
+ <svg class="mobius/Icon" focusable="false" role="img">
69
+ <g ... />
70
+ </svg>
71
+ ```
72
+
73
+ ---
74
+
75
+ [See on Github](https://github.com/simplybusiness/mobius/tree/master/packages/mobius/src/components/Icon) | [Give feedback](https://simplybusiness.atlassian.net/CreateIssue.jspa?issuetype=10103&pid=10609) | [Get support](https://simplybusiness.slack.com/archives/C016CC0NDNE)
@@ -0,0 +1,50 @@
1
+ import type { Meta } from "@storybook/react";
2
+ import { Icon } from "./Icon";
3
+ import { excludeControls } from "../../utils/excludeControls";
4
+ import { IconProps } from "./types";
5
+
6
+ export default {
7
+ title: "Components/Icon",
8
+ component: Icon,
9
+ argTypes: {
10
+ name: {
11
+ options: [
12
+ "menu",
13
+ "rightArrow",
14
+ "leftArrow",
15
+ "dropdown",
16
+ "home",
17
+ "star",
18
+ "youtube",
19
+ "error",
20
+ "search",
21
+ "user",
22
+ "chevronDown",
23
+ "loading",
24
+ ],
25
+ control: { type: "radio" },
26
+ },
27
+ spin: {
28
+ if: {
29
+ arg: "name",
30
+ eq: "loading",
31
+ },
32
+ },
33
+ ...excludeControls("className", "icon"),
34
+ },
35
+ };
36
+
37
+ export const Normal: Meta<typeof Icon> = {
38
+ render: (args: IconProps) => <Icon {...args} />,
39
+ args: {
40
+ name: "chevronDown",
41
+ },
42
+ };
43
+
44
+ export const Spinning: Meta<typeof Icon> = {
45
+ render: (args: IconProps) => <Icon {...args} />,
46
+ args: {
47
+ spin: true,
48
+ name: "loading",
49
+ },
50
+ };
@@ -7,6 +7,8 @@ export interface BaseIconProps extends RefAttributes<SVGSVGElement> {
7
7
  className?: string;
8
8
  /** Spin the icon */
9
9
  spin?: boolean;
10
+ fontSize?: string;
11
+ color?: string;
10
12
  }
11
13
 
12
14
  export interface IconProps
@@ -1,12 +1,9 @@
1
- import { Meta, ArgsTable, Canvas, Story } from "@storybook/addon-docs";
1
+ import { Meta, ArgsTable, Canvas, Story } from "@storybook/blocks";
2
2
  import { Image } from "./Image";
3
3
  import { excludeControls } from "../../utils/excludeControls";
4
+ import * as ImageStories from "./Image.stories";
4
5
 
5
- <Meta
6
- title="Components/Image"
7
- component={Image}
8
- argTypes={excludeControls("elementType", "className")}
9
- />
6
+ <Meta of={ImageStories} />
10
7
 
11
8
  # Image
12
9
 
@@ -70,9 +67,7 @@ export const testImg =
70
67
  ### Normal
71
68
 
72
69
  <Canvas>
73
- <Story name="Normal" args={{ src: testImg, alt: "test image" }}>
74
- {args => <Image {...args} />}
75
- </Story>
70
+ <Story of={ImageStories.Normal} />
76
71
  </Canvas>
77
72
 
78
73
  ## Accessibility
@@ -0,0 +1,20 @@
1
+ import type { Meta } from "@storybook/react";
2
+ import { Image, ImageProps } from "./Image";
3
+ import { excludeControls } from "../../utils/excludeControls";
4
+
5
+ const testImg =
6
+ "data:image/png;base64,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";
7
+
8
+ export default {
9
+ title: "Components/Image",
10
+ component: Image,
11
+ argTypes: excludeControls("elementType", "className"),
12
+ };
13
+
14
+ export const Normal: Meta<typeof Image> = {
15
+ render: (args: ImageProps) => <Image {...args} />,
16
+ args: {
17
+ src: testImg,
18
+ alt: "test image",
19
+ },
20
+ };
@@ -1,12 +1,9 @@
1
- import { Meta, ArgsTable, Canvas, Story } from "@storybook/addon-docs";
1
+ import { Meta, ArgsTable, Canvas, Story } from "@storybook/blocks";
2
2
  import { Label } from "./Label";
3
3
  import { excludeControls } from "../../utils/excludeControls";
4
+ import * as LabelStories from "./Label.stories";
4
5
 
5
- <Meta
6
- title="Forms/Label"
7
- component={Label}
8
- argTypes={excludeControls("className", "elementType")}
9
- />
6
+ <Meta of={LabelStories} />
10
7
 
11
8
  # Label
12
9
 
@@ -27,9 +24,7 @@ import { Label } from "@simplybusiness/mobius";
27
24
  ## Examples
28
25
 
29
26
  <Canvas>
30
- <Story name="Normal" args={{}}>
31
- {args => <Label {...args}>Example label</Label>}
32
- </Story>
27
+ <Story of={LabelStories.Normal} />
33
28
  </Canvas>
34
29
 
35
30
  ## Accessibility