@simplybusiness/mobius 4.1.1 → 4.2.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 (212) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/dist/cjs/components/Accordion/Accordion.js +3 -3
  3. package/dist/cjs/components/Accordion/Accordion.js.map +1 -1
  4. package/dist/cjs/components/Accordion/Accordion.stories.d.ts +2 -2
  5. package/dist/cjs/components/Accordion/Accordion.stories.js +8 -8
  6. package/dist/cjs/components/Accordion/Accordion.stories.js.map +1 -1
  7. package/dist/cjs/components/Accordion/Accordion.test.js +6 -0
  8. package/dist/cjs/components/Accordion/Accordion.test.js.map +1 -1
  9. package/dist/cjs/components/Alert/Alert.stories.js +4 -3
  10. package/dist/cjs/components/Alert/Alert.stories.js.map +1 -1
  11. package/dist/cjs/components/Box/Box.stories.js +1 -1
  12. package/dist/cjs/components/Box/Box.stories.js.map +1 -1
  13. package/dist/cjs/components/Breadcrumbs/Breadcrumbs.stories.d.ts +0 -1
  14. package/dist/cjs/components/Breadcrumbs/Breadcrumbs.stories.js +0 -2
  15. package/dist/cjs/components/Breadcrumbs/Breadcrumbs.stories.js.map +1 -1
  16. package/dist/cjs/components/Button/Button.stories.js +1 -1
  17. package/dist/cjs/components/Button/Button.stories.js.map +1 -1
  18. package/dist/cjs/components/Checkbox/Checkbox.stories.js +1 -1
  19. package/dist/cjs/components/Checkbox/Checkbox.stories.js.map +1 -1
  20. package/dist/cjs/components/Checkbox/CheckboxGroup.stories.js +1 -1
  21. package/dist/cjs/components/Checkbox/CheckboxGroup.stories.js.map +1 -1
  22. package/dist/cjs/components/Container/Container.stories.d.ts +0 -1
  23. package/dist/cjs/components/Container/Container.stories.js +0 -2
  24. package/dist/cjs/components/Container/Container.stories.js.map +1 -1
  25. package/dist/cjs/components/Divider/Divider.stories.d.ts +0 -1
  26. package/dist/cjs/components/Divider/Divider.stories.js +0 -2
  27. package/dist/cjs/components/Divider/Divider.stories.js.map +1 -1
  28. package/dist/cjs/components/Drawer/Drawer.stories.js +1 -1
  29. package/dist/cjs/components/Drawer/Drawer.stories.js.map +1 -1
  30. package/dist/cjs/components/DropdownMenu/DropdownMenu.stories.js +1 -1
  31. package/dist/cjs/components/DropdownMenu/DropdownMenu.stories.js.map +1 -1
  32. package/dist/cjs/components/ErrorMessage/ErrorMessage.stories.d.ts +0 -1
  33. package/dist/cjs/components/ErrorMessage/ErrorMessage.stories.js +0 -2
  34. package/dist/cjs/components/ErrorMessage/ErrorMessage.stories.js.map +1 -1
  35. package/dist/cjs/components/Fieldset/Fieldset.stories.js +1 -1
  36. package/dist/cjs/components/Fieldset/Fieldset.stories.js.map +1 -1
  37. package/dist/cjs/components/Flex/Flex.stories.js +1 -1
  38. package/dist/cjs/components/Flex/Flex.stories.js.map +1 -1
  39. package/dist/cjs/components/Grid/Grid.stories.js +18 -10
  40. package/dist/cjs/components/Grid/Grid.stories.js.map +1 -1
  41. package/dist/cjs/components/Icon/Icon.js +1 -1
  42. package/dist/cjs/components/Icon/Icon.js.map +1 -1
  43. package/dist/cjs/components/Icon/Icon.stories.js +1 -1
  44. package/dist/cjs/components/Icon/Icon.stories.js.map +1 -1
  45. package/dist/cjs/components/Icon/Icon.test.js +5 -0
  46. package/dist/cjs/components/Icon/Icon.test.js.map +1 -1
  47. package/dist/cjs/components/Image/Image.stories.d.ts +0 -1
  48. package/dist/cjs/components/Image/Image.stories.js +0 -2
  49. package/dist/cjs/components/Image/Image.stories.js.map +1 -1
  50. package/dist/cjs/components/Label/Label.stories.d.ts +0 -1
  51. package/dist/cjs/components/Label/Label.stories.js +0 -2
  52. package/dist/cjs/components/Label/Label.stories.js.map +1 -1
  53. package/dist/cjs/components/Link/Link.stories.js +1 -1
  54. package/dist/cjs/components/Link/Link.stories.js.map +1 -1
  55. package/dist/cjs/components/LinkButton/LinkButton.stories.js +1 -1
  56. package/dist/cjs/components/LinkButton/LinkButton.stories.js.map +1 -1
  57. package/dist/cjs/components/List/List.stories.js +1 -1
  58. package/dist/cjs/components/List/List.stories.js.map +1 -1
  59. package/dist/cjs/components/LoadingIndicator/LoadingIndicator.stories.js +8 -5
  60. package/dist/cjs/components/LoadingIndicator/LoadingIndicator.stories.js.map +1 -1
  61. package/dist/cjs/components/Logo/Logo.d.ts +14 -0
  62. package/dist/cjs/components/Logo/Logo.js +26 -0
  63. package/dist/cjs/components/Logo/Logo.js.map +1 -0
  64. package/dist/cjs/components/Logo/Logo.stories.d.ts +16 -0
  65. package/dist/cjs/components/Logo/Logo.stories.js +21 -0
  66. package/dist/cjs/components/Logo/Logo.stories.js.map +1 -0
  67. package/dist/cjs/components/Logo/Logo.test.d.ts +1 -0
  68. package/dist/cjs/components/Logo/Logo.test.js +25 -0
  69. package/dist/cjs/components/Logo/Logo.test.js.map +1 -0
  70. package/dist/cjs/components/Logo/index.d.ts +1 -0
  71. package/dist/cjs/components/Logo/index.js +18 -0
  72. package/dist/cjs/components/Logo/index.js.map +1 -0
  73. package/dist/cjs/components/Modal/Modal.stories.d.ts +3 -6
  74. package/dist/cjs/components/Modal/Modal.stories.js +4 -4
  75. package/dist/cjs/components/Modal/Modal.stories.js.map +1 -1
  76. package/dist/cjs/components/NumberField/NumberField.stories.d.ts +3 -0
  77. package/dist/cjs/components/NumberField/NumberField.stories.js +4 -1
  78. package/dist/cjs/components/NumberField/NumberField.stories.js.map +1 -1
  79. package/dist/cjs/components/PasswordField/PasswordField.js +1 -1
  80. package/dist/cjs/components/PasswordField/PasswordField.js.map +1 -1
  81. package/dist/cjs/components/PasswordField/PasswordField.stories.d.ts +3 -0
  82. package/dist/cjs/components/PasswordField/PasswordField.stories.js +4 -1
  83. package/dist/cjs/components/PasswordField/PasswordField.stories.js.map +1 -1
  84. package/dist/cjs/components/Popover/Popover.js +5 -1
  85. package/dist/cjs/components/Popover/Popover.js.map +1 -1
  86. package/dist/cjs/components/Popover/Popover.stories.js +1 -1
  87. package/dist/cjs/components/Popover/Popover.stories.js.map +1 -1
  88. package/dist/cjs/components/Popover/Popover.test.js +8 -0
  89. package/dist/cjs/components/Popover/Popover.test.js.map +1 -1
  90. package/dist/cjs/components/Progress/Progress.stories.js +1 -1
  91. package/dist/cjs/components/Progress/Progress.stories.js.map +1 -1
  92. package/dist/cjs/components/Radio/Radio.stories.js +1 -1
  93. package/dist/cjs/components/Radio/Radio.stories.js.map +1 -1
  94. package/dist/cjs/components/Radio/RadioButton.stories.d.ts +3 -0
  95. package/dist/cjs/components/Radio/RadioButton.stories.js +4 -1
  96. package/dist/cjs/components/Radio/RadioButton.stories.js.map +1 -1
  97. package/dist/cjs/components/SVG/SVG.stories.d.ts +0 -1
  98. package/dist/cjs/components/SVG/SVG.stories.js +0 -2
  99. package/dist/cjs/components/SVG/SVG.stories.js.map +1 -1
  100. package/dist/cjs/components/Segment/Segment.stories.js +6 -4
  101. package/dist/cjs/components/Segment/Segment.stories.js.map +1 -1
  102. package/dist/cjs/components/Select/Select.stories.js +6 -4
  103. package/dist/cjs/components/Select/Select.stories.js.map +1 -1
  104. package/dist/cjs/components/Slider/Slider.stories.js +1 -1
  105. package/dist/cjs/components/Slider/Slider.stories.js.map +1 -1
  106. package/dist/cjs/components/Table/Table.stories.d.ts +0 -1
  107. package/dist/cjs/components/Table/Table.stories.js +0 -2
  108. package/dist/cjs/components/Table/Table.stories.js.map +1 -1
  109. package/dist/cjs/components/Text/Text.stories.js +1 -1
  110. package/dist/cjs/components/Text/Text.stories.js.map +1 -1
  111. package/dist/cjs/components/TextArea/TextArea.stories.d.ts +5 -0
  112. package/dist/cjs/components/TextArea/TextArea.stories.js +6 -1
  113. package/dist/cjs/components/TextArea/TextArea.stories.js.map +1 -1
  114. package/dist/cjs/components/TextField/TextField.d.ts +5 -1
  115. package/dist/cjs/components/TextField/TextField.js +6 -4
  116. package/dist/cjs/components/TextField/TextField.js.map +1 -1
  117. package/dist/cjs/components/TextField/TextField.stories.d.ts +8 -0
  118. package/dist/cjs/components/TextField/TextField.stories.js +110 -2
  119. package/dist/cjs/components/TextField/TextField.stories.js.map +1 -1
  120. package/dist/cjs/components/TextField/TextField.test.js +58 -1
  121. package/dist/cjs/components/TextField/TextField.test.js.map +1 -1
  122. package/dist/cjs/components/TextField/adornmentWithClassName.d.ts +2 -0
  123. package/dist/cjs/components/TextField/adornmentWithClassName.js +17 -0
  124. package/dist/cjs/components/TextField/adornmentWithClassName.js.map +1 -0
  125. package/dist/cjs/components/Title/Title.stories.d.ts +0 -1
  126. package/dist/cjs/components/Title/Title.stories.js +0 -2
  127. package/dist/cjs/components/Title/Title.stories.js.map +1 -1
  128. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.stories.d.ts +0 -1
  129. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.stories.js +0 -2
  130. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.stories.js.map +1 -1
  131. package/dist/cjs/components/index.d.ts +1 -0
  132. package/dist/cjs/components/index.js +1 -0
  133. package/dist/cjs/components/index.js.map +1 -1
  134. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  135. package/dist/esm/components/Accordion/Accordion.js +3 -3
  136. package/dist/esm/components/Accordion/Accordion.js.map +1 -1
  137. package/dist/esm/components/Icon/Icon.js +1 -1
  138. package/dist/esm/components/Icon/Icon.js.map +1 -1
  139. package/dist/esm/components/Logo/Logo.js +20 -0
  140. package/dist/esm/components/Logo/Logo.js.map +1 -0
  141. package/dist/esm/components/Logo/index.js +2 -0
  142. package/dist/esm/components/Logo/index.js.map +1 -0
  143. package/dist/esm/components/PasswordField/PasswordField.js +1 -1
  144. package/dist/esm/components/PasswordField/PasswordField.js.map +1 -1
  145. package/dist/esm/components/Popover/Popover.js +6 -2
  146. package/dist/esm/components/Popover/Popover.js.map +1 -1
  147. package/dist/esm/components/TextField/TextField.js +6 -4
  148. package/dist/esm/components/TextField/TextField.js.map +1 -1
  149. package/dist/esm/components/TextField/adornmentWithClassName.js +10 -0
  150. package/dist/esm/components/TextField/adornmentWithClassName.js.map +1 -0
  151. package/dist/esm/components/index.js +1 -0
  152. package/dist/esm/components/index.js.map +1 -1
  153. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  154. package/dist/mobius.d.ts +19 -0
  155. package/package.json +9 -8
  156. package/src/components/Accordion/Accordion.mdx +1 -1
  157. package/src/components/Accordion/Accordion.stories.tsx +7 -7
  158. package/src/components/Accordion/Accordion.test.tsx +9 -0
  159. package/src/components/Accordion/Accordion.tsx +3 -3
  160. package/src/components/Alert/Alert.stories.tsx +0 -2
  161. package/src/components/Box/Box.stories.tsx +1 -1
  162. package/src/components/Breadcrumbs/Breadcrumbs.stories.tsx +0 -2
  163. package/src/components/Button/Button.stories.tsx +1 -10
  164. package/src/components/Checkbox/Checkbox.stories.tsx +0 -4
  165. package/src/components/Checkbox/CheckboxGroup.stories.tsx +1 -10
  166. package/src/components/Container/Container.stories.tsx +0 -2
  167. package/src/components/Divider/Divider.stories.tsx +0 -2
  168. package/src/components/Drawer/Drawer.stories.tsx +1 -1
  169. package/src/components/DropdownMenu/DropdownMenu.stories.tsx +1 -1
  170. package/src/components/ErrorMessage/ErrorMessage.stories.tsx +0 -2
  171. package/src/components/Fieldset/Fieldset.stories.tsx +1 -1
  172. package/src/components/Flex/Flex.stories.tsx +1 -1
  173. package/src/components/Grid/Grid.stories.tsx +0 -2
  174. package/src/components/Icon/Icon.stories.tsx +1 -1
  175. package/src/components/Icon/Icon.test.tsx +6 -0
  176. package/src/components/Icon/Icon.tsx +1 -1
  177. package/src/components/Image/Image.stories.tsx +0 -2
  178. package/src/components/Label/Label.stories.tsx +0 -2
  179. package/src/components/Link/Link.stories.tsx +1 -1
  180. package/src/components/LinkButton/LinkButton.stories.tsx +1 -8
  181. package/src/components/List/List.stories.tsx +1 -1
  182. package/src/components/LoadingIndicator/LoadingIndicator.stories.tsx +0 -2
  183. package/src/components/Logo/Logo.mdx +51 -0
  184. package/src/components/Logo/Logo.stories.tsx +22 -0
  185. package/src/components/Logo/Logo.test.tsx +28 -0
  186. package/src/components/Logo/Logo.tsx +62 -0
  187. package/src/components/Logo/index.tsx +1 -0
  188. package/src/components/Modal/Modal.stories.tsx +4 -6
  189. package/src/components/NumberField/NumberField.stories.tsx +4 -1
  190. package/src/components/PasswordField/PasswordField.stories.tsx +4 -1
  191. package/src/components/PasswordField/PasswordField.tsx +4 -3
  192. package/src/components/Popover/Popover.stories.tsx +1 -9
  193. package/src/components/Popover/Popover.test.tsx +22 -0
  194. package/src/components/Popover/Popover.tsx +7 -1
  195. package/src/components/Progress/Progress.stories.tsx +1 -1
  196. package/src/components/Radio/Radio.stories.tsx +0 -8
  197. package/src/components/Radio/RadioButton.stories.tsx +3 -8
  198. package/src/components/SVG/SVG.stories.tsx +0 -2
  199. package/src/components/Segment/Segment.stories.tsx +0 -2
  200. package/src/components/Select/Select.stories.tsx +0 -2
  201. package/src/components/Slider/Slider.stories.tsx +1 -3
  202. package/src/components/Table/Table.stories.tsx +0 -2
  203. package/src/components/Text/Text.stories.tsx +1 -1
  204. package/src/components/TextArea/TextArea.stories.tsx +6 -1
  205. package/src/components/TextField/TextField.mdx +37 -0
  206. package/src/components/TextField/TextField.stories.tsx +134 -1
  207. package/src/components/TextField/TextField.test.tsx +108 -1
  208. package/src/components/TextField/TextField.tsx +51 -15
  209. package/src/components/TextField/adornmentWithClassName.ts +13 -0
  210. package/src/components/Title/Title.stories.tsx +0 -2
  211. package/src/components/VisuallyHidden/VisuallyHidden.stories.tsx +0 -2
  212. package/src/components/index.tsx +1 -0
