@simplybusiness/mobius 3.9.3 → 3.10.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 (219) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  3. package/package.json +1 -1
  4. package/src/components/NumberField/NumberField.mdx +17 -0
  5. package/src/components/NumberField/__snapshots__/NumberField.test.tsx.snap +7 -14
  6. package/dist/esm/components/Accordion/Accordion.stories.js +0 -45
  7. package/dist/esm/components/Accordion/Accordion.stories.js.map +0 -1
  8. package/dist/esm/components/Accordion/Accordion.test.js +0 -65
  9. package/dist/esm/components/Accordion/Accordion.test.js.map +0 -1
  10. package/dist/esm/components/Alert/Alert.stories.js +0 -32
  11. package/dist/esm/components/Alert/Alert.stories.js.map +0 -1
  12. package/dist/esm/components/Alert/Alert.test.js +0 -48
  13. package/dist/esm/components/Alert/Alert.test.js.map +0 -1
  14. package/dist/esm/components/Box/Box.stories.js +0 -20
  15. package/dist/esm/components/Box/Box.stories.js.map +0 -1
  16. package/dist/esm/components/Box/Box.test.js +0 -31
  17. package/dist/esm/components/Box/Box.test.js.map +0 -1
  18. package/dist/esm/components/Breadcrumbs/Breadcrumbs.stories.js +0 -17
  19. package/dist/esm/components/Breadcrumbs/Breadcrumbs.stories.js.map +0 -1
  20. package/dist/esm/components/Breadcrumbs/Breadcrumbs.test.js +0 -33
  21. package/dist/esm/components/Breadcrumbs/Breadcrumbs.test.js.map +0 -1
  22. package/dist/esm/components/Button/Button.stories.js +0 -213
  23. package/dist/esm/components/Button/Button.stories.js.map +0 -1
  24. package/dist/esm/components/Button/Button.test.js +0 -81
  25. package/dist/esm/components/Button/Button.test.js.map +0 -1
  26. package/dist/esm/components/Checkbox/Checkbox.stories.js +0 -98
  27. package/dist/esm/components/Checkbox/Checkbox.stories.js.map +0 -1
  28. package/dist/esm/components/Checkbox/Checkbox.test.js +0 -108
  29. package/dist/esm/components/Checkbox/Checkbox.test.js.map +0 -1
  30. package/dist/esm/components/Checkbox/CheckboxGroup.stories.js +0 -71
  31. package/dist/esm/components/Checkbox/CheckboxGroup.stories.js.map +0 -1
  32. package/dist/esm/components/Checkbox/CheckboxGroup.test.js +0 -44
  33. package/dist/esm/components/Checkbox/CheckboxGroup.test.js.map +0 -1
  34. package/dist/esm/components/Chopin/Actions/Actions.stories.js +0 -56
  35. package/dist/esm/components/Chopin/Actions/Actions.stories.js.map +0 -1
  36. package/dist/esm/components/Chopin/Actions/Actions.test.js +0 -95
  37. package/dist/esm/components/Chopin/Actions/Actions.test.js.map +0 -1
  38. package/dist/esm/components/Chopin/Actions/LinkOrButton.test.js +0 -33
  39. package/dist/esm/components/Chopin/Actions/LinkOrButton.test.js.map +0 -1
  40. package/dist/esm/components/Chopin/Footer/Footer.stories.js +0 -166
  41. package/dist/esm/components/Chopin/Footer/Footer.stories.js.map +0 -1
  42. package/dist/esm/components/Chopin/Footer/Footer.test.js +0 -90
  43. package/dist/esm/components/Chopin/Footer/Footer.test.js.map +0 -1
  44. package/dist/esm/components/Chopin/Header/Header.stories.js +0 -38
  45. package/dist/esm/components/Chopin/Header/Header.stories.js.map +0 -1
  46. package/dist/esm/components/Chopin/Header/Header.test.js +0 -86
  47. package/dist/esm/components/Chopin/Header/Header.test.js.map +0 -1
  48. package/dist/esm/components/Chopin/PercentageTotalsQuestion/PercentageTotalsQuestion.stories.js +0 -43
  49. package/dist/esm/components/Chopin/PercentageTotalsQuestion/PercentageTotalsQuestion.stories.js.map +0 -1
  50. package/dist/esm/components/Chopin/PercentageTotalsQuestion/PercentageTotalsQuestion.test.js +0 -108
  51. package/dist/esm/components/Chopin/PercentageTotalsQuestion/PercentageTotalsQuestion.test.js.map +0 -1
  52. package/dist/esm/components/Chopin/Question/Question.stories.js +0 -136
  53. package/dist/esm/components/Chopin/Question/Question.stories.js.map +0 -1
  54. package/dist/esm/components/Chopin/Question/Question.test.js +0 -116
  55. package/dist/esm/components/Chopin/Question/Question.test.js.map +0 -1
  56. package/dist/esm/components/Chopin/QuestionGroup/QuestionGroup.stories.js +0 -40
  57. package/dist/esm/components/Chopin/QuestionGroup/QuestionGroup.stories.js.map +0 -1
  58. package/dist/esm/components/Chopin/QuestionGroup/QuestionGroup.test.js +0 -62
  59. package/dist/esm/components/Chopin/QuestionGroup/QuestionGroup.test.js.map +0 -1
  60. package/dist/esm/components/Chopin/QuestionHelp/QuestionHelp.test.js +0 -41
  61. package/dist/esm/components/Chopin/QuestionHelp/QuestionHelp.test.js.map +0 -1
  62. package/dist/esm/components/Chopin/Section/Section.stories.js +0 -16
  63. package/dist/esm/components/Chopin/Section/Section.stories.js.map +0 -1
  64. package/dist/esm/components/Chopin/Section/Section.test.js +0 -35
  65. package/dist/esm/components/Chopin/Section/Section.test.js.map +0 -1
  66. package/dist/esm/components/Chopin/Steps/Steps.stories.js +0 -12
  67. package/dist/esm/components/Chopin/Steps/Steps.stories.js.map +0 -1
  68. package/dist/esm/components/Chopin/Steps/Steps.test.js +0 -93
  69. package/dist/esm/components/Chopin/Steps/Steps.test.js.map +0 -1
  70. package/dist/esm/components/Chopin/Testimonial/Testimonial.stories.js +0 -15
  71. package/dist/esm/components/Chopin/Testimonial/Testimonial.stories.js.map +0 -1
  72. package/dist/esm/components/Chopin/Testimonial/Testimonial.test.js +0 -35
  73. package/dist/esm/components/Chopin/Testimonial/Testimonial.test.js.map +0 -1
  74. package/dist/esm/components/Chopin/TradeSelector/Listing/Listing.test.js +0 -26
  75. package/dist/esm/components/Chopin/TradeSelector/Listing/Listing.test.js.map +0 -1
  76. package/dist/esm/components/Chopin/TradeSelector/Listing/ListingItem.test.js +0 -37
  77. package/dist/esm/components/Chopin/TradeSelector/Listing/ListingItem.test.js.map +0 -1
  78. package/dist/esm/components/Chopin/TradeSelector/SearchResults/SearchResults.test.js +0 -86
  79. package/dist/esm/components/Chopin/TradeSelector/SearchResults/SearchResults.test.js.map +0 -1
  80. package/dist/esm/components/Chopin/TradeSelector/TradeInput/TradeInput.test.js +0 -52
  81. package/dist/esm/components/Chopin/TradeSelector/TradeInput/TradeInput.test.js.map +0 -1
  82. package/dist/esm/components/Chopin/TradeSelector/TradeSelector.stories.js +0 -52
  83. package/dist/esm/components/Chopin/TradeSelector/TradeSelector.stories.js.map +0 -1
  84. package/dist/esm/components/Chopin/TradeSelector/TradeSelector.test.js +0 -226
  85. package/dist/esm/components/Chopin/TradeSelector/TradeSelector.test.js.map +0 -1
  86. package/dist/esm/components/Container/Container.stories.js +0 -12
  87. package/dist/esm/components/Container/Container.stories.js.map +0 -1
  88. package/dist/esm/components/Container/Container.test.js +0 -37
  89. package/dist/esm/components/Container/Container.test.js.map +0 -1
  90. package/dist/esm/components/DataTable/DataTable.stories.js +0 -174
  91. package/dist/esm/components/DataTable/DataTable.stories.js.map +0 -1
  92. package/dist/esm/components/DataTable/DataTable.test.js +0 -119
  93. package/dist/esm/components/DataTable/DataTable.test.js.map +0 -1
  94. package/dist/esm/components/DatePicker/DatePicker.stories.js +0 -25
  95. package/dist/esm/components/DatePicker/DatePicker.stories.js.map +0 -1
  96. package/dist/esm/components/Divider/Divider.stories.js +0 -12
  97. package/dist/esm/components/Divider/Divider.stories.js.map +0 -1
  98. package/dist/esm/components/DropdownMenu/DropdownMenu.stories.js +0 -58
  99. package/dist/esm/components/DropdownMenu/DropdownMenu.stories.js.map +0 -1
  100. package/dist/esm/components/DropdownMenu/DropdownMenu.test.js +0 -95
  101. package/dist/esm/components/DropdownMenu/DropdownMenu.test.js.map +0 -1
  102. package/dist/esm/components/ErrorMessage/ErrorMessage.stories.js +0 -21
  103. package/dist/esm/components/ErrorMessage/ErrorMessage.stories.js.map +0 -1
  104. package/dist/esm/components/ErrorMessage/ErrorMessage.test.js +0 -30
  105. package/dist/esm/components/ErrorMessage/ErrorMessage.test.js.map +0 -1
  106. package/dist/esm/components/Fieldset/Fieldset.stories.js +0 -22
  107. package/dist/esm/components/Fieldset/Fieldset.stories.js.map +0 -1
  108. package/dist/esm/components/Fieldset/Fieldset.test.js +0 -10
  109. package/dist/esm/components/Fieldset/Fieldset.test.js.map +0 -1
  110. package/dist/esm/components/Flex/Flex.stories.js +0 -148
  111. package/dist/esm/components/Flex/Flex.stories.js.map +0 -1
  112. package/dist/esm/components/Flex/Flex.test.js +0 -31
  113. package/dist/esm/components/Flex/Flex.test.js.map +0 -1
  114. package/dist/esm/components/Grid/Grid.stories.js +0 -227
  115. package/dist/esm/components/Grid/Grid.stories.js.map +0 -1
  116. package/dist/esm/components/Grid/Grid.test.js +0 -95
  117. package/dist/esm/components/Grid/Grid.test.js.map +0 -1
  118. package/dist/esm/components/Icon/Icon.stories.js +0 -43
  119. package/dist/esm/components/Icon/Icon.stories.js.map +0 -1
  120. package/dist/esm/components/Icon/Icon.test.js +0 -52
  121. package/dist/esm/components/Icon/Icon.test.js.map +0 -1
  122. package/dist/esm/components/Image/Image.stories.js +0 -17
  123. package/dist/esm/components/Image/Image.stories.js.map +0 -1
  124. package/dist/esm/components/Image/Image.test.js +0 -37
  125. package/dist/esm/components/Image/Image.test.js.map +0 -1
  126. package/dist/esm/components/Label/Label.stories.js +0 -15
  127. package/dist/esm/components/Label/Label.stories.js.map +0 -1
  128. package/dist/esm/components/Label/Label.test.js +0 -35
  129. package/dist/esm/components/Label/Label.test.js.map +0 -1
  130. package/dist/esm/components/Link/Link.stories.js +0 -41
  131. package/dist/esm/components/Link/Link.stories.js.map +0 -1
  132. package/dist/esm/components/Link/Link.test.js +0 -65
  133. package/dist/esm/components/Link/Link.test.js.map +0 -1
  134. package/dist/esm/components/LinkButton/LinkButton.stories.js +0 -42
  135. package/dist/esm/components/LinkButton/LinkButton.stories.js.map +0 -1
  136. package/dist/esm/components/LinkButton/LinkButton.test.js +0 -62
  137. package/dist/esm/components/LinkButton/LinkButton.test.js.map +0 -1
  138. package/dist/esm/components/List/List.stories.js +0 -77
  139. package/dist/esm/components/List/List.stories.js.map +0 -1
  140. package/dist/esm/components/List/List.test.js +0 -93
  141. package/dist/esm/components/List/List.test.js.map +0 -1
  142. package/dist/esm/components/LoadingIndicator/LoadingIndicator.stories.js +0 -50
  143. package/dist/esm/components/LoadingIndicator/LoadingIndicator.stories.js.map +0 -1
  144. package/dist/esm/components/LoadingIndicator/LoadingIndicator.test.js +0 -27
  145. package/dist/esm/components/LoadingIndicator/LoadingIndicator.test.js.map +0 -1
  146. package/dist/esm/components/MaskedField/MaskedField.stories.js +0 -22
  147. package/dist/esm/components/MaskedField/MaskedField.stories.js.map +0 -1
  148. package/dist/esm/components/MaskedField/MaskedField.test.js +0 -64
  149. package/dist/esm/components/MaskedField/MaskedField.test.js.map +0 -1
  150. package/dist/esm/components/Modal/Modal.stories.js +0 -79
  151. package/dist/esm/components/Modal/Modal.stories.js.map +0 -1
  152. package/dist/esm/components/Modal/Modal.test.js +0 -135
  153. package/dist/esm/components/Modal/Modal.test.js.map +0 -1
  154. package/dist/esm/components/NumberField/NumberField.stories.js +0 -103
  155. package/dist/esm/components/NumberField/NumberField.stories.js.map +0 -1
  156. package/dist/esm/components/NumberField/NumberField.test.js +0 -81
  157. package/dist/esm/components/NumberField/NumberField.test.js.map +0 -1
  158. package/dist/esm/components/PasswordField/PasswordField.stories.js +0 -31
  159. package/dist/esm/components/PasswordField/PasswordField.stories.js.map +0 -1
  160. package/dist/esm/components/PasswordField/PasswordField.test.js +0 -29
  161. package/dist/esm/components/PasswordField/PasswordField.test.js.map +0 -1
  162. package/dist/esm/components/Progress/Progress.stories.js +0 -89
  163. package/dist/esm/components/Progress/Progress.stories.js.map +0 -1
  164. package/dist/esm/components/Progress/Progress.test.js +0 -32
  165. package/dist/esm/components/Progress/Progress.test.js.map +0 -1
  166. package/dist/esm/components/Radio/Radio.stories.js +0 -118
  167. package/dist/esm/components/Radio/Radio.stories.js.map +0 -1
  168. package/dist/esm/components/Radio/Radio.test.js +0 -139
  169. package/dist/esm/components/Radio/Radio.test.js.map +0 -1
  170. package/dist/esm/components/Radio/RadioButton.stories.js +0 -88
  171. package/dist/esm/components/Radio/RadioButton.stories.js.map +0 -1
  172. package/dist/esm/components/Radio/RadioButton.test.js +0 -118
  173. package/dist/esm/components/Radio/RadioButton.test.js.map +0 -1
  174. package/dist/esm/components/SVG/SVG.stories.js +0 -19
  175. package/dist/esm/components/SVG/SVG.stories.js.map +0 -1
  176. package/dist/esm/components/SVG/SVG.test.js +0 -26
  177. package/dist/esm/components/SVG/SVG.test.js.map +0 -1
  178. package/dist/esm/components/Segment/Segment.stories.js +0 -112
  179. package/dist/esm/components/Segment/Segment.stories.js.map +0 -1
  180. package/dist/esm/components/Select/Select.stories.js +0 -79
  181. package/dist/esm/components/Select/Select.stories.js.map +0 -1
  182. package/dist/esm/components/Select/Select.test.js +0 -94
  183. package/dist/esm/components/Select/Select.test.js.map +0 -1
  184. package/dist/esm/components/Slider/Slider.stories.js +0 -63
  185. package/dist/esm/components/Slider/Slider.stories.js.map +0 -1
  186. package/dist/esm/components/Slider/Slider.test.js +0 -58
  187. package/dist/esm/components/Slider/Slider.test.js.map +0 -1
  188. package/dist/esm/components/Table/Table.stories.js +0 -15
  189. package/dist/esm/components/Table/Table.stories.js.map +0 -1
  190. package/dist/esm/components/Table/Table.test.js +0 -73
  191. package/dist/esm/components/Table/Table.test.js.map +0 -1
  192. package/dist/esm/components/Text/Text.stories.js +0 -31
  193. package/dist/esm/components/Text/Text.stories.js.map +0 -1
  194. package/dist/esm/components/Text/Text.test.js +0 -31
  195. package/dist/esm/components/Text/Text.test.js.map +0 -1
  196. package/dist/esm/components/TextArea/TextArea.stories.js +0 -80
  197. package/dist/esm/components/TextArea/TextArea.stories.js.map +0 -1
  198. package/dist/esm/components/TextArea/TextArea.test.js +0 -84
  199. package/dist/esm/components/TextArea/TextArea.test.js.map +0 -1
  200. package/dist/esm/components/TextAreaInput/TextAreaInput.test.js +0 -42
  201. package/dist/esm/components/TextAreaInput/TextAreaInput.test.js.map +0 -1
  202. package/dist/esm/components/TextField/TextField.stories.js +0 -103
  203. package/dist/esm/components/TextField/TextField.stories.js.map +0 -1
  204. package/dist/esm/components/TextField/TextField.test.js +0 -123
  205. package/dist/esm/components/TextField/TextField.test.js.map +0 -1
  206. package/dist/esm/components/Title/Title.stories.js +0 -16
  207. package/dist/esm/components/Title/Title.stories.js.map +0 -1
  208. package/dist/esm/components/Title/Title.test.js +0 -20
  209. package/dist/esm/components/Title/Title.test.js.map +0 -1
  210. package/dist/esm/components/VisuallyHidden/VisuallyHidden.stories.js +0 -12
  211. package/dist/esm/components/VisuallyHidden/VisuallyHidden.stories.js.map +0 -1
  212. package/dist/esm/contexts/ThemeContext/ThemeContext.test.js +0 -10
  213. package/dist/esm/contexts/ThemeContext/ThemeContext.test.js.map +0 -1
  214. package/dist/esm/hooks/useBreakpoint/useBreakpoint.stories.js +0 -40
  215. package/dist/esm/hooks/useBreakpoint/useBreakpoint.stories.js.map +0 -1
  216. package/dist/esm/hooks/useBreakpoint/useBreakpoint.test.js +0 -242
  217. package/dist/esm/hooks/useBreakpoint/useBreakpoint.test.js.map +0 -1
  218. package/dist/esm/hooks/useButton/useButton.test.js +0 -141
  219. package/dist/esm/hooks/useButton/useButton.test.js.map +0 -1
