@jobber/components-native 0.73.4-add-progre-0e7ddb0.7 → 0.74.1-JOB-97734-ac441a7.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 (35) hide show
  1. package/dist/package.json +2 -2
  2. package/dist/src/Divider/Divider.js +9 -6
  3. package/dist/src/Divider/{Divider.style.js → DividerHorizontal.style.js} +7 -2
  4. package/dist/src/Divider/DividerVertical.style.js +23 -0
  5. package/dist/src/InputFieldWrapper/InputFieldWrapper.js +1 -3
  6. package/dist/src/InputFieldWrapper/components/Prefix/Prefix.js +1 -3
  7. package/dist/src/InputFieldWrapper/components/Suffix/Suffix.js +1 -3
  8. package/dist/src/InputText/context/InputAccessoriesProvider.js +1 -3
  9. package/dist/src/ProgressBar/ProgressBar.js +2 -4
  10. package/dist/src/ProgressBar/ProgressBar.size.style.js +6 -0
  11. package/dist/src/ProgressBar/ProgressBar.style.js +0 -1
  12. package/dist/src/Typography/Typography.js +1 -3
  13. package/dist/tsconfig.tsbuildinfo +1 -1
  14. package/dist/types/src/Divider/Divider.d.ts +12 -3
  15. package/dist/types/src/Divider/{Divider.style.d.ts → DividerHorizontal.style.d.ts} +7 -2
  16. package/dist/types/src/Divider/DividerVertical.style.d.ts +21 -0
  17. package/dist/types/src/ProgressBar/ProgressBar.size.style.d.ts +11 -0
  18. package/dist/types/src/ProgressBar/ProgressBar.style.d.ts +0 -1
  19. package/dist/types/src/ProgressBar/types.d.ts +1 -1
  20. package/package.json +2 -2
  21. package/src/Divider/Divider.test.tsx +58 -19
  22. package/src/Divider/Divider.tsx +25 -7
  23. package/src/Divider/{Divider.style.ts → DividerHorizontal.style.ts} +7 -2
  24. package/src/Divider/DividerVertical.style.ts +24 -0
  25. package/src/InputFieldWrapper/InputFieldWrapper.test.tsx +0 -1
  26. package/src/InputFieldWrapper/InputFieldWrapper.tsx +0 -1
  27. package/src/InputFieldWrapper/components/Prefix/Prefix.tsx +0 -1
  28. package/src/InputFieldWrapper/components/Suffix/Suffix.tsx +0 -1
  29. package/src/InputText/context/InputAccessoriesProvider.tsx +0 -1
  30. package/src/ProgressBar/ProgressBar.size.style.ts +7 -0
  31. package/src/ProgressBar/ProgressBar.style.ts +0 -1
  32. package/src/ProgressBar/ProgressBar.tsx +2 -6
  33. package/src/ProgressBar/__snapshots__/ProgressBar.test.tsx.snap +6 -4
  34. package/src/ProgressBar/types.ts +1 -1
  35. package/src/Typography/Typography.tsx +0 -1
@@ -1,12 +1,21 @@
1
1
  /// <reference types="react" />
2
- import { styles } from "./Divider.style";
3
2
  interface DividerProps {
4
3
  /**
5
4
  * The weight of the divider.
6
5
  *
7
6
  * @default "base"
8
7
  */
9
- readonly size?: keyof typeof styles;
8
+ readonly size?: "base" | "large" | "larger" | "largest";
9
+ /**
10
+ * The direction of the divider
11
+ *
12
+ * @default "horizontal"
13
+ */
14
+ readonly direction?: "horizontal" | "vertical";
15
+ /**
16
+ * Used to locate this view in end-to-end tests.
17
+ */
18
+ readonly testID?: string;
10
19
  }
11
- export declare function Divider({ size }: DividerProps): JSX.Element;
20
+ export declare function Divider({ size, direction, testID, }: DividerProps): JSX.Element;
12
21
  export {};