@@ -3,6 +3,7 @@
3
3
  import classNames from "classnames/dedupe";
4
4
  import {
5
5
  HTMLInputTypeAttribute,
6
+ ReactElement,
6
7
  ReactNode,
7
8
  Ref,
8
9
  RefAttributes,
@@ -12,8 +13,8 @@ import { UseTextFieldProps, useTextField } from "../../hooks";
12
13
  import { DOMProps, FocusEvents } from "../../types";
13
14
  import { ForwardedRefComponent } from "../../types/components";
14
15
  import { ErrorMessage } from "../ErrorMessage";
15
- import { Flex } from "../Flex";
16
16
  import { Label } from "../Label";
17
+ import { adornmentWithClassName } from "./adornmentWithClassName";
17
18
 
18
19
  export type TextFieldElementType = HTMLInputElement;
19
20
  export interface TextFieldProps
@@ -41,6 +42,10 @@ export interface TextFieldProps
41
42
  | "submit"
42
43
  | "week"
43
44
  >;
45
+ prefixInside?: ReactElement;
46
+ prefixOutside?: ReactElement;
47
+ suffixInside?: ReactElement;
48
+ suffixOutside?: ReactElement;
44
49
  }
45
50
 
46
51
  export type TextFieldRef = Ref<TextFieldElementType>;
