react-native-exp-fig 0.1.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 (96) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +119 -0
  3. package/package.json +200 -0
  4. package/react-native.config.js +4 -0
  5. package/src/assets/fonts/Inter-Black.ttf +0 -0
  6. package/src/assets/fonts/Inter-Bold.ttf +0 -0
  7. package/src/assets/fonts/Inter-ExtraBold.ttf +0 -0
  8. package/src/assets/fonts/Inter-ExtraLight.ttf +0 -0
  9. package/src/assets/fonts/Inter-Light.ttf +0 -0
  10. package/src/assets/fonts/Inter-Medium.ttf +0 -0
  11. package/src/assets/fonts/Inter-Regular.ttf +0 -0
  12. package/src/assets/fonts/Inter-SemiBold.ttf +0 -0
  13. package/src/assets/fonts/Inter-Thin.ttf +0 -0
  14. package/src/common/icons-svg/arrow-drop-down/index.tsx +28 -0
  15. package/src/common/icons-svg/arrow-left/index.tsx +32 -0
  16. package/src/common/icons-svg/bluetooth/index.tsx +37 -0
  17. package/src/common/icons-svg/bluetooth-connected/index.tsx +41 -0
  18. package/src/common/icons-svg/calendar/index.tsx +40 -0
  19. package/src/common/icons-svg/call-bell/index.tsx +29 -0
  20. package/src/common/icons-svg/camera-plus/index.tsx +40 -0
  21. package/src/common/icons-svg/check-box-fill/index.tsx +30 -0
  22. package/src/common/icons-svg/check-box-outline/index.tsx +30 -0
  23. package/src/common/icons-svg/check-circle/index.tsx +27 -0
  24. package/src/common/icons-svg/closed/index.tsx +34 -0
  25. package/src/common/icons-svg/constants/index.ts +43 -0
  26. package/src/common/icons-svg/credit-card/index.tsx +32 -0
  27. package/src/common/icons-svg/currency/index.tsx +39 -0
  28. package/src/common/icons-svg/eye/index.tsx +31 -0
  29. package/src/common/icons-svg/eye-slash/index.tsx +31 -0
  30. package/src/common/icons-svg/file-text/index.tsx +39 -0
  31. package/src/common/icons-svg/gas-pump/index.tsx +39 -0
  32. package/src/common/icons-svg/gauge/index.tsx +39 -0
  33. package/src/common/icons-svg/gear/index.tsx +39 -0
  34. package/src/common/icons-svg/index.tsx +149 -0
  35. package/src/common/icons-svg/interface.d.ts +18 -0
  36. package/src/common/icons-svg/list/index.tsx +58 -0
  37. package/src/common/icons-svg/moon-stars/index.tsx +29 -0
  38. package/src/common/icons-svg/note-pincel/index.tsx +40 -0
  39. package/src/common/icons-svg/package-check/index.tsx +45 -0
  40. package/src/common/icons-svg/shopping-cart/index.tsx +39 -0
  41. package/src/common/icons-svg/steering-wheel/index.tsx +49 -0
  42. package/src/common/icons-svg/steering-wheel-fill/index.tsx +36 -0
  43. package/src/common/icons-svg/timer/index.tsx +39 -0
  44. package/src/common/icons-svg/trophy/index.tsx +29 -0
  45. package/src/common/icons-svg/truck/index.tsx +39 -0
  46. package/src/common/icons-svg/wifi-high/index.tsx +43 -0
  47. package/src/common/icons-svg/wifi-x/index.tsx +50 -0
  48. package/src/components/box/index.tsx +47 -0
  49. package/src/components/box/interface.d.ts +31 -0
  50. package/src/components/box/styles.ts +21 -0
  51. package/src/components/button/index.tsx +61 -0
  52. package/src/components/button/interface.d.ts +40 -0
  53. package/src/components/button/styles.ts +34 -0
  54. package/src/components/capture-photo/index.tsx +125 -0
  55. package/src/components/capture-photo/interface.d.ts +44 -0
  56. package/src/components/capture-photo/styles.ts +24 -0
  57. package/src/components/card-hours/index.tsx +118 -0
  58. package/src/components/card-hours/interface.d.ts +37 -0
  59. package/src/components/card-scheduled-journey/index.tsx +138 -0
  60. package/src/components/card-scheduled-journey/interface.ts +42 -0
  61. package/src/components/card-scheduled-journey/styles.ts +26 -0
  62. package/src/components/header-profile/index.tsx +128 -0
  63. package/src/components/header-profile/interface.d.ts +52 -0
  64. package/src/components/input/index.tsx +180 -0
  65. package/src/components/input/interface.d.ts +55 -0
  66. package/src/components/input/styles.ts +23 -0
  67. package/src/components/scheduled-journey-indicators/index.tsx +99 -0
  68. package/src/components/scheduled-journey-indicators/interface.d.ts +18 -0
  69. package/src/components/selects/select-option/index.tsx +104 -0
  70. package/src/components/selects/select-option/interface.d.ts +18 -0
  71. package/src/components/selects/select-option/styles.ts +75 -0
  72. package/src/components/step-indicator/helpers/get-icon-by-status.tsx +20 -0
  73. package/src/components/step-indicator/index.tsx +164 -0
  74. package/src/components/step-indicator/interface.d.ts +34 -0
  75. package/src/components/step-indicator/styles.ts +67 -0
  76. package/src/components/typography/index.tsx +67 -0
  77. package/src/components/typography/interface.d.ts +102 -0
  78. package/src/components/typography/styles.ts +34 -0
  79. package/src/index.tsx +23 -0
  80. package/src/stories/box/box.stories.tsx +106 -0
  81. package/src/stories/button/button.stories.tsx +143 -0
  82. package/src/stories/capture-photo/capture-photo.stories.tsx +170 -0
  83. package/src/stories/card-hours/card-hours.stories.tsx +102 -0
  84. package/src/stories/card-scheduled-journey/card-scheduled-journey.stories.tsx +101 -0
  85. package/src/stories/header-profile/header-profile.stories.tsx +84 -0
  86. package/src/stories/input/input.stories.tsx +286 -0
  87. package/src/stories/scheduled-journey-indicators/sheduled-journey-indicators.stories.tsx +74 -0
  88. package/src/stories/select-option/select-option.stories.tsx +46 -0
  89. package/src/stories/step-indicator/step-indicator.stories.tsx +116 -0
  90. package/src/stories/typography/typography.stories.tsx +146 -0
  91. package/src/styles/global/interface.d.ts +131 -0
  92. package/src/styles/global/styles.ts +63 -0
  93. package/src/styles/global/theme-provider.tsx +10 -0
  94. package/src/styles/theme/theme.ts +156 -0
  95. package/src/utils/format-data/index.ts +14 -0
  96. package/src/utils/mutiply/index.ts +3 -0