@@ -1,14 +1,19 @@
1
- export declare const styles: {
1
+ export declare const horizontalStyles: {
2
2
  base: {
3
3
  height: number;
4
4
  margin: number;
5
- borderBottomWidth: number;
5
+ width: "auto";
6
6
  borderBottomColor: string;
7
+ borderBottomWidth: number;
7
8
  };
8
9
  large: {
9
10
  borderBottomWidth: number;
10
11
  opacity: number;
11
12
  };
13
+ larger: {
14
+ borderBottomWidth: number;
15
+ opacity: number;
16
+ };
12
17
  largest: {
13
18
  borderBottomWidth: number;
14
19
  opacity: number;
@@ -0,0 +1,21 @@
1
+ export declare const verticalStyles: {
2
+ base: {
3
+ margin: number;
4
+ height: "100%";
5
+ width: number;
6
+ borderRightWidth: number;
7
+ borderRightColor: string;
8
+ };
9
+ large: {
10
+ borderRightWidth: number;
11
+ opacity: number;
12
+ };
13
+ larger: {
14
+ borderRightWidth: number;
15
+ opacity: number;
16
+ };
17
+ largest: {
18
+ borderRightWidth: number;
19
+ opacity: number;
20
+ };
21
+ };
@@ -0,0 +1,11 @@
1
+ export declare const sizeStyles: {
2
+ smaller: {
3
+ height: number;
4
+ };
5
+ small: {
6
+ height: number;
7
+ };
8
+ base: {
9
+ height: number;
10
+ };
11
+ };
@@ -2,7 +2,6 @@ export declare const styles: {
2
2
  progressBarContainer: {
3
3
  marginTop: number;
4
4
  marginBottom: number;
5
- height: number;
6
5
  position: "relative";
7
6
  flexDirection: "row";
8
7
  };
@@ -35,5 +35,5 @@ export interface ProgressBarProps {
35
35
  * Set the size of the progress bar
36
36
  * @default base
37
37
  */
38
- readonly size?: "base" | "small";
38
+ readonly size?: "smaller" | "small" | "base";
39
39
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jobber/components-native",
3
- "version": "0.73.4-add-progre-0e7ddb0.7+0e7ddb06",
3
+ "version": "0.74.1-JOB-97734-ac441a7.1+ac441a7b",
4
4
  "license": "MIT",
5
5
  "description": "React Native implementation of Atlantis",
6
6
  "repository": {
@@ -79,5 +79,5 @@
79
79
  "react-native-safe-area-context": "^4.5.2",
80
80
  "react-native-svg": ">=12.0.0"
81
81
  },
82
- "gitHead": "0e7ddb0673b03d9863a56f86c79d0cac6cdfaa61"
82
+ "gitHead": "ac441a7b169aceadaad1e902affbcd547634b9d7"
83
83
  }
@@ -1,32 +1,71 @@
1
1
  import React from "react";
2
2
  import { render } from "@testing-library/react-native";
3
3
  import { Divider } from "./Divider";
4
- import { styles } from "./Divider.style";
4
+ import { horizontalStyles } from "./DividerHorizontal.style";
5
+ import { verticalStyles } from "./DividerVertical.style";
5
6
 
6
7
  const dividerTestId = "Divider";
7
8
 
8
9
  describe("Divider", () => {
9
- it("renders a default Divider", () => {
10
- const { getByTestId } = render(<Divider />);
11
- const dividerStyle = getByTestId(dividerTestId).props.style;
12
- expect(dividerStyle).toContainEqual(styles.base);
13
- expect(dividerStyle).not.toContainEqual(styles.large);
14
- expect(dividerStyle).not.toContainEqual(styles.largest);
10
+ it("uses the given testID", () => {
11
+ const dividerTestID = "divider-test";
12
+ const { getByTestId } = render(<Divider testID={dividerTestID} />);
13
+ expect(getByTestId(dividerTestID)).toBeDefined();
15
14
  });
16
15
 
17
- it("renders a large Divider", () => {
18
- const { getByTestId } = render(<Divider size="large" />);
19
- const dividerStyle = getByTestId(dividerTestId).props.style;
20
- expect(dividerStyle).toContainEqual(styles.base);
21
- expect(dividerStyle).toContainEqual(styles.large);
22
- expect(dividerStyle).not.toContainEqual(styles.largest);
16
+ describe("Horizontal", () => {
17
+ it("renders a default Divider", () => {
18
+ const { getByTestId } = render(<Divider />);
19
+ const dividerStyle = getByTestId(dividerTestId).props.style;
20
+ expect(dividerStyle).toContainEqual(horizontalStyles.base);
21
+ expect(dividerStyle).not.toContainEqual(horizontalStyles.large);
22
+ expect(dividerStyle).not.toContainEqual(horizontalStyles.largest);
23
+ });
24
+
25
+ it("renders a large Divider", () => {
26
+ const { getByTestId } = render(<Divider size="large" />);
27
+ const dividerStyle = getByTestId(dividerTestId).props.style;
28
+ expect(dividerStyle).toContainEqual(horizontalStyles.base);
29
+ expect(dividerStyle).toContainEqual(horizontalStyles.large);
30
+ expect(dividerStyle).not.toContainEqual(horizontalStyles.largest);
31
+ });
32
+
33
+ it("renders a largest Divider", () => {
34
+ const { getByTestId } = render(<Divider size="largest" />);
35
+ const dividerStyle = getByTestId(dividerTestId).props.style;
36
+ expect(dividerStyle).toContainEqual(horizontalStyles.base);
37
+ expect(dividerStyle).not.toContainEqual(horizontalStyles.large);
38
+ expect(dividerStyle).toContainEqual(horizontalStyles.largest);
39
+ });
23
40
  });
24
41
 
25
- it("renders a largest Divider", () => {
26
- const { getByTestId } = render(<Divider size="largest" />);
27
- const dividerStyle = getByTestId(dividerTestId).props.style;
28
- expect(dividerStyle).toContainEqual(styles.base);
29
- expect(dividerStyle).not.toContainEqual(styles.large);
30
- expect(dividerStyle).toContainEqual(styles.largest);
42
+ describe("Vertical", () => {
43
+ it("renders a default Divider", () => {
44
+ const { getByTestId } = render(<Divider direction="vertical" />);
45
+ const dividerStyle = getByTestId(dividerTestId).props.style;
46
+ expect(dividerStyle).toContainEqual(verticalStyles.base);
47
+ expect(dividerStyle).not.toContainEqual(verticalStyles.large);
48
+ expect(dividerStyle).not.toContainEqual(verticalStyles.largest);
49
+ });
50
+
51
+ it("renders a large Divider", () => {
52
+ const { getByTestId } = render(
53
+ <Divider direction="vertical" size="large" />,
54
+ );
55
+ const dividerStyle = getByTestId(dividerTestId).props.style;
56
+ expect(dividerStyle).toContainEqual(verticalStyles.base);
57
+ expect(dividerStyle).toContainEqual(verticalStyles.large);
58
+ expect(dividerStyle).not.toContainEqual(verticalStyles.largest);
59
+ });
60
+
61
+ it("renders a largest Divider", () => {
62
+ const { getByTestId } = render(
63
+ <Divider direction="vertical" size="largest" />,
64
+ );
65
+ const dividerStyle = getByTestId(dividerTestId).props.style;
66
+ expect(dividerStyle).toContainEqual(verticalStyles.base);
67
+ expect(dividerStyle).not.toContainEqual(verticalStyles.large);
68
+ expect(dividerStyle).toContainEqual(verticalStyles.largest);
69
+ });
31
70
  });
32
71
  });
@@ -1,6 +1,7 @@
1
1
  import React from "react";
2
2
  import { View } from "react-native";
3
- import { styles } from "./Divider.style";
3
+ import { horizontalStyles } from "./DividerHorizontal.style";
4
+ import { verticalStyles } from "./DividerVertical.style";
4
5
 
5
6
  interface DividerProps {
6
7
  /**
@@ -8,15 +9,32 @@ interface DividerProps {
8
9
  *
9
10
  * @default "base"
10
11
  */
11
- readonly size?: keyof typeof styles;
12
+ readonly size?: "base" | "large" | "larger" | "largest";
13
+ /**
14
+ * The direction of the divider
15
+ *
16
+ * @default "horizontal"
17
+ */
18
+ readonly direction?: "horizontal" | "vertical";
19
+ /**
20
+ * Used to locate this view in end-to-end tests.
21
+ */
22
+ readonly testID?: string;
12
23
  }
13
24
 
14
- export function Divider({ size = "base" }: DividerProps): JSX.Element {
25
+ export function Divider({
26
+ size = "base",
27
+ direction = "horizontal",
28
+ testID = "Divider",
29
+ }: DividerProps): JSX.Element {
30
+ const directionalStyles =
31
+ direction === "horizontal" ? horizontalStyles : verticalStyles;
15
32
  const style = [
16
- styles.base,
17
- size === "large" && styles.large,
18
- size === "largest" && styles.largest,
33
+ directionalStyles.base,
34
+ size === "large" && directionalStyles.large,
35
+ size === "larger" && directionalStyles.larger,
36
+ size === "largest" && directionalStyles.largest,
19
37
  ];
20
38
 
21
- return <View testID="Divider" style={style} />;
39
+ return <View testID={testID} style={style} />;
22
40
  }
@@ -1,17 +1,22 @@
1
1
  import { StyleSheet } from "react-native";
2
2
  import { tokens } from "../utils/design";
3
3
 
4
- export const styles = StyleSheet.create({
4
+ export const horizontalStyles = StyleSheet.create({
5
5
  base: {
6
6
  height: tokens["space-minuscule"],
7
7
  margin: 0,
8
- borderBottomWidth: tokens["border-base"],
8
+ width: "auto",
9
9
  borderBottomColor: tokens["color-border"],
10
+ borderBottomWidth: tokens["space-minuscule"],
10
11
  },
11
12
  large: {
12
13
  borderBottomWidth: tokens["border-thick"],
13
14
  opacity: 0.875,
14
15
  },
16
+ larger: {
17
+ borderBottomWidth: tokens["border-thicker"],
18
+ opacity: 0.625,
19
+ },
15
20
  largest: {
16
21
  borderBottomWidth: tokens["space-small"],
17
22
  opacity: 0.375,
@@ -0,0 +1,24 @@
1
+ import { StyleSheet } from "react-native";
2
+ import { tokens } from "../utils/design";
3
+
4
+ export const verticalStyles = StyleSheet.create({
5
+ base: {
6
+ margin: 0,
7
+ height: "100%",
8
+ width: tokens["space-minuscule"],
9
+ borderRightWidth: tokens["border-base"],
10
+ borderRightColor: tokens["color-border"],
11
+ },
12
+ large: {
13
+ borderRightWidth: tokens["border-thick"],
14
+ opacity: 0.875,
15
+ },
16
+ larger: {
17
+ borderRightWidth: tokens["border-thicker"],
18
+ opacity: 0.625,
19
+ },
20
+ largest: {
21
+ borderRightWidth: tokens["space-small"],
22
+ opacity: 0.375,
23
+ },
24
+ });
@@ -1,6 +1,5 @@
1
1
  import React from "react";
2
2
  import { RenderAPI, fireEvent, render } from "@testing-library/react-native";
3
- // eslint-disable-next-line no-restricted-imports
4
3
  import { Text, ViewStyle } from "react-native";
5
4
  import {
6
5
  InputFieldWrapper,
@@ -1,6 +1,5 @@
1
1
  import React from "react";
2
2
  import {
3
- // eslint-disable-next-line no-restricted-imports
4
3
  Text as RNText,
5
4
  StyleProp,
6
5
  TextStyle,
@@ -1,6 +1,5 @@
1
1
  import React from "react";
2
2
  import {
3
- // eslint-disable-next-line no-restricted-imports
4
3
  Text as RNText,
5
4
  StyleProp,
6
5
  TextStyle,
@@ -1,7 +1,6 @@
1
1
  import React from "react";
2
2
  import {
3
3
  Pressable,
4
- // eslint-disable-next-line no-restricted-imports
5
4
  Text as RNText,
6
5
  StyleProp,
7
6
  TextStyle,
@@ -3,7 +3,6 @@ import {
3
3
  InputAccessoryView,
4
4
  Keyboard,
5
5
  Platform,
6
- // eslint-disable-next-line no-restricted-imports
7
6
  Button as RNButton,
8
7
  View,
9
8
  useColorScheme,
@@ -0,0 +1,7 @@
1
+ import { StyleSheet } from "react-native";
2
+
3
+ export const sizeStyles = StyleSheet.create({
4
+ smaller: { height: 4 },
5
+ small: { height: 8 },
6
+ base: { height: 16 },
7
+ });
@@ -5,7 +5,6 @@ export const styles = StyleSheet.create({
5
5
  progressBarContainer: {
6
6
  marginTop: tokens["space-small"],
7
7
  marginBottom: tokens["space-small"],
8
- height: 20,
9
8
  position: "relative",
10
9
  flexDirection: "row",
11
10
  },
@@ -4,6 +4,7 @@ import { ProgressBarProps } from "./types";
4
4
  import { styles } from "./ProgressBar.style";
5
5
  import { ProgressBarInner, calculateWidth } from "./ProgressBarInner";
6
6
  import { ProgressBarStepped } from "./ProgressBarStepped";
7
+ import { sizeStyles } from "./ProgressBar.size.style";
7
8
  import { tokens } from "../utils/design";
8
9
  import { useAtlantisI18n } from "../hooks/useAtlantisI18n";
9
10
 
@@ -35,12 +36,7 @@ export function ProgressBar({
35
36
  inProgress={inProgress}
36
37
  />
37
38
  ) : (
38
- <View
39
- style={[
40
- styles.progressBarContainer,
41
- size === "small" && { height: 10 },
42
- ]}
43
- >
39
+ <View style={[styles.progressBarContainer, sizeStyles[size]]}>
44
40
  <ProgressBarInner
45
41
  width={100}
46
42
  animationDuration={0}
@@ -11,12 +11,13 @@ exports[`renders blue inProgress bar when 1 or more jobs is in progress 1`] = `
11
11
  [
12
12
  {
13
13
  "flexDirection": "row",
14
- "height": 20,
15
14
  "marginBottom": 8,
16
15
  "marginTop": 8,
17
16
  "position": "relative",
18
17
  },
19
- false,
18
+ {
19
+ "height": 16,
20
+ },
20
21
  ]
21
22
  }
22
23
  >
@@ -92,12 +93,13 @@ exports[`renders green CompletedProgress bar when 1 or more jobs is completed 1`
92
93
  [
93
94
  {
94
95
  "flexDirection": "row",
95
- "height": 20,
96
96
  "marginBottom": 8,
97
97
  "marginTop": 8,
98
98
  "position": "relative",
99
99
  },
100
- false,
100
+ {
101
+ "height": 16,
102
+ },
101
103
  ]
102
104
  }
103
105
  >
@@ -43,5 +43,5 @@ export interface ProgressBarProps {
43
43
  * Set the size of the progress bar
44
44
  * @default base
45
45
  */
46
- readonly size?: "base" | "small";
46
+ readonly size?: "smaller" | "small" | "base";
47
47
  }
@@ -4,7 +4,6 @@ import {
4
4
  I18nManager,
5
5
  StyleProp,
6
6
  StyleSheet,
7
- // eslint-disable-next-line no-restricted-imports
8
7
  Text,
9
8
  TextProps,
10
9
  TextStyle,