@@ -56,6 +61,10 @@ const TextField: ForwardedRefComponent<TextFieldProps, TextFieldElementType> =
56
61
  errorMessage,
57
62
  children,
58
63
  isRequired,
64
+ prefixInside,
65
+ prefixOutside,
66
+ suffixInside,
67
+ suffixOutside,
59
68
  ...otherProps
60
69
  } = props;
61
70
 
@@ -72,6 +81,7 @@ const TextField: ForwardedRefComponent<TextFieldProps, TextFieldElementType> =
72
81
  "--is-invalid": validationState === "invalid",
73
82
  "--is-required": typeof isRequired === "boolean" && isRequired,
74
83
  "--is-optional": typeof isRequired === "boolean" && !isRequired,
84
+ "--is-hidden": hidden,
75
85
  [className || ""]: true,
76
86
  };
77
87
 
@@ -81,7 +91,11 @@ const TextField: ForwardedRefComponent<TextFieldProps, TextFieldElementType> =
81
91
  "--is-invalid": validationState === "invalid",
82
92
  });
83
93
 
84
- const containerClasses = classNames("mobius/TextField", textfieldClasses);
94
+ const containerClasses = classNames(
95
+ "mobius",
96
+ "mobius/TextField",
97
+ textfieldClasses,
98
+ );
85
99
 
