@simplybusiness/mobius 3.8.0 → 3.9.1

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 +15 -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
@@ -7,6 +7,8 @@ import { Icon } from "../Icon";
7
7
  export interface LoadingIndicatorProps extends RefAttributes<SVGSVGElement> {
8
8
  className?: string;
9
9
  icon?: IconName;
10
+ fontSize?: string;
11
+ color?: string;
10
12
  }
11
13
 
12
14
  export type LoadingIndicatorRef = Ref<SVGSVGElement>;
@@ -1,7 +1,8 @@
1
- import { Meta, ArgsTable, Canvas, Story } from "@storybook/addon-docs";
1
+ import { Meta, ArgsTable, Canvas, Story } from "@storybook/blocks";
2
2
  import { MaskedField, MaskedFieldProps } from "./MaskedField";
3
+ import * as MaskedFieldStories from "./MaskedField.stories";
3
4
 
4
- <Meta title="Components/MaskedField" component={MaskedField} />
5
+ <Meta of={MaskedFieldStories} />
5
6
 
6
7
  # MaskedField
7
8
 
@@ -22,9 +23,7 @@ import { MaskedField } from "@simplybusiness/mobius";
22
23
  ## Normal
23
24
 
24
25
  <Canvas>
25
- <Story name="Normal" args={{ label: "MaskedField", pattern: "ssn" }}>
26
- {args => <MaskedField {...args} />}
27
- </Story>
26
+ <Story of={MaskedFieldStories.Normal} />
28
27
  </Canvas>
29
28
 
30
29
  ## Props
@@ -45,13 +44,13 @@ The following HTML is rendered for a MaskedField:
45
44
 
46
45
  Class names are augmented with the following flags if true:
47
46
 
48
- - --is-focused
49
- - --is-disabled
50
- - --is-hovered
51
- - --is-selected
52
- - --is-valid
53
- - --is-invalid
54
- - --is-optional
47
+ - \--is-focused
48
+ - \--is-disabled
49
+ - \--is-hovered
50
+ - \--is-selected
51
+ - \--is-valid
52
+ - \--is-invalid
53
+ - \--is-optional
55
54
 
56
55
  ---
57
56
 
@@ -0,0 +1,26 @@
1
+ import type { Meta } from "@storybook/react";
2
+ import { MaskedField, MaskedFieldProps } from "./MaskedField";
3
+ import { excludeControls } from "../../utils/excludeControls";
4
+
5
+ export default {
6
+ title: "Components/MaskedField",
7
+ component: MaskedField,
8
+ argTypes: {
9
+ type: {
10
+ control: { type: "radio" },
11
+ options: ["text", "number"],
12
+ },
13
+ ...excludeControls("className"),
14
+ },
15
+ };
16
+
17
+ export const Normal: Meta<typeof MaskedField> = {
18
+ render: (args: MaskedFieldProps) => <MaskedField {...args} />,
19
+ args: {
20
+ label: "MaskedField",
21
+ pattern: "ssn",
22
+ isRequired: false,
23
+ type: "",
24
+ errorMessage: "",
25
+ },
26
+ };
@@ -1,28 +1,12 @@
1
1
  import { useState } from "react";
2
- import { Meta, ArgsTable, Story } from "@storybook/addon-docs";
2
+ import { Meta, ArgsTable, Story } from "@storybook/blocks";
3
3
  import { Box } from "../Box";
4
4
  import { Button } from "../Button";
5
5
  import { Modal } from ".";
6
6
  import { excludeControls } from "../../utils/excludeControls";
7
+ import * as ModalStories from "./Modal.stories";
7
8
 
8
- <Meta
9
- title="Components/Modal"
10
- component={Modal}
11
- argTypes={{
12
- animation: { control: "radio", options: ["", "slideUp", "fade"] },
13
- size: {
14
- control: "radio",
15
- options: ["md", "fullscreen"],
16
- },
17
- ...excludeControls(
18
- "className",
19
- "onClose",
20
- "appElement",
21
- "parentSelector",
22
- "isOpen",
23
- ),
24
- }}
25
- />
9
+ <Meta of={ModalStories} />
26
10
 
27
11
  # Modal
28
12
 