@@ -0,0 +1,131 @@
1
+ /*
2
+ * IMPORTS
3
+ */
4
+ import React from "react";
5
+ import { DimensionValue } from "react-native";
6
+ import { theme } from "../theme/theme";
7
+
8
+ export interface IGlobalCss {
9
+ /**
10
+ * A propriedade JSX que define um elemento ou componente filho.
11
+ */
12
+ children?: React.ReactNode;
13
+
14
+ /**
15
+ * TestID para testes automático e identificação
16
+ */
17
+ testID?: string;
18
+
19
+ /**
20
+ * A propriedade CSS abreviada border define a borda de um elemento. Ele define os valores de largura da borda, estilo da borda e cor da borda.
21
+ */
22
+ borderStyled?: {
23
+ borderStyle?: "solid" | "dotted" | "dashed";
24
+
25
+ borderRadius?: number | DimensionValue;
26
+ borderTopRightRadius?: number | DimensionValue;
27
+ borderTopLeftRadius?: number | DimensionValue;
28
+ borderBottomRightRadius?: number | DimensionValue;
29
+ borderBottomLeftRadius?: number | DimensionValue;
30
+
31
+ borderWidth?: number | DimensionValue;
32
+ borderLeftWidth?: number | DimensionValue;
33
+ borderRightWidth?: number | DimensionValue;
34
+ borderTopWidth?: number | DimensionValue;
35
+ borderBottomWidth?: number | DimensionValue;
36
+
37
+ borderColor?: string;
38
+ borderBottomColor?: string;
39
+ borderLeftColor?: string;
40
+ borderRightColor?: string;
41
+ borderTopColor?: string;
42
+ };
43
+
44
+ /**
45
+ * Propriedades que define a orientação do button que é usada para representar uma página. Na maioria das vezes, esse valores corresponde ao posicionamento alvo da página impressa, se aplicável.
46
+ */
47
+ flexStyle?: {
48
+ alignItems?: "flex-start" | "flex-end" | "center" | "stretch" | "baseline";
49
+ alignSelf?: "auto" | "flex-start" | "flex-end" | "center" | "stretch" | "baseline";
50
+ flex?: string | number;
51
+ flexDirection?: "column" | "column-reverse" | "row" | "row-reverse";
52
+ flexWrap?: "nowrap" | "wrap" | "wrap-reverse";
53
+ textAlign?: "auto" | "center" | "left" | "right" | "justify";
54
+ justifyContent?:
55
+ | "flex-start"
56
+ | "flex-end"
57
+ | "center"
58
+ | "space-between"
59
+ | "space-around"
60
+ | "space-evenly";
61
+ };
62
+
63
+ /**
64
+ * A propriedade margin do CSS define a área de margem nos quatro lados do elemento. É uma abreviação que define todas as margens individuais de uma só vez: margin-top, margin-right (en-US), margin-bottom, e margin-left (en-US).
65
+ */
66
+ marginStyle?: {
67
+ margin?: number | DimensionValue;
68
+ marginLeft?: number | DimensionValue;
69
+ marginRight?: number | DimensionValue;
70
+ marginTop?: number | DimensionValue;
71
+ marginBottom?: number | DimensionValue;
72
+ };
73
+
74
+ /**
75
+ * A propriedade padding define uma a distância entre o conteúdo de um elemento e suas bordas. É um atalho que evita definir uma distância para cada lado separadamente (padding-top, padding-right, padding-bottom, padding-left).
76
+ */
77
+ paddingStyle?: {
78
+ padding?: number | DimensionValue;
79
+ paddingLeft?: number | DimensionValue;
80
+ paddingRight?: number | DimensionValue;
81
+ paddingTop?: number | DimensionValue;
82
+ paddingBottom?: number | DimensionValue;
83
+ };
84
+
85
+ /**
86
+ * A propriedade CSS height define a altura de um elemento. A altura de um elemento é a distância do topo da borda superior do elemento ao fundo da borda inferior.
87
+ */
88
+ height?: number | DimensionValue;
89
+
90
+ /**
91
+ * A propriedade CSS width define a largura de um elemento. A largura de um elemento é a distância do topo da borda esquerda do elemento ao fundo da borda direita.
92
+ */
93
+ width?: number | DimensionValue;
94
+
95
+ /**
96
+ * O fundo abreviado CSS Propriedade define todas as propriedades do estilo de fundo de uma só vez, como cor, imagem, origem e tamanho ou método de repetição. As propriedades dos componentes não definidas no fundo da declaração de valor da propriedade abreviada são definidas como seus valores padrão..
97
+ */
98
+ backgroundColor?: string;
99
+
100
+ /**
101
+ * Propriedade texto que sera renderizado pro usuário final
102
+ */
103
+ text?: string;
104
+
105
+ /**
106
+ * A propriedade CSS color define o valor da cor de primeiro plano do texto e das decorações de texto de um elemento e define o valor currentcolor. currentcolor pode ser usado como um valor indireto em outras propriedades e é o padrão para outras propriedades de cores, como border-color.
107
+ */
108
+ color?: {
109
+ colorSvg?: string;
110
+ colorText?: string;
111
+ colorTextBold?: string;
112
+ colorTextData?: string;
113
+ };
114
+
115
+ /**
116
+ * A propriedade abreviada CSS da fonte define todas as propriedades diferentes da fonte de um elemento. Alternativamente, ele define a fonte de um elemento como uma fonte do sistema.
117
+ */
118
+ fontStyle?: {
119
+ font?: string;
120
+ fontSize?: number;
121
+ fontWeight?: "100" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | "bold";
122
+ fontFamily?: keyof typeof theme.fonts;
123
+ letterSpacing?: keyof typeof theme.letterSpacing;
124
+ lineHeight?: number;
125
+ };
126
+ }
127
+
128
+ // /**
129
+ // * EXPORTS
130
+ // */
131
+ // export { IGlobalCss };
@@ -0,0 +1,63 @@
1
+ // typing
2
+ import { IGlobalCss } from "./interface";
3
+
4
+ const stylesGlobal = (props: IGlobalCss) => ({
5
+ width: props.width,
6
+ height: props.height,
7
+ backgroundColor: props.backgroundColor,
8
+
9
+ // padding
10
+
11
+ padding: props.paddingStyle?.padding,
12
+ paddingTop: props.paddingStyle?.paddingTop,
13
+ paddingLeft: props.paddingStyle?.paddingLeft,
14
+ paddingRight: props.paddingStyle?.paddingRight,
15
+ paddingBottom: props.paddingStyle?.paddingBottom,
16
+
17
+ // margin
18
+ margin: props.marginStyle?.margin,
19
+ marginTop: props.marginStyle?.marginTop,
20
+ marginLeft: props.marginStyle?.marginLeft,
21
+ marginRight: props.marginStyle?.marginRight,
22
+ marginBottom: props.marginStyle?.marginBottom,
23
+
24
+ // border
25
+ borderStyle: props.borderStyled?.borderStyle,
26
+
27
+ borderRadius: props.borderStyled?.borderRadius,
28
+ borderTopRightRadius: props.borderStyled?.borderTopRightRadius,
29
+ borderTopLeftRadius: props.borderStyled?.borderTopLeftRadius,
30
+ borderBottomRightRadius: props.borderStyled?.borderBottomRightRadius,
31
+ borderBottomLeftRadius: props.borderStyled?.borderBottomLeftRadius,
32
+
33
+ borderWidth: props.borderStyled?.borderWidth,
34
+ borderLeftWidth: props.borderStyled?.borderLeftWidth,
35
+ borderRightWidth: props.borderStyled?.borderRightWidth,
36
+ borderTopWidth: props.borderStyled?.borderTopWidth,
37
+ borderBottomWidth: props.borderStyled?.borderBottomWidth,
38
+
39
+ borderColor: props.borderStyled?.borderColor,
40
+ borderBottomColor: props.borderStyled?.borderBottomColor,
41
+ borderLeftColor: props.borderStyled?.borderLeftColor,
42
+ borderRightColor: props.borderStyled?.borderLeftColor,
43
+ borderTopColor: props.borderStyled?.borderTopColor,
44
+
45
+ // flex
46
+ flex: props.flexStyle?.flex,
47
+ flexDirection: props.flexStyle?.flexDirection,
48
+ alignItems: props.flexStyle?.alignItems,
49
+ justifyContent: props.flexStyle?.justifyContent,
50
+ textAlign: props.flexStyle?.textAlign,
51
+
52
+ // fonts
53
+ fontFamily: props.fontStyle?.fontFamily,
54
+ fontSize: props.fontStyle?.fontSize,
55
+ fontWeight: props.fontStyle?.fontWeight,
56
+ lineHeight: props.fontStyle?.lineHeight,
57
+ letterSpacing: props.fontStyle?.letterSpacing,
58
+ });
59
+
60
+ /**
61
+ * EXPORTS
62
+ */
63
+ export { stylesGlobal };
@@ -0,0 +1,10 @@
1
+ import React, { createContext, useContext } from "react";
2
+ import { theme } from "../theme/theme";
3
+
4
+ const ThemeContext = createContext(theme);
5
+
6
+ export const ThemeProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {
7
+ return <ThemeContext.Provider value={theme}>{children}</ThemeContext.Provider>;
8
+ };
9
+
10
+ export const useTheme = () => useContext(ThemeContext);
@@ -0,0 +1,156 @@
1
+ /**
2
+ * IMPORTS
3
+ */
4
+
5
+ const borderWidths = {
6
+ thin: 1,
7
+ thin_medium: 2,
8
+ thin_bold: 6,
9
+ thick: 4,
10
+ thick_medium: 8,
11
+ thick_bold: 12,
12
+ hairline: 999,
13
+ };
14
+
15
+ const colors = {
16
+ neutral: {
17
+ 25: "#FFFFFF",
18
+ 50: "#E7EEFF",
19
+ 75: "#E5E1F9",
20
+ 200: "#C6C6C6",
21
+ 300: "#F3F3F3",
22
+ 400: "#F4F5F6",
23
+ },
24
+ black: {
25
+ 25: "#1E1E1E",
26
+ 100: "#393939",
27
+ 180: "#35302B",
28
+ },
29
+ blue: {
30
+ 25: "#1E1E1E",
31
+ 100: "#051C3B",
32
+ 150: "#2E41F2",
33
+ 350: "#357FD6",
34
+ 500: "#050022",
35
+ 525: "#051C3B",
36
+ },
37
+ red: {
38
+ 400: "#D23A1A",
39
+ 500: "#C54239",
40
+ 800: "#E72626",
41
+ 900: "#9F0000",
42
+ },
43
+ gray: {
44
+ 300: "#D9D9D9",
45
+ 400: "#C6C6C6",
46
+ 500: "#1c1c1e",
47
+ 600: "#5E5E5E",
48
+ 700: "#727272",
49
+ 800: "#837676",
50
+ 850: "#868686",
51
+ 875: "#949494",
52
+ 900: "#9B9B9B",
53
+ },
54
+ green: {
55
+ 200: "#25BA76",
56
+ 400: "#49C63E",
57
+ 500: "#50C58F",
58
+ },
59
+ orange: {
60
+ 500: "#FC5701",
61
+ 450: "#FC6C2D",
62
+ 150: "#FFA41C",
63
+ },
64
+ yellow: {
65
+ 100: "#DFAE00",
66
+ },
67
+ };
68
+
69
+ const fonts = {
70
+ inter_thin_100: "Inter-Thin",
71
+ inter_extra_light_200: "Inter-ExtraLight",
72
+ inter_light_300: "Inter-Light",
73
+ inter_regular_400: "Inter-Regular",
74
+ inter_medium_500: "Inter-Medium",
75
+ inter_semi_bold_600: "Inter-SemiBold",
76
+ inter_bold_700: "Inter-Bold",
77
+ inter_extra_bold_800: "Inter-ExtraBold",
78
+ inter_bold: "Inter-Bold",
79
+ };
80
+
81
+ const fontSizes = {
82
+ "2xs": 10,
83
+ xs: 12,
84
+ sm: 14,
85
+ md: 16,
86
+ lg: 18,
87
+ xl: 20,
88
+ "2xl": 24,
89
+ "3xl": 32,
90
+ "4xl": 38,
91
+ "5xl": 50,
92
+ "6xl": 60,
93
+ "7xl": 72,
94
+ "8xl": 96,
95
+ "9xl": 128,
96
+ };
97
+
98
+ const margins = {
99
+ "2xs": 10,
100
+ xs: 12,
101
+ sm: 14,
102
+ md: 16,
103
+ lg: 18,
104
+ xl: 20,
105
+ "2xl": 24,
106
+ "3xl": 30,
107
+ "4xl": 36,
108
+ "5xl": 48,
109
+ "6xl": 60,
110
+ "7xl": 72,
111
+ "8xl": 96,
112
+ "9xl": 128,
113
+ };
114
+
115
+ const paddings = {
116
+ "2xs": 10,
117
+ xs: 12,
118
+ sm: 14,
119
+ md: 16,
120
+ lg: 18,
121
+ xl: 20,
122
+ "2xl": 24,
123
+ "3xl": 30,
124
+ "4xl": 36,
125
+ "5xl": 48,
126
+ "6xl": 60,
127
+ "7xl": 72,
128
+ "8xl": 96,
129
+ "9xl": 128,
130
+ };
131
+
132
+ const shadows = {
133
+ z1: "0px 1px 0px rgba(0, 0, 0, 0.3), 0px 1px 0px 1px rgba(0, 0, 0, 0.15)",
134
+ z2: "0px 1px 2px rgba(0, 0, 0, 0.3)",
135
+ };
136
+
137
+ const letterSpacing = {
138
+ o_16: 0.16,
139
+ regular: 0.5,
140
+ medium: 0.75,
141
+ strong: 1,
142
+ };
143
+
144
+ /**
145
+ * EXPORTSS
146
+ */
147
+ export const theme = {
148
+ borderWidths,
149
+ colors,
150
+ fonts,
151
+ fontSizes,
152
+ margins,
153
+ shadows,
154
+ paddings,
155
+ letterSpacing,
156
+ };
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Formata uma data do tipo Date para o formato DD/MM/YYYY
3
+ * @param date Objeto Date a ser formatado
4
+ * @returns String no formato DD/MM/YYYY
5
+ */
6
+ const formatDate = (date: Date): string => {
7
+ const day = String(date.getDate()).padStart(2, "0");
8
+ const month = String(date.getMonth() + 1).padStart(2, "0"); // Mês começa em 0
9
+ const year = date.getFullYear();
10
+
11
+ return `${day}/${month}/${year}`;
12
+ };
13
+
14
+ export { formatDate };
@@ -0,0 +1,3 @@
1
+ export function multiply(a: number, b: number): number {
2
+ return a * b;
3
+ }