86
100
  const inputClasses = classNames(
87
101
  "mobius",
@@ -89,27 +103,49 @@ const TextField: ForwardedRefComponent<TextFieldProps, TextFieldElementType> =
89
103
  textfieldClasses,
90
104
  );
91
105
 
106
+ const inputWrapperClasses = classNames(
107
+ "mobius/TextFieldInputWrapper",
108
+ textfieldClasses,
109
+ );
110
+
92
111
  return (
93
- <Flex flexDirection="column" className={containerClasses}>
112
+ <div className={containerClasses}>
94
113
  {label && !hidden && (
95
114
  <Label {...labelProps} className={labelClasses}>
96
115
  {label}
97
116
  </Label>
98
117
  )}
99
- <div className="mobius/TextFieldInputWrapper">
100
- <input
101
- {...otherProps}
102
- {...inputProps}
103
- disabled={isDisabled}
104
- ref={ref}
105
- type={type}
106
- aria-invalid={errorMessage != null}
107
- className={inputClasses}
108
- />
109
- <div className="mobius/TextFieldChildren">{children}</div>
118
+ <div className="mobius/TextFieldInnerContainer">
119
+ {adornmentWithClassName(
120
+ prefixOutside,
121
+ "mobius/TextFieldPrefixOutside",
122
+ )}
123
+ <div className={inputWrapperClasses}>
124
+ {adornmentWithClassName(
125
+ prefixInside,
126
+ "mobius/TextFieldPrefixInside",
127
+ )}
128
+ <input
129
+ {...otherProps}
130
+ {...inputProps}
131
+ ref={ref}
132
+ type={type}
133
+ className={inputClasses}
134
+ />
135
+ {adornmentWithClassName(
136
+ suffixInside,
137
+ "mobius/TextFieldSuffixInside",
138
+ )}
139
+ </div>
140
+ {adornmentWithClassName(
141
+ suffixOutside,
142
+ "mobius/TextFieldSuffixOutside",
143
+ )}
110
144
  </div>
145
+ {children && <div className="mobius/TextFieldChildren">{children}</div>}
146
+
111
147
  <ErrorMessage {...errorMessageProps} errorMessage={errorMessage} />
112
- </Flex>
148
+ </div>
113
149
  );