@@ -278,13 +262,13 @@ const WithAnimationDemo = () => {
278
262
 
279
263
  ### Step 1: Create embeddable `<iframe>`
280
264
 
281
- 1. Create `example` directory with `index.html` file in it:
265
+ 1. Create `example` directory with `index.html` file in it:
282
266
 
283
267
  ```
284
268
  mkdir example && cd example && touch index.html
285
269
  ```
286
270
 
287
- 2. Edit your `index.html` file as follows:
271
+ 2. Edit your `index.html` file as follows:
288
272
 
289
273
  ```html
290
274
  <html>
@@ -300,7 +284,7 @@ mkdir example && cd example && touch index.html
300
284
  </html>
301
285
  ```
302
286
 
303
- 3. Start a simple HTTP server from within the `example` directory:
287
+ 3. Start a simple HTTP server from within the `example` directory:
304
288
 
305
289
  ```
306
290
  npx serve .
@@ -351,67 +335,19 @@ export const ExampleContent = ({ onClose }) => {
351
335
 
352
336
  ### Normal
353
337
 
354
- <Story
355
- name="Normal"
356
- args={{
357
- isOpen: false,
358
- shouldFocusAfterRender: true,
359
- animation: "",
360
- preventCloseOnEsc: false,
361
- closeLabel: "Close",
362
- size: "md",
363
- }}
364
- >
365
- {args => <Demo {...args} />}
366
- </Story>
338
+ <Story of={ModalStories.Normal} />
367
339
 
368
340
  ### Full Screen
369
341
 
370
- <Story
371
- name="Full Screen"
372
- args={{
373
- isOpen: false,
374
- shouldFocusAfterRender: true,
375
- animation: "",
376
- preventCloseOnEsc: false,
377
- closeLabel: "Close",
378
- size: "fullscreen",
379
- }}
380
- >
381
- {args => <FullScreenDemo {...args} />}
382
- </Story>
342
+ <Story of={ModalStories.FullScreen} />
383
343
 
384
344
  ### With Custom Size
385
345
 
386
- <Story
387
- name="With Custom Size"
388
- args={{
389
- isOpen: false,
390
- shouldFocusAfterRender: true,
391
- animation: "",
392
- preventCloseOnEsc: false,
393
- closeLabel: "Close",
394
- size: "sm",
395
- }}
396
- >
397
- {args => <WithCustomSizeDemo {...args} />}
398
- </Story>
346
+ <Story of={ModalStories.WithCustomSize} />
399
347
 
400
348
  ### With Animation
401
349
 
402
- <Story
403
- name="With Animation"
404
- args={{
405
- isOpen: false,
406
- animation: "slideUp",
407
- shouldFocusAfterRender: true,
408
- preventCloseOnEsc: false,
409
- closeLabel: "Close",
410
- size: "md",
411
- }}
412
- >
413
- {args => <WithAnimationDemo {...args} />}
414
- </Story>
350
+ <Story of={ModalStories.WithAnimation} />
415
351
 
416
352
  ## Props
417
353
 
@@ -442,16 +378,16 @@ The following HTML is rendered for a simple Modal:
442
378
 
443
379
  Class names are augmented with the following flags if true (affected classes shown above):
444
380
 
445
- - --slide-up
446
- - --fade
447
- - --has-reduced-motion
448
- - --is-fullscreen
449
- - --is-xs
450
- - --is-sm
451
- - --is-md
452
- - --is-lg
453
- - --is-xl
454
- - --is-xxl
381
+ - \--slide-up
382
+ - \--fade
383
+ - \--has-reduced-motion
384
+ - \--is-fullscreen
385
+ - \--is-xs
386
+ - \--is-sm
387
+ - \--is-md
388
+ - \--is-lg
389
+ - \--is-xl
390
+ - \--is-xxl
455
391
 
456
392
  ---
457
393
 
@@ -0,0 +1,181 @@
1
+ import type { Meta } from "@storybook/react";
2
+ import { useState } from "react";
3
+ import { Button } from "../Button";
4
+ import { Modal, ModalProps } from ".";
5
+ import { excludeControls } from "../../utils/excludeControls";
6
+
7
+ const Demo = (props: ModalProps) => {
8
+ const [open, setOpen] = useState(false);
9
+ return (
10
+ <>
11
+ <Button onClick={() => setOpen(true)}>Show Modal</Button>
12
+ <Modal {...props} isOpen={open} onClose={() => setOpen(false)}>
13
+ <Modal.Header>The Latin Modal</Modal.Header>
14
+ <Modal.Content>
15
+ Aliquam fringilla quam vel purus rhoncus interdum in quis sapien. Sed
16
+ at eros et lectus mollis posuere. Morbi augue augue, venenatis vel
17
+ consectetur sed, vulputate et lorem. Integer venenatis nibh molestie
18
+ commodo lobortis. Phasellus sit amet dignissim nisi. Vivamus nisi
19
+ augue, scelerisque commodo libero vitae, vulputate interdum ex.
20
+ Integer non risus sollicitudin, cursus ipsum vitae, rhoncus nulla.
21
+ </Modal.Content>
22
+ </Modal>
23
+ </>
24
+ );
25
+ };
26
+
27
+ const FullScreenDemo = (props: ModalProps) => {
28
+ const [open, setOpen] = useState(false);
29
+ return (
30
+ <>
31
+ <Button onClick={() => setOpen(true)} variant="secondary">
32
+ Show Fullscreen Modal 🚀
33
+ </Button>
34
+ <Modal
35
+ {...props}
36
+ size="fullscreen"
37
+ isOpen={open}
38
+ onClose={() => setOpen(false)}
39
+ preventCloseOnEsc
40
+ >
41
+ <Modal.Header>The Full Screen Modal</Modal.Header>
42
+ <Modal.Content>
43
+ Aliquam fringilla quam vel purus rhoncus interdum in quis sapien. Sed
44
+ at eros et lectus mollis posuere. Morbi augue augue, venenatis vel
45
+ consectetur sed, vulputate et lorem. Integer venenatis nibh molestie
46
+ commodo lobortis. Phasellus sit amet dignissim nisi. Vivamus nisi
47
+ augue, scelerisque commodo libero vitae, vulputate interdum ex.
48
+ Integer non risus sollicitudin, cursus ipsum vitae, rhoncus nulla.
49
+ </Modal.Content>
50
+ </Modal>
51
+ </>
52
+ );
53
+ };
54
+
55
+ const WithCustomSizeDemo = (props: ModalProps) => {
56
+ const [open, setOpen] = useState(false);
57
+ return (
58
+ <>
59
+ <Button onClick={() => setOpen(true)} variant="secondary">
60
+ Show Custom Size Modal 🔸
61
+ </Button>
62
+ <Modal
63
+ {...props}
64
+ size="sm"
65
+ isOpen={open}
66
+ onClose={() => setOpen(false)}
67
+ preventCloseOnEsc
68
+ >
69
+ <Modal.Header>The Custom Size Modal</Modal.Header>
70
+ <Modal.Content>
71
+ Aliquam fringilla quam vel purus rhoncus interdum in quis sapien. Sed
72
+ at eros et lectus mollis posuere. Morbi augue augue, venenatis vel
73
+ consectetur sed, vulputate et lorem. Integer venenatis nibh molestie
74
+ commodo lobortis. Phasellus sit amet dignissim nisi. Vivamus nisi
75
+ augue, scelerisque commodo libero vitae, vulputate interdum ex.
76
+ Integer non risus sollicitudin, cursus ipsum vitae, rhoncus nulla.
77
+ </Modal.Content>
78
+ </Modal>
79
+ </>
80
+ );
81
+ };
82
+
83
+ type WithAnimationDemoProps = {
84
+ animation?: "slideUp" | "fade";
85
+ };
86
+
87
+ const WithAnimationDemo = ({
88
+ animation,
89
+ }: ModalProps & WithAnimationDemoProps) => {
90
+ const [open, setOpen] = useState(false);
91
+ return (
92
+ <>
93
+ <Button onClick={() => setOpen(true)}>
94
+ Show Modal With Animation 🧙‍♂️
95
+ </Button>
96
+ <Modal isOpen={open} onClose={() => setOpen(false)} animation={animation}>
97
+ <Modal.Header>The Latin Modal</Modal.Header>
98
+ <Modal.Content>
99
+ Aliquam fringilla quam vel purus rhoncus interdum in quis sapien. Sed
100
+ at eros et lectus mollis posuere. Morbi augue augue, venenatis vel
101
+ consectetur sed, vulputate et lorem. Integer venenatis nibh molestie
102
+ commodo lobortis. Phasellus sit amet dignissim nisi. Vivamus nisi
103
+ augue, scelerisque commodo libero vitae, vulputate interdum ex.
104
+ Integer non risus sollicitudin, cursus ipsum vitae, rhoncus nulla.
105
+ </Modal.Content>
106
+ </Modal>
107
+ </>
108
+ );
109
+ };
110
+
111
+ export default {
112
+ title: "Components/Modal",
113
+ component: Modal,
114
+ argTypes: {
115
+ animation: {
116
+ options: ["slideUp", "fade", "neither"],
117
+ control: { type: "radio" },
118
+ mapping: {
119
+ slideUp: "slideUp",
120
+ fade: "fade",
121
+ neither: undefined,
122
+ },
123
+ },
124
+ size: {
125
+ control: { type: "radio" },
126
+ options: ["md", "fullscreen"],
127
+ },
128
+ ...excludeControls(
129
+ "className",
130
+ "onClose",
131
+ "appElement",
132
+ "parentSelector",
133
+ "isOpen",
134
+ ),
135
+ },
136
+ };
137
+
138
+ export const Normal: Meta<typeof Demo> = {
139
+ render: (args: ModalProps) => <Demo {...args} />,
140
+ args: {
141
+ isOpen: false,
142
+ shouldFocusAfterRender: true,
143
+ preventCloseOnEsc: false,
144
+ closeLabel: "Close",
145
+ size: "md",
146
+ },
147
+ };
148
+
149
+ export const FullScreen: Meta<typeof FullScreenDemo> = {
150
+ render: (args: ModalProps) => <FullScreenDemo {...args} />,
151
+ args: {
152
+ isOpen: false,
153
+ shouldFocusAfterRender: true,
154
+ preventCloseOnEsc: false,
155
+ closeLabel: "Close",
156
+ size: "fullscreen",
157
+ },
158
+ };
159
+
160
+ export const WithCustomSize: Meta<typeof WithCustomSizeDemo> = {
161
+ render: (args: ModalProps) => <WithCustomSizeDemo {...args} />,
162
+ args: {
163
+ isOpen: false,
164
+ shouldFocusAfterRender: true,
165
+ preventCloseOnEsc: false,
166
+ closeLabel: "Close",
167
+ size: "sm",
168
+ },
169
+ };
170
+
171
+ export const WithAnimation: Meta<typeof WithAnimationDemo> = {
172
+ render: (args: ModalProps) => <WithAnimationDemo {...args} />,
173
+ args: {
174
+ isOpen: false,
175
+ animation: "slideUp",
176
+ shouldFocusAfterRender: true,
177
+ preventCloseOnEsc: false,
178
+ closeLabel: "Close",
179
+ size: "md",
180
+ },
181
+ };
@@ -0,0 +1,104 @@
1
+ import { Meta, ArgsTable, Canvas, Story } from "@storybook/blocks";
2
+ import { NumberField, NumberFieldProps } from "./NumberField";
3
+ import { excludeControls } from "../../utils/excludeControls";
4
+ import * as NumberFieldStories from "./NumberField.stories";
5
+
6
+ <Meta of={NumberFieldStories} />
7
+
8
+ # NumberField
9
+
10
+ The `NumberField` component is used for creating a numeric input field. It can be customised by providing any of the valid
11
+ [Intl.NumberFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#options)
12
+ options as the `formatOptions` prop.
13
+
14
+ ## Install
15
+
16
+ ```bash
17
+ yarn add @simplybusiness/mobius
18
+ ```
19
+
20
+ ## Usage
21
+
22
+ ```js
23
+ import { NumberField } from "@simplybusiness/mobius";
24
+ ```
25
+
26
+ ## Normal
27
+
28
+ <Canvas>
29
+ <Story of={NumberFieldStories.Normal} />
30
+ </Canvas>
31
+
32
+ ## Formatted
33
+
34
+ <Canvas>
35
+ <Story of={NumberFieldStories.Formatted} />
36
+ </Canvas>
37
+
38
+ ## Limited range
39
+
40
+ <Canvas>
41
+ <Story of={NumberFieldStories.LimitedRange} />
42
+ </Canvas>
43
+
44
+ ## Valid
45
+
46
+ <Canvas>
47
+ <Story of={NumberFieldStories.Valid} />
48
+ </Canvas>
49
+
50
+ ## Valid
51
+
52
+ <Canvas>
53
+ <Story of={NumberFieldStories.Invalid} />
54
+ </Canvas>
55
+
56
+ ## Disabled
57
+
58
+ <Canvas>
59
+ <Story of={NumberFieldStories.Disabled} />
60
+ </Canvas>
61
+
62
+ ## Props
63
+
64
+ <ArgsTable of={NumberField} />
65
+
66
+ ## Component HTML Structure and Class names
67
+
68
+ The following HTML is rendered for a NumberField:
69
+
70
+ ```html
71
+ <div class="mobius/NumberField">
72
+ <label class="mobius mobius/Label mobius/NumberFieldLabel">Label</label>
73
+ <div class="mobius/NumberFieldInputGroup">
74
+ <input class="mobius/NumberFieldInput" />
75
+ <button class="mobius/NumberFieldButton mobius/NumberFieldButtonPlus">
76
+ +
77
+ </button>
78
+ <button
79
+ type="button"
80
+ class="mobius/NumberFieldButton mobius/NumberFieldButtonMinus"
81
+ tabindex="-1"
82
+ aria-label="Decrease Number field"
83
+ aria-controls="react-aria7586995458-316"
84
+ >
85
+ -
86
+ </button>
87
+ </div>
88
+ <div class="mobius/ErrorMessage">Error message</div>
89
+ </div>
90
+ ```
91
+
92
+ Class names are augmented with the following flags if true:
93
+
94
+ - \--is-disabled
95
+ - \--is-hovered
96
+ - \--is-focused
97
+ - \--is-valid
98
+ - \--is-invalid
99
+ - \--is-required
100
+ - \--is-optional
101
+
102
+ ---
103
+
104
+ [See on Github](https://github.com/simplybusiness/mobius/tree/master/packages/mobius/src/components/NumberField) | [Give feedback](https://simplybusiness.atlassian.net/CreateIssue.jspa?issuetype=10103&pid=10609) | [Get support](https://simplybusiness.slack.com/archives/C016CC0NDNE)
@@ -0,0 +1,114 @@
1
+ import type { Meta } from "@storybook/react";
2
+ import { NumberField, NumberFieldProps } from "./NumberField";
3
+ import { excludeControls } from "../../utils/excludeControls";
4
+
5
+ export default {
6
+ title: "Forms/NumberField",
7
+ component: NumberField,
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
+ minValue: {
19
+ control: {
20
+ control: { type: "range" },
21
+ min: 0,
22
+ max: 10,
23
+ step: 1,
24
+ },
25
+ },
26
+ maxValue: {
27
+ control: {
28
+ control: { type: "range" },
29
+ min: 0,
30
+ max: 10,
31
+ step: 1,
32
+ },
33
+ },
34
+ ...excludeControls("className", "value", "aria-describedby"),
35
+ },
36
+ args: {
37
+ minValue: 0,
38
+ maxValue: 100,
39
+ },
40
+ };
41
+
42
+ export const Normal: Meta<typeof NumberField> = {
43
+ render: (args: NumberFieldProps) => <NumberField {...args} />,
44
+ args: {
45
+ label: "Number field",
46
+ defaultValue: 0,
47
+ errorMessage: "",
48
+ step: 1,
49
+ isRequired: false,
50
+ },
51
+ };
52
+
53
+ export const Formatted: Meta<typeof NumberField> = {
54
+ render: (args: NumberFieldProps) => <NumberField {...args} />,
55
+ args: {
56
+ label: "Number field",
57
+ defaultValue: 0,
58
+ formatOptions: {
59
+ style: "percent",
60
+ },
61
+ errorMessage: "",
62
+ step: 1,
63
+ isRequired: false,
64
+ },
65
+ };
66
+
67
+ export const LimitedRange: Meta<typeof NumberField> = {
68
+ render: (args: NumberFieldProps) => <NumberField {...args} />,
69
+ args: {
70
+ label: "Number field",
71
+ minValue: -10,
72
+ maxValue: 10,
73
+ defaultValue: 0,
74
+ errorMessage: "",
75
+ step: 1,
76
+ isRequired: false,
77
+ },
78
+ };
79
+
80
+ export const Valid: Meta<typeof NumberField> = {
81
+ render: (args: NumberFieldProps) => <NumberField {...args} />,
82
+ args: {
83
+ label: "Number field",
84
+ validationState: "valid",
85
+ defaultValue: 0,
86
+ errorMessage: "",
87
+ step: 1,
88
+ isRequired: false,
89
+ },
90
+ };
91
+
92
+ export const Invalid: Meta<typeof NumberField> = {
93
+ render: (args: NumberFieldProps) => <NumberField {...args} />,
94
+ args: {
95
+ label: "Number field",
96
+ validationState: "invalid",
97
+ errorMessage: "Error message",
98
+ defaultValue: 0,
99
+ step: 1,
100
+ isRequired: false,
101
+ },
102
+ };
103
+
104
+ export const Disabled: Meta<typeof NumberField> = {
105
+ render: (args: NumberFieldProps) => <NumberField {...args} />,
106
+ args: {
107
+ label: "Number field",
108
+ isDisabled: true,
109
+ defaultValue: 0,
110
+ errorMessage: "",
111
+ step: 1,
112
+ isRequired: false,
113
+ },
114
+ };