@@ -1,79 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { useState } from "react";
3
- import { Button } from "../Button";
4
- import { Modal } from ".";
5
- import { excludeControls } from "../../utils/excludeControls";
6
- const Demo = (props) => {
7
- const [open, setOpen] = useState(false);
8
- return (_jsxs(_Fragment, { children: [_jsx(Button, Object.assign({ onClick: () => setOpen(true) }, { children: "Show Modal" })), _jsxs(Modal, Object.assign({}, props, { isOpen: open, onClose: () => setOpen(false) }, { children: [_jsx(Modal.Header, { children: "The Latin Modal" }), _jsx(Modal.Content, { children: "Aliquam fringilla quam vel purus rhoncus interdum in quis sapien. Sed at eros et lectus mollis posuere. Morbi augue augue, venenatis vel consectetur sed, vulputate et lorem. Integer venenatis nibh molestie commodo lobortis. Phasellus sit amet dignissim nisi. Vivamus nisi augue, scelerisque commodo libero vitae, vulputate interdum ex. Integer non risus sollicitudin, cursus ipsum vitae, rhoncus nulla." })] }))] }));
9
- };
10
- const FullScreenDemo = (props) => {
11
- const [open, setOpen] = useState(false);
12
- return (_jsxs(_Fragment, { children: [_jsx(Button, Object.assign({ onClick: () => setOpen(true), variant: "secondary" }, { children: "Show Fullscreen Modal \uD83D\uDE80" })), _jsxs(Modal, Object.assign({}, props, { size: "fullscreen", isOpen: open, onClose: () => setOpen(false), preventCloseOnEsc: true }, { children: [_jsx(Modal.Header, { children: "The Full Screen Modal" }), _jsx(Modal.Content, { children: "Aliquam fringilla quam vel purus rhoncus interdum in quis sapien. Sed at eros et lectus mollis posuere. Morbi augue augue, venenatis vel consectetur sed, vulputate et lorem. Integer venenatis nibh molestie commodo lobortis. Phasellus sit amet dignissim nisi. Vivamus nisi augue, scelerisque commodo libero vitae, vulputate interdum ex. Integer non risus sollicitudin, cursus ipsum vitae, rhoncus nulla." })] }))] }));
13
- };
14
- const WithCustomSizeDemo = (props) => {
15
- const [open, setOpen] = useState(false);
16
- return (_jsxs(_Fragment, { children: [_jsx(Button, Object.assign({ onClick: () => setOpen(true), variant: "secondary" }, { children: "Show Custom Size Modal \uD83D\uDD38" })), _jsxs(Modal, Object.assign({}, props, { size: "sm", isOpen: open, onClose: () => setOpen(false), preventCloseOnEsc: true }, { children: [_jsx(Modal.Header, { children: "The Custom Size Modal" }), _jsx(Modal.Content, { children: "Aliquam fringilla quam vel purus rhoncus interdum in quis sapien. Sed at eros et lectus mollis posuere. Morbi augue augue, venenatis vel consectetur sed, vulputate et lorem. Integer venenatis nibh molestie commodo lobortis. Phasellus sit amet dignissim nisi. Vivamus nisi augue, scelerisque commodo libero vitae, vulputate interdum ex. Integer non risus sollicitudin, cursus ipsum vitae, rhoncus nulla." })] }))] }));
17
- };
18
- const WithAnimationDemo = ({ animation, }) => {
19
- const [open, setOpen] = useState(false);
20
- return (_jsxs(_Fragment, { children: [_jsx(Button, Object.assign({ onClick: () => setOpen(true) }, { children: "Show Modal With Animation \uD83E\uDDD9\u200D\u2642\uFE0F" })), _jsxs(Modal, Object.assign({ isOpen: open, onClose: () => setOpen(false), animation: animation }, { children: [_jsx(Modal.Header, { children: "The Latin Modal" }), _jsx(Modal.Content, { children: "Aliquam fringilla quam vel purus rhoncus interdum in quis sapien. Sed at eros et lectus mollis posuere. Morbi augue augue, venenatis vel consectetur sed, vulputate et lorem. Integer venenatis nibh molestie commodo lobortis. Phasellus sit amet dignissim nisi. Vivamus nisi augue, scelerisque commodo libero vitae, vulputate interdum ex. Integer non risus sollicitudin, cursus ipsum vitae, rhoncus nulla." })] }))] }));
21
- };
22
- export default {
23
- title: "Components/Modal",
24
- component: Modal,
25
- argTypes: Object.assign({ animation: {
26
- options: ["slideUp", "fade", "neither"],
27
- control: { type: "radio" },
28
- mapping: {
29
- slideUp: "slideUp",
30
- fade: "fade",
31
- neither: undefined,
32
- },
33
- }, size: {
34
- control: { type: "radio" },
35
- options: ["md", "fullscreen"],
36
- } }, excludeControls("className", "onClose", "appElement", "parentSelector", "isOpen")),
37
- };
38
- export const Normal = {
39
- render: (args) => _jsx(Demo, Object.assign({}, args)),
40
- args: {
41
- isOpen: false,
42
- shouldFocusAfterRender: true,
43
- preventCloseOnEsc: false,
44
- closeLabel: "Close",
45
- size: "md",
46
- },
47
- };
48
- export const FullScreen = {
49
- render: (args) => _jsx(FullScreenDemo, Object.assign({}, args)),
50
- args: {
51
- isOpen: false,
52
- shouldFocusAfterRender: true,
53
- preventCloseOnEsc: false,
54
- closeLabel: "Close",
55
- size: "fullscreen",
56
- },
57
- };
58
- export const WithCustomSize = {
59
- render: (args) => _jsx(WithCustomSizeDemo, Object.assign({}, args)),
60
- args: {
61
- isOpen: false,
62
- shouldFocusAfterRender: true,
63
- preventCloseOnEsc: false,
64
- closeLabel: "Close",
65
- size: "sm",
66
- },
67
- };
68
- export const WithAnimation = {
69
- render: (args) => _jsx(WithAnimationDemo, Object.assign({}, args)),
70
- args: {
71
- isOpen: false,
72
- animation: "slideUp",
73
- shouldFocusAfterRender: true,
74
- preventCloseOnEsc: false,
75
- closeLabel: "Close",
76
- size: "md",
77
- },
78
- };
79
- //# sourceMappingURL=Modal.stories.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Modal.stories.js","sourceRoot":"","sources":["../../../../src/components/Modal/Modal.stories.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,KAAK,EAAc,MAAM,GAAG,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,MAAM,IAAI,GAAG,CAAC,KAAiB,EAAE,EAAE;IACjC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxC,OAAO,CACL,8BACE,KAAC,MAAM,kBAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,gCAAqB,EACzD,MAAC,KAAK,oBAAK,KAAK,IAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,iBAC3D,KAAC,KAAK,CAAC,MAAM,kCAA+B,EAC5C,KAAC,KAAK,CAAC,OAAO,qaAOE,KACV,IACP,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,KAAiB,EAAE,EAAE;IAC3C,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxC,OAAO,CACL,8BACE,KAAC,MAAM,kBAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAC,WAAW,wDAEhD,EACT,MAAC,KAAK,oBACA,KAAK,IACT,IAAI,EAAC,YAAY,EACjB,MAAM,EAAE,IAAI,EACZ,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAC7B,iBAAiB,uBAEjB,KAAC,KAAK,CAAC,MAAM,wCAAqC,EAClD,KAAC,KAAK,CAAC,OAAO,qaAOE,KACV,IACP,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,KAAiB,EAAE,EAAE;IAC/C,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxC,OAAO,CACL,8BACE,KAAC,MAAM,kBAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAC,WAAW,yDAEhD,EACT,MAAC,KAAK,oBACA,KAAK,IACT,IAAI,EAAC,IAAI,EACT,MAAM,EAAE,IAAI,EACZ,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAC7B,iBAAiB,uBAEjB,KAAC,KAAK,CAAC,MAAM,wCAAqC,EAClD,KAAC,KAAK,CAAC,OAAO,qaAOE,KACV,IACP,CACJ,CAAC;AACJ,CAAC,CAAC;AAMF,MAAM,iBAAiB,GAAG,CAAC,EACzB,SAAS,GAC2B,EAAE,EAAE;IACxC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxC,OAAO,CACL,8BACE,KAAC,MAAM,kBAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,8EAE3B,EACT,MAAC,KAAK,kBAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,SAAS,iBACtE,KAAC,KAAK,CAAC,MAAM,kCAA+B,EAC5C,KAAC,KAAK,CAAC,OAAO,qaAOE,KACV,IACP,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe;IACb,KAAK,EAAE,kBAAkB;IACzB,SAAS,EAAE,KAAK;IAChB,QAAQ,kBACN,SAAS,EAAE;YACT,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC;YACvC,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;YAC1B,OAAO,EAAE;gBACP,OAAO,EAAE,SAAS;gBAClB,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,SAAS;aACnB;SACF,EACD,IAAI,EAAE;YACJ,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;YAC1B,OAAO,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC;SAC9B,IACE,eAAe,CAChB,WAAW,EACX,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,QAAQ,CACT,CACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAsB;IACvC,MAAM,EAAE,CAAC,IAAgB,EAAE,EAAE,CAAC,KAAC,IAAI,oBAAK,IAAI,EAAI;IAChD,IAAI,EAAE;QACJ,MAAM,EAAE,KAAK;QACb,sBAAsB,EAAE,IAAI;QAC5B,iBAAiB,EAAE,KAAK;QACxB,UAAU,EAAE,OAAO;QACnB,IAAI,EAAE,IAAI;KACX;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAgC;IACrD,MAAM,EAAE,CAAC,IAAgB,EAAE,EAAE,CAAC,KAAC,cAAc,oBAAK,IAAI,EAAI;IAC1D,IAAI,EAAE;QACJ,MAAM,EAAE,KAAK;QACb,sBAAsB,EAAE,IAAI;QAC5B,iBAAiB,EAAE,KAAK;QACxB,UAAU,EAAE,OAAO;QACnB,IAAI,EAAE,YAAY;KACnB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAoC;IAC7D,MAAM,EAAE,CAAC,IAAgB,EAAE,EAAE,CAAC,KAAC,kBAAkB,oBAAK,IAAI,EAAI;IAC9D,IAAI,EAAE;QACJ,MAAM,EAAE,KAAK;QACb,sBAAsB,EAAE,IAAI;QAC5B,iBAAiB,EAAE,KAAK;QACxB,UAAU,EAAE,OAAO;QACnB,IAAI,EAAE,IAAI;KACX;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAmC;IAC3D,MAAM,EAAE,CAAC,IAAgB,EAAE,EAAE,CAAC,KAAC,iBAAiB,oBAAK,IAAI,EAAI;IAC7D,IAAI,EAAE;QACJ,MAAM,EAAE,KAAK;QACb,SAAS,EAAE,SAAS;QACpB,sBAAsB,EAAE,IAAI;QAC5B,iBAAiB,EAAE,KAAK;QACxB,UAAU,EAAE,OAAO;QACnB,IAAI,EAAE,IAAI;KACX;CACF,CAAC"}
@@ -1,135 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { fireEvent, render, screen } from "@testing-library/react";
3
- import userEvent from "@testing-library/user-event";
4
- import { Modal } from ".";
5
- const MODAL_CLASS_NAME = "mobius/Modal";
6
- const OVERLAY_CLASS_NAME = "mobius/ModalOverlay";
7
- const BODY_CLASS_NAME = "mobius/Modal--is-open";
8
- const MODAL_CLOSE_CLASS_NAME = "mobius/ModalClose";
9
- const mockMatchMedia = (matches) => {
10
- Object.defineProperty(window, "matchMedia", {
11
- writable: true,
12
- configurable: true,
13
- value: jest.fn().mockImplementation(query => ({
14
- matches,
15
- media: query,
16
- onchange: null,
17
- addListener: jest.fn(),
18
- removeListener: jest.fn(),
19
- addEventListener: jest.fn(),
20
- removeEventListener: jest.fn(),
21
- dispatchEvent: jest.fn(),
22
- })),
23
- });
24
- };
25
- describe("Modal", () => {
26
- beforeEach(() => {
27
- mockMatchMedia(true);
28
- });
29
- it("should render without errors", () => {
30
- const { container } = render(_jsx(Modal, { isOpen: true, onClose: () => { } }));
31
- expect(container).toBeTruthy();
32
- });
33
- it("should render with default class names", () => {
34
- render(_jsx(Modal, Object.assign({ isOpen: true, onClose: () => { } }, { children: _jsx(Modal.Header, {}) })));
35
- const dialog = screen.getByRole("dialog");
36
- const closeButton = screen.getByLabelText("Close");
37
- expect(dialog).toHaveClass(MODAL_CLASS_NAME);
38
- expect(dialog.parentElement).toHaveClass(OVERLAY_CLASS_NAME);
39
- expect(document.body).toHaveClass(BODY_CLASS_NAME);
40
- expect(closeButton).toHaveClass(MODAL_CLOSE_CLASS_NAME);
41
- });
42
- it("should render with custom class name", () => {
43
- render(_jsx(Modal, Object.assign({ className: "my-test-modal", isOpen: true, onClose: () => { } }, { children: _jsx(Modal.Header, {}) })));
44
- const dialog = screen.getByRole("dialog");
45
- const closeButton = screen.getByLabelText("Close");
46
- expect(dialog).toHaveClass(MODAL_CLASS_NAME);
47
- expect(dialog).toHaveClass("my-test-modal");
48
- expect(dialog.parentElement).toHaveClass(OVERLAY_CLASS_NAME);
49
- expect(document.body).toHaveClass(BODY_CLASS_NAME);
50
- expect(closeButton).toHaveClass(MODAL_CLOSE_CLASS_NAME);
51
- });
52
- describe("given the size prop is set", () => {
53
- it.each(["fullscreen", "xs", "sm", "md", "lg", "xl", "xxl"])("to %s, it should render with --is-%s class name", size => {
54
- render(_jsx(Modal, { isOpen: true, onClose: () => { }, size: size }));
55
- const dialog = screen.getByRole("dialog");
56
- expect(dialog).toHaveClass(`--is-${size}`);
57
- });
58
- });
59
- describe("given the animation prop is set to slideUp", () => {
60
- it("should render with appropriate class name", () => {
61
- render(_jsx(Modal, { isOpen: true, onClose: () => { }, animation: "slideUp" }));
62
- const dialog = screen.getByRole("dialog");
63
- expect(dialog).toHaveClass("--slide-up");
64
- expect(dialog.parentElement).toHaveClass("--fade");
65
- });
66
- });
67
- describe("given the animation prop is set to fade", () => {
68
- it("should render with appropriate class name", () => {
69
- render(_jsx(Modal, { isOpen: true, onClose: () => { }, animation: "fade" }));
70
- const dialog = screen.getByRole("dialog");
71
- expect(dialog).toHaveClass("--fade");
72
- expect(dialog.parentElement).toHaveClass("--fade");
73
- });
74
- });
75
- describe("given the user has reduced motion preference enabled", () => {
76
- beforeEach(() => {
77
- mockMatchMedia(false);
78
- });
79
- afterEach(() => {
80
- jest.resetAllMocks();
81
- });
82
- it("renders with appropriate class name", () => {
83
- render(_jsx(Modal, { isOpen: true, onClose: () => { } }));
84
- const dialog = screen.getByRole("dialog");
85
- expect(dialog).toHaveClass("--has-reduced-motion");
86
- });
87
- });
88
- describe("pressing ESC key", () => {
89
- it("should close the modal", async () => {
90
- const content = "Sample content";
91
- let modalOpen = true;
92
- const onClose = () => {
93
- modalOpen = false;
94
- };
95
- render(_jsx(Modal, Object.assign({ isOpen: modalOpen, onClose: onClose }, { children: content })));
96
- const modalContent = screen.getByText(content);
97
- expect(modalContent).toBeInTheDocument();
98
- await userEvent.keyboard("[Escape]");
99
- expect(modalOpen).toBe(false);
100
- });
101
- });
102
- describe("pressing close button", () => {
103
- it("should close the modal", async () => {
104
- const content = "Sample content";
105
- let modalOpen = true;
106
- const onClose = () => {
107
- modalOpen = false;
108
- };
109
- render(_jsxs(Modal, Object.assign({ isOpen: modalOpen, onClose: onClose }, { children: [_jsx(Modal.Header, {}), content] })));
110
- const modalContent = screen.getByText(content);
111
- expect(modalContent).toBeInTheDocument();
112
- const closeButton = screen.getByLabelText("Close");
113
- await fireEvent.click(closeButton);
114
- expect(modalOpen).toBe(false);
115
- });
116
- });
117
- describe("closeLabel prop", () => {
118
- describe("given the label is defined", () => {
119
- it("should render the label", () => {
120
- const closeLabel = "Leave";
121
- render(_jsxs(Modal, Object.assign({ isOpen: true, onClose: () => { }, closeLabel: closeLabel }, { children: [_jsx(Modal.Header, {}), "Sample content"] })));
122
- const closeButton = screen.getByText(closeLabel);
123
- expect(closeButton).toBeInTheDocument();
124
- });
125
- });
126
- describe("given the label is not defined", () => {
127
- it("should render the default close button", () => {
128
- render(_jsx(Modal, Object.assign({ isOpen: true, onClose: () => { } }, { children: _jsx(Modal.Header, {}) })));
129
- const closeButton = screen.getByLabelText("Close");
130
- expect(closeButton).toBeInTheDocument();
131
- });
132
- });
133
- });
134
- });
135
- //# sourceMappingURL=Modal.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Modal.test.js","sourceRoot":"","sources":["../../../../src/components/Modal/Modal.test.tsx"],"names":[],"mappings":"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"}
@@ -1,103 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { NumberField } from "./NumberField";
3
- import { excludeControls } from "../../utils/excludeControls";
4
- export default {
5
- title: "Forms/NumberField",
6
- component: NumberField,
7
- argTypes: Object.assign({ validationState: {
8
- options: ["valid", "invalid", "neither"],
9
- control: { type: "radio" },
10
- mapping: {
11
- valid: "valid",
12
- invalid: "invalid",
13
- neither: "",
14
- },
15
- }, minValue: {
16
- control: {
17
- control: { type: "range" },
18
- min: 0,
19
- max: 10,
20
- step: 1,
21
- },
22
- }, maxValue: {
23
- control: {
24
- control: { type: "range" },
25
- min: 0,
26
- max: 10,
27
- step: 1,
28
- },
29
- } }, excludeControls("className", "value", "aria-describedby")),
30
- args: {
31
- minValue: 0,
32
- maxValue: 100,
33
- },
34
- };
35
- export const Normal = {
36
- render: (args) => _jsx(NumberField, Object.assign({}, args)),
37
- args: {
38
- label: "Number field",
39
- defaultValue: 0,
40
- errorMessage: "",
41
- step: 1,
42
- isRequired: false,
43
- },
44
- };
45
- export const Formatted = {
46
- render: (args) => _jsx(NumberField, Object.assign({}, args)),
47
- args: {
48
- label: "Number field",
49
- defaultValue: 0,
50
- formatOptions: {
51
- style: "percent",
52
- },
53
- errorMessage: "",
54
- step: 1,
55
- isRequired: false,
56
- },
57
- };
58
- export const LimitedRange = {
59
- render: (args) => _jsx(NumberField, Object.assign({}, args)),
60
- args: {
61
- label: "Number field",
62
- minValue: -10,
63
- maxValue: 10,
64
- defaultValue: 0,
65
- errorMessage: "",
66
- step: 1,
67
- isRequired: false,
68
- },
69
- };
70
- export const Valid = {
71
- render: (args) => _jsx(NumberField, Object.assign({}, args)),
72
- args: {
73
- label: "Number field",
74
- validationState: "valid",
75
- defaultValue: 0,
76
- errorMessage: "",
77
- step: 1,
78
- isRequired: false,
79
- },
80
- };
81
- export const Invalid = {
82
- render: (args) => _jsx(NumberField, Object.assign({}, args)),
83
- args: {
84
- label: "Number field",
85
- validationState: "invalid",
86
- errorMessage: "Error message",
87
- defaultValue: 0,
88
- step: 1,
89
- isRequired: false,
90
- },
91
- };
92
- export const Disabled = {
93
- render: (args) => _jsx(NumberField, Object.assign({}, args)),
94
- args: {
95
- label: "Number field",
96
- isDisabled: true,
97
- defaultValue: 0,
98
- errorMessage: "",
99
- step: 1,
100
- isRequired: false,
101
- },
102
- };
103
- //# sourceMappingURL=NumberField.stories.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NumberField.stories.js","sourceRoot":"","sources":["../../../../src/components/NumberField/NumberField.stories.tsx"],"names":[],"mappings":"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"}
@@ -1,81 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { render, screen } from "@testing-library/react";
3
- import { SSRProvider } from "@react-aria/ssr";
4
- import userEvent from "@testing-library/user-event";
5
- import { NumberField } from ".";
6
- describe("NumberField", () => {
7
- it("should render without errors", () => {
8
- render(_jsx(NumberField, { label: "NumberField" }));
9
- });
10
- it("should match snapshot", () => {
11
- const { asFragment } = render(_jsx(SSRProvider, { children: _jsx(NumberField, { label: "NumberField" }) }));
12
- expect(asFragment()).toMatchSnapshot();
13
- });
14
- it("should render with label", () => {
15
- const { getByText } = render(_jsx(NumberField, { label: "Sample label" }));
16
- expect(getByText("Sample label")).toBeInTheDocument();
17
- });
18
- it("should render with error message", () => {
19
- const { getByLabelText } = render(_jsx(NumberField, { label: "Number", errorMessage: "Sample error message" }));
20
- expect(getByLabelText("Number")).toHaveAccessibleDescription("Sample error message");
21
- });
22
- it("should render with disabled state", () => {
23
- const { getByLabelText } = render(_jsx(NumberField, { label: "Number", isDisabled: true }));
24
- expect(getByLabelText("Number")).toBeDisabled();
25
- });
26
- it("should render with custom class name", () => {
27
- const { getByLabelText } = render(_jsx(NumberField, { label: "Number", className: "sample-class" }));
28
- expect(getByLabelText("Number")).toHaveClass("sample-class");
29
- });
30
- it("should disable the decrement button when at minimum value", () => {
31
- const { getByLabelText } = render(_jsx(NumberField, { label: "Number", minValue: 10, value: 10 }));
32
- expect(getByLabelText("Decrease Number")).toBeDisabled();
33
- });
34
- it("should disable the increment button when at maximum value", () => {
35
- const { getByLabelText } = render(_jsx(NumberField, { label: "Number", maxValue: 10, value: 10 }));
36
- expect(getByLabelText("Increase Number")).toBeDisabled();
37
- });
38
- describe("disabled", () => {
39
- it("should disable the input when disabled", () => {
40
- const { getByLabelText } = render(_jsx(NumberField, { label: "Number", isDisabled: true, value: 10 }));
41
- expect(getByLabelText("Number")).toBeDisabled();
42
- });
43
- it("should disable the increment button when disabled", () => {
44
- const { getByLabelText } = render(_jsx(NumberField, { label: "Number", isDisabled: true, value: 10 }));
45
- expect(getByLabelText("Increase Number")).toBeDisabled();
46
- });
47
- it("should disable the decrement button when disabled", () => {
48
- const { getByLabelText } = render(_jsx(NumberField, { label: "Number", isDisabled: true, value: 10 }));
49
- expect(getByLabelText("Decrease Number")).toBeDisabled();
50
- });
51
- });
52
- it("should reformat on blur", async () => {
53
- const { getByLabelText } = render(_jsx(NumberField, { label: "Number", formatOptions: {
54
- style: "percent",
55
- } }));
56
- await userEvent.tab();
57
- await userEvent.type(getByLabelText("Number"), "42");
58
- await userEvent.tab();
59
- expect(getByLabelText("Number")).toHaveValue("42%");
60
- });
61
- describe("isRequired", () => {
62
- it("should set aria-required to true", () => {
63
- render(_jsx(NumberField, { label: "Number", isDisabled: true, value: 10, isRequired: true }));
64
- expect(screen.getByLabelText("Number")).toHaveAttribute("aria-required", "true");
65
- });
66
- it("should have className of --is-required when true", () => {
67
- render(_jsx(NumberField, { label: "Number", isDisabled: true, value: 10, isRequired: true }));
68
- expect(screen.getByLabelText("Number")).toHaveClass("--is-required");
69
- });
70
- it("should have className of --is-optional when false", () => {
71
- render(_jsx(NumberField, { label: "Number", isDisabled: true, value: 10, isRequired: false }));
72
- expect(screen.getByLabelText("Number")).toHaveClass("--is-optional");
73
- });
74
- it("should have neither --is-required nor --is-optional when unset", () => {
75
- render(_jsx(NumberField, { label: "Number", isDisabled: true, value: 10 }));
76
- expect(screen.getByLabelText("Number")).not.toHaveClass("--is-required");
77
- expect(screen.getByLabelText("Number")).not.toHaveClass("--is-optional");
78
- });
79
- });
80
- });
81
- //# sourceMappingURL=NumberField.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NumberField.test.js","sourceRoot":"","sources":["../../../../src/components/NumberField/NumberField.test.tsx"],"names":[],"mappings":"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"}
@@ -1,31 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { PasswordField } from "./PasswordField";
3
- import { excludeControls } from "../../utils/excludeControls";
4
- export default {
5
- title: "Forms/PasswordField",
6
- component: PasswordField,
7
- argTypes: Object.assign({ validationState: {
8
- options: ["valid", "invalid", "neither"],
9
- control: { type: "radio" },
10
- mapping: {
11
- valid: "valid",
12
- invalid: "invalid",
13
- neither: "",
14
- },
15
- }, type: {
16
- control: { type: "radio" },
17
- options: ["text", "password"],
18
- } }, excludeControls("className")),
19
- };
20
- export const Normal = {
21
- render: (args) => _jsx(PasswordField, Object.assign({}, args)),
22
- args: {
23
- label: "Password",
24
- placeholder: "",
25
- isDisabled: false,
26
- errorMessage: "",
27
- type: "password",
28
- isRequired: false,
29
- },
30
- };
31
- //# sourceMappingURL=PasswordField.stories.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PasswordField.stories.js","sourceRoot":"","sources":["../../../../src/components/PasswordField/PasswordField.stories.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAsB,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,eAAe;IACb,KAAK,EAAE,qBAAqB;IAC5B,SAAS,EAAE,aAAa;IACxB,QAAQ,kBACN,eAAe,EAAE;YACf,OAAO,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC;YACxC,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;YAC1B,OAAO,EAAE;gBACP,KAAK,EAAE,OAAO;gBACd,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE,EAAE;aACZ;SACF,EACD,IAAI,EAAE;YACJ,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;YAC1B,OAAO,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC;SAC9B,IACE,eAAe,CAAC,WAAW,CAAC,CAChC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAA+B;IAChD,MAAM,EAAE,CAAC,IAAwB,EAAE,EAAE,CAAC,KAAC,aAAa,oBAAK,IAAI,EAAI;IACjE,IAAI,EAAE;QACJ,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,EAAE;QACf,UAAU,EAAE,KAAK;QACjB,YAAY,EAAE,EAAE;QAChB,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,KAAK;KAClB;CACF,CAAC"}
@@ -1,29 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { render, screen } from "@testing-library/react";
3
- import userEvent from "@testing-library/user-event";
4
- import { PasswordField } from "./PasswordField";
5
- describe("PasswordField", () => {
6
- it("should render without errors", () => {
7
- const { container } = render(_jsx(PasswordField, { label: "Password" }));
8
- expect(container).toBeInTheDocument();
9
- });
10
- it("should hide the password by default", () => {
11
- render(_jsx(PasswordField, { label: "Password", "data-testid": "password-field" }));
12
- expect(screen.getByTestId("password-field")).toHaveAttribute("type", "password");
13
- });
14
- it("should show the password on request", async () => {
15
- render(_jsx(PasswordField, { label: "Password", "data-testid": "password-field" }));
16
- await userEvent.click(screen.getByTestId("show-hide-button"));
17
- expect(screen.getByTestId("password-field")).toHaveAttribute("type", "text");
18
- });
19
- it("should return focus to input after pressing show/hide", async () => {
20
- render(_jsx(PasswordField, { label: "Password", "data-testid": "password-field" }));
21
- await userEvent.tab();
22
- expect(screen.getByTestId("password-field")).toHaveFocus();
23
- // Press Show button with keyboard
24
- await userEvent.tab();
25
- await userEvent.keyboard("{enter}");
26
- expect(screen.getByTestId("password-field")).toHaveFocus();
27
- });
28
- });
29
- //# sourceMappingURL=PasswordField.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PasswordField.test.js","sourceRoot":"","sources":["../../../../src/components/PasswordField/PasswordField.test.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,SAAS,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,KAAC,aAAa,IAAC,KAAK,EAAC,UAAU,GAAG,CAAC,CAAC;QACjE,MAAM,CAAC,SAAS,CAAC,CAAC,iBAAiB,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,CAAC,KAAC,aAAa,IAAC,KAAK,EAAC,UAAU,iBAAa,gBAAgB,GAAG,CAAC,CAAC;QACxE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC,eAAe,CAC1D,MAAM,EACN,UAAU,CACX,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,CAAC,KAAC,aAAa,IAAC,KAAK,EAAC,UAAU,iBAAa,gBAAgB,GAAG,CAAC,CAAC;QACxE,MAAM,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC9D,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC,eAAe,CAC1D,MAAM,EACN,MAAM,CACP,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,CAAC,KAAC,aAAa,IAAC,KAAK,EAAC,UAAU,iBAAa,gBAAgB,GAAG,CAAC,CAAC;QACxE,MAAM,SAAS,CAAC,GAAG,EAAE,CAAC;QACtB,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAE3D,kCAAkC;QAClC,MAAM,SAAS,CAAC,GAAG,EAAE,CAAC;QACtB,MAAM,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAEpC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,89 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { Progress } from "./Progress";
3
- import { excludeControls } from "../../utils/excludeControls";
4
- const customValueFormatter = (value, minValue, maxValue) => `Step ${value} of ${maxValue}`;
5
- export default {
6
- title: "Components/Progress",
7
- component: Progress,
8
- argTypes: Object.assign({ value: {
9
- control: {
10
- control: { type: "range" },
11
- min: 0,
12
- max: 10,
13
- step: 1,
14
- },
15
- }, minValue: {
16
- control: {
17
- control: { type: "range" },
18
- min: 0,
19
- max: 10,
20
- step: 1,
21
- },
22
- }, maxValue: {
23
- control: {
24
- control: { type: "range" },
25
- min: 0,
26
- max: 10,
27
- step: 1,
28
- },
29
- }, label: {
30
- control: {
31
- control: { type: "text" },
32
- },
33
- }, variant: {
34
- control: { type: "radio" },
35
- options: ["primary", "secondary"],
36
- } }, excludeControls("className", "valueFormatter")),
37
- };
38
- export const Primary = {
39
- render: (args) => _jsx(Progress, Object.assign({}, args)),
40
- args: {
41
- value: 2,
42
- minValue: 0,
43
- maxValue: 10,
44
- label: "Progress",
45
- variant: "primary",
46
- showValueLabel: true,
47
- },
48
- };
49
- export const Secondary = {
50
- render: (args) => _jsx(Progress, Object.assign({}, args)),
51
- args: {
52
- value: 2,
53
- minValue: 0,
54
- maxValue: 10,
55
- label: "Secondary",
56
- variant: "secondary",
57
- showValueLabel: true,
58
- },
59
- };
60
- export const NoVisibleLabel = {
61
- render: (args) => _jsx(Progress, Object.assign({}, args)),
62
- args: {
63
- value: 1,
64
- minValue: 0,
65
- maxValue: 4,
66
- label: "",
67
- variant: "primary",
68
- "aria-label": "Progress",
69
- showValueLabel: true,
70
- },
71
- parameters: {
72
- controls: {
73
- exclude: ["aria-label"],
74
- },
75
- },
76
- };
77
- export const CustomValueFormat = {
78
- render: (args) => _jsx(Progress, Object.assign({}, args)),
79
- args: {
80
- value: 1,
81
- minValue: 0,
82
- maxValue: 4,
83
- label: "Progress",
84
- variant: "primary",
85
- showValueLabel: true,
86
- valueFormatter: customValueFormatter,
87
- },
88
- };
89
- //# sourceMappingURL=Progress.stories.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Progress.stories.js","sourceRoot":"","sources":["../../../../src/components/Progress/Progress.stories.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAiB,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,MAAM,oBAAoB,GAAG,CAC3B,KAAa,EACb,QAAgB,EAChB,QAAgB,EAChB,EAAE,CAAC,QAAQ,KAAK,OAAO,QAAQ,EAAE,CAAC;AAEpC,eAAe;IACb,KAAK,EAAE,qBAAqB;IAC5B,SAAS,EAAE,QAAQ;IACnB,QAAQ,kBACN,KAAK,EAAE;YACL,OAAO,EAAE;gBACP,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;gBAC1B,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,EAAE;gBACP,IAAI,EAAE,CAAC;aACR;SACF,EACD,QAAQ,EAAE;YACR,OAAO,EAAE;gBACP,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;gBAC1B,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,EAAE;gBACP,IAAI,EAAE,CAAC;aACR;SACF,EACD,QAAQ,EAAE;YACR,OAAO,EAAE;gBACP,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;gBAC1B,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,EAAE;gBACP,IAAI,EAAE,CAAC;aACR;SACF,EACD,KAAK,EAAE;YACL,OAAO,EAAE;gBACP,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;aAC1B;SACF,EACD,OAAO,EAAE;YACP,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;YAC1B,OAAO,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC;SAClC,IACE,eAAe,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAClD;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAA0B;IAC5C,MAAM,EAAE,CAAC,IAAmB,EAAE,EAAE,CAAC,KAAC,QAAQ,oBAAK,IAAI,EAAI;IACvD,IAAI,EAAE;QACJ,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,UAAU;QACjB,OAAO,EAAE,SAAS;QAClB,cAAc,EAAE,IAAI;KACrB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAA0B;IAC9C,MAAM,EAAE,CAAC,IAAmB,EAAE,EAAE,CAAC,KAAC,QAAQ,oBAAK,IAAI,EAAI;IACvD,IAAI,EAAE;QACJ,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,WAAW;QAClB,OAAO,EAAE,WAAW;QACpB,cAAc,EAAE,IAAI;KACrB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAA0B;IACnD,MAAM,EAAE,CAAC,IAAmB,EAAE,EAAE,CAAC,KAAC,QAAQ,oBAAK,IAAI,EAAI;IACvD,IAAI,EAAE;QACJ,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,CAAC;QACX,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,SAAS;QAClB,YAAY,EAAE,UAAU;QACxB,cAAc,EAAE,IAAI;KACrB;IACD,UAAU,EAAE;QACV,QAAQ,EAAE;YACR,OAAO,EAAE,CAAC,YAAY,CAAC;SACxB;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAA0B;IACtD,MAAM,EAAE,CAAC,IAAmB,EAAE,EAAE,CAAC,KAAC,QAAQ,oBAAK,IAAI,EAAI;IACvD,IAAI,EAAE;QACJ,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,CAAC;QACX,KAAK,EAAE,UAAU;QACjB,OAAO,EAAE,SAAS;QAClB,cAAc,EAAE,IAAI;QACpB,cAAc,EAAE,oBAAoB;KACrC;CACF,CAAC"}
@@ -1,32 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { render } from "@testing-library/react";
3
- import { Progress } from ".";
4
- describe("Progress", () => {
5
- describe("classnames", () => {
6
- let result;
7
- beforeEach(() => {
8
- result = render(_jsx(Progress, { label: "Progress", className: "test", minValue: 0, maxValue: 10 }));
9
- });
10
- const classNames = ["mobius", "mobius/Progress", "test"];
11
- it.each(classNames)("should have classname %s", className => {
12
- expect(result.container.firstChild).toHaveClass(className);
13
- });
14
- });
15
- const valueFormatter = (value, minValue, maxValue) => `${value},${minValue},${maxValue}`;
16
- describe("custom formatter", () => {
17
- const value = 5;
18
- const minValue = 0;
19
- const maxValue = 10;
20
- let result;
21
- beforeEach(() => {
22
- result = render(_jsx(Progress, { label: "Progress", minValue: minValue, maxValue: maxValue, value: value, valueFormatter: valueFormatter }));
23
- });
24
- it("should use custom formatter for aria-valuetext", () => {
25
- expect(result.container.firstChild).toHaveAttribute("aria-valuetext", `${value},${minValue},${maxValue}`);
26
- });
27
- it("should use custom formatter for value text", () => {
28
- expect(result.getByTestId("value-label")).toHaveTextContent(`${value},${minValue},${maxValue}`);
29
- });
30
- });
31
- });
32
- //# sourceMappingURL=Progress.test.js.map