114
150
  });
115
151
 
@@ -0,0 +1,13 @@
1
+ import classNames from "classnames";
2
+ import { ReactElement, cloneElement } from "react";
3
+
4
+ export const adornmentWithClassName = (
5
+ component?: ReactElement,
6
+ className?: string,
7
+ ) => {
8
+ if (!component) return null;
9
+
10
+ return cloneElement(component, {
11
+ className: classNames(component.props.className, className),
12
+ });
13
+ };
@@ -1,11 +1,9 @@
1
1
  import type { Meta } from "@storybook/react";
2
2
  import { Title, TitleProps } from "./Title";
3
- import { excludeControls } from "../../utils/excludeControls";
4
3
 
5
4
  export default {
6
5
  title: "Components/Title",
7
6
  component: Title,
8
- argTypes: excludeControls("className", "elementType"),
9
7
  };
10
8
 
11
9
  export const Normal: Meta<typeof Title> = {
@@ -1,11 +1,9 @@
1
1
  import type { Meta } from "@storybook/react";
2
2
  import { VisuallyHidden, VisuallyHiddenProps } from ".";
3
- import { excludeControls } from "../../utils/excludeControls";
4
3
 
5
4
  export default {
6
5
  title: "Components/VisuallyHidden",
7
6
  component: VisuallyHidden,
8
- argTypes: excludeControls("className", "elementType"),
9
7
  };
10
8
 
11
9
  export const Normal: Meta<typeof VisuallyHidden> = {
@@ -19,6 +19,7 @@ export * from "./Link";
19
19
  export * from "./LinkButton";
20
20
  export * from "./List";
21
21
  export * from "./LoadingIndicator";
22
+ export * from "./Logo";
22
23
  export * from "./Modal";
23
24
  export * from "./NumberField";
24
25
  export * from "./Option";