@factorialco/f0-react-native 0.20.1 → 0.21.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 (64) hide show
  1. package/README.md +106 -27
  2. package/package.json +43 -25
  3. package/src/components/Avatars/DateAvatar/__snapshots__/index.spec.tsx.snap +1 -1
  4. package/src/components/Avatars/DateAvatar/index.tsx +1 -1
  5. package/src/components/Avatars/EmojiAvatar/__snapshots__/index.spec.tsx.snap +3 -3
  6. package/src/components/Avatars/EmojiAvatar/index.tsx +1 -1
  7. package/src/components/__tests__/ExampleComponent.spec.tsx +11 -11
  8. package/src/icons/app/Ascending.tsx +19 -0
  9. package/src/icons/app/Balance.tsx +28 -0
  10. package/src/icons/app/CardPin.tsx +24 -0
  11. package/src/icons/app/Chip.tsx +21 -0
  12. package/src/icons/app/ClockBack.tsx +19 -0
  13. package/src/icons/app/ClockPlus.tsx +27 -0
  14. package/src/icons/app/Cloud.tsx +20 -0
  15. package/src/icons/app/Command.tsx +31 -0
  16. package/src/icons/app/Computer.tsx +25 -0
  17. package/src/icons/app/Contactless.tsx +21 -0
  18. package/src/icons/app/CornerHandle.tsx +21 -0
  19. package/src/icons/app/Descending.tsx +19 -0
  20. package/src/icons/app/DollarReset.tsx +31 -0
  21. package/src/icons/app/Equal.tsx +21 -0
  22. package/src/icons/app/EqualApproximately.tsx +21 -0
  23. package/src/icons/app/EqualGreater.tsx +21 -0
  24. package/src/icons/app/EqualLess.tsx +21 -0
  25. package/src/icons/app/FileSigned.tsx +21 -0
  26. package/src/icons/app/Files.tsx +21 -0
  27. package/src/icons/app/Flask.tsx +20 -0
  28. package/src/icons/app/Greater.tsx +21 -0
  29. package/src/icons/app/Group.tsx +21 -0
  30. package/src/icons/app/GroupBy.tsx +21 -0
  31. package/src/icons/app/Handle.tsx +21 -0
  32. package/src/icons/app/HardDrive.tsx +25 -0
  33. package/src/icons/app/Headset.tsx +25 -0
  34. package/src/icons/app/InputField.tsx +21 -0
  35. package/src/icons/app/Keyboard.tsx +21 -0
  36. package/src/icons/app/Less.tsx +21 -0
  37. package/src/icons/app/MessageFilled.tsx +24 -0
  38. package/src/icons/app/Moon.tsx +21 -0
  39. package/src/icons/app/Mouse.tsx +20 -0
  40. package/src/icons/app/Numbers.tsx +21 -0
  41. package/src/icons/app/Organization.tsx +25 -0
  42. package/src/icons/app/Password.tsx +32 -0
  43. package/src/icons/app/PersonMinus.tsx +19 -0
  44. package/src/icons/app/PersonNegative.tsx +27 -0
  45. package/src/icons/app/PersonPlus.tsx +19 -0
  46. package/src/icons/app/Pig.tsx +41 -0
  47. package/src/icons/app/Shield.tsx +20 -0
  48. package/src/icons/app/SignPost.tsx +22 -0
  49. package/src/icons/app/Sleep.tsx +21 -0
  50. package/src/icons/app/Sort.tsx +5 -5
  51. package/src/icons/app/Swap.tsx +21 -0
  52. package/src/icons/app/Tablet.tsx +21 -0
  53. package/src/icons/app/ThumbsDown.tsx +21 -0
  54. package/src/icons/app/ThumbsDownFilled.tsx +19 -0
  55. package/src/icons/app/ThumbsUp.tsx +21 -0
  56. package/src/icons/app/ThumbsUpFilled.tsx +19 -0
  57. package/src/icons/app/Upsell.tsx +19 -0
  58. package/src/icons/app/index.ts +49 -0
  59. package/src/icons/modules/Complaints.tsx +21 -0
  60. package/src/icons/modules/ItManagement.tsx +19 -0
  61. package/src/icons/modules/Meetings.tsx +19 -0
  62. package/src/icons/modules/Pages.tsx +21 -0
  63. package/src/icons/modules/SalaryAdvance.tsx +21 -0
  64. package/src/icons/modules/index.ts +5 -0
package/README.md CHANGED
@@ -1,54 +1,133 @@
1
- # F0 React Native
1
+ # F0 React Native 🎨
2
2
 
3
3
  React Native implementation of the F0 Design System.
4
4
 
5
- ## Installation
5
+ ## 🚀 Quick Setup
6
+
7
+ ### 1️⃣ Install Dependencies
6
8
 
7
9
  ```bash
8
- npm install @factorialco/f0-react-native
9
- # or
10
- yarn add @factorialco/f0-react-native
11
- # or
12
- pnpm add @factorialco/f0-react-native
10
+ # Install package and peer dependencies
11
+ pnpm add @factorialco/f0-react-native \
12
+ date-fns@^3.6.0 \
13
+ nativewind@^4.2.1 \
14
+ react-native-reanimated@^3.19.4 \
15
+ react-native-safe-area-context@^5.4.0 \
16
+ react-native-svg@^15.12.1 \
17
+ react-native-worklets-core@^1.6.2 \
18
+ tailwindcss@^3.4.19 \
19
+ twemoji-parser@^14.0.0
20
+
21
+ # Install dev dependencies
22
+ pnpm add -D tailwindcss@^3.4.19
13
23
  ```
14
24
 
15
- ## Usage
25
+ ### 2️⃣ Configure Babel
26
+
27
+ **`babel.config.js`:**
28
+
29
+ ```javascript
30
+ module.exports = function (api) {
31
+ api.cache(true);
32
+ return {
33
+ presets: [
34
+ ["babel-preset-expo", { jsxImportSource: "nativewind" }], // Expo only
35
+ "nativewind/babel",
36
+ ],
37
+ plugins: [
38
+ "react-native-worklets-core/plugin",
39
+ "react-native-reanimated/plugin", // MUST be last
40
+ ],
41
+ };
42
+ };
43
+ ```
16
44
 
17
- ```tsx
18
- import { ExampleComponent } from "@factorialco/f0-react-native";
45
+ ### 3️⃣ Configure Metro
19
46
 
20
- export default function App() {
21
- return <ExampleComponent text="Hello from F0!" />;
22
- }
47
+ **`metro.config.js`:**
48
+
49
+ ```javascript
50
+ const { getDefaultConfig } = require("expo/metro-config");
51
+ const { withNativeWind } = require("nativewind/metro");
52
+
53
+ const config = getDefaultConfig(__dirname);
54
+ module.exports = withNativeWind(config, { input: "./global.css" });
23
55
  ```
24
56
 
25
- ## Icons
57
+ ### 4️⃣ Configure Tailwind
26
58
 
27
- The package includes a set of icons that can be imported and used in your React Native application.
59
+ **`tailwind.config.js`:**
28
60
 
29
- ```tsx
30
- import { Icon, AppIcons } from "@factorialco/f0-react-native";
61
+ ```javascript
62
+ const f0Config = require("@factorialco/f0-react-native/tailwind.config");
31
63
 
32
- // Basic usage
33
- <Icon icon={AppIcons.Calendar} size="sm" />;
34
- <Icon icon={AppIcons.Calendar} size="md" />;
35
- <Icon icon={AppIcons.Calendar} size="lg" />;
64
+ module.exports = {
65
+ ...f0Config,
66
+ content: [
67
+ ...(f0Config.content || []),
68
+ "./app/**/*.{js,jsx,ts,tsx}",
69
+ "./src/**/*.{js,jsx,ts,tsx}",
70
+ ],
71
+ presets: [require("nativewind/preset"), ...(f0Config.presets || [])],
72
+ };
36
73
  ```
37
74
 
38
- ## Development
75
+ ### 5️⃣ Create Global CSS
39
76
 
40
- ### Building
77
+ **`global.css` (root):**
41
78
 
42
- ```bash
43
- pnpm build
79
+ ```css
80
+ @tailwind base;
81
+ @tailwind components;
82
+ @tailwind utilities;
44
83
  ```
45
84
 
46
- ### Testing
85
+ **Import in your entry file (`App.tsx` or `index.js`):**
86
+
87
+ ```typescript
88
+ import "./global.css";
89
+ ```
90
+
91
+ ### 6️⃣ TypeScript Support (Optional)
92
+
93
+ **`nativewind-env.d.ts` (root):**
94
+
95
+ ```typescript
96
+ /// <reference types="nativewind/types" />
97
+ ```
98
+
99
+ ## 📦 Usage
100
+
101
+ ```tsx
102
+ import { Button, Icon, AppIcons } from "@factorialco/f0-react-native";
103
+
104
+ export default function App() {
105
+ return (
106
+ <>
107
+ <Button>Click me</Button>
108
+ <Icon icon={AppIcons.Calendar} size="md" />
109
+ </>
110
+ );
111
+ }
112
+ ```
113
+
114
+ ## 🔧 Development
47
115
 
48
116
  ```bash
117
+ # Run tests
49
118
  pnpm test
119
+
120
+ # Type check
121
+ pnpm tsc-check
122
+
123
+ # Lint
124
+ pnpm lint
50
125
  ```
51
126
 
52
- ## License
127
+ ## 📚 Documentation
128
+
129
+ For detailed installation guide, see [docs/INSTALLATION.md](./docs/INSTALLATION.md).
130
+
131
+ ## 📄 License
53
132
 
54
133
  MIT
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@factorialco/f0-react-native",
3
- "version": "0.20.1",
3
+ "version": "0.21.0",
4
4
  "type": "module",
5
5
  "description": "React Native components for F0 Design System",
6
6
  "main": "src/index.ts",
@@ -30,6 +30,12 @@
30
30
  "react-native": "./src/icons/modules/index.ts",
31
31
  "default": "./src/icons/modules/index.ts"
32
32
  },
33
+ "./src/icons/app": {
34
+ "import": "./src/icons/app/index.ts",
35
+ "require": "./src/icons/app/index.ts",
36
+ "react-native": "./src/icons/app/index.ts",
37
+ "default": "./src/icons/app/index.ts"
38
+ },
33
39
  "./tailwind.config": "./tailwind.config.ts"
34
40
  },
35
41
  "files": [
@@ -46,52 +52,64 @@
46
52
  "license": "MIT",
47
53
  "peerDependencies": {
48
54
  "date-fns": "^3.6.0",
49
- "nativewind": "^4.1.23",
50
- "react": "^18.2.0",
51
- "react-native": "^0.76.6",
52
- "react-native-svg": "^15.8.0",
53
- "tailwindcss": "^3.4.3",
54
- "twemoji-parser": "^14.0.0",
55
- "typescript": "^5.7.2"
55
+ "nativewind": "^4.2.1",
56
+ "react": "*",
57
+ "react-native": "*",
58
+ "react-native-reanimated": "^3.19.4",
59
+ "react-native-safe-area-context": "^5.4.0",
60
+ "react-native-svg": "^15.12.1",
61
+ "react-native-worklets-core": "^1.6.2",
62
+ "tailwindcss": "^3.4.19",
63
+ "twemoji-parser": "^14.0.0"
64
+ },
65
+ "peerDependenciesMeta": {
66
+ "react-native-worklets-core": {
67
+ "optional": true
68
+ }
56
69
  },
57
70
  "dependencies": {
58
71
  "clsx": "^2.1.1",
59
72
  "cva": "1.0.0-beta.3",
60
- "expo-clipboard": "^7.1.4",
73
+ "expo-clipboard": "~8.0.8",
61
74
  "lodash": "^4.17.21",
62
- "react-native-safe-area-context": "4.12.0",
63
75
  "tailwind-merge": "^2.6.0",
64
- "@factorialco/f0-core": "1.29.0"
76
+ "@factorialco/f0-core": "1.42.1"
65
77
  },
66
78
  "devDependencies": {
79
+ "@babel/core": "^7.28.0",
67
80
  "@svgr/cli": "^8.1.0",
68
- "@testing-library/react-native": "^12.9.0",
81
+ "@testing-library/react-native": "^13.3.3",
69
82
  "@types/jest": "^29.5.14",
70
83
  "@types/lodash": "^4.17.16",
71
- "@types/react": "^18.2.0",
72
- "@types/react-native": "^0.73.0",
84
+ "@types/react": "~19.1.17",
73
85
  "@types/twemoji-parser": "^13.1.4",
86
+ "babel-jest": "^29.7.0",
87
+ "babel-preset-expo": "^54.0.8",
74
88
  "globals": "^16.0.0",
75
89
  "jest": "^29.7.0",
76
- "nativewind": "^4.1.23",
77
- "npm-run-all": "^4.1.5",
90
+ "nativewind": "^4.2.1",
91
+ "npm-run-all2": "^7.0.1",
78
92
  "prettier": "^3.5.2",
79
93
  "prettier-plugin-tailwindcss": "^0.6.10",
80
- "react": "^18.2.0",
81
- "react-native": "^0.76.6",
82
- "react-native-svg": "^15.8.0",
83
- "tailwindcss": "^3.4.3",
94
+ "react": "^19.1.0",
95
+ "react-native": "^0.81.5",
96
+ "react-native-svg": "15.12.1",
97
+ "react-test-renderer": "19.1.0",
98
+ "tailwindcss": "^3.4.19",
84
99
  "tailwindcss-animate": "^1.0.7",
85
- "typescript": "^5.7.2",
86
- "babel-jest": "^29.7.0"
100
+ "typescript": "~5.9.3"
87
101
  },
88
102
  "scripts": {
89
103
  "build": "echo 'we ship source code as is'; exit 0",
90
104
  "lint": "eslint -c eslint.config.mjs . --report-unused-disable-directives --max-warnings 0",
91
- "lint-fix": "pnpm run lint -- --fix",
105
+ "lint-fix": "eslint -c eslint.config.mjs . --fix --report-unused-disable-directives --max-warnings 0",
92
106
  "test": "jest",
93
- "generate-icons": "rm -fR src/icons/app/* src/icons/modules/* && run-p generate-app-icons generate-module-icons && find src/icons -name '*.tsx' -exec sed -i '' 's/SVGSVGElement/Svg/g; s/ xmlns=\"http:\\/\\/www.w3.org\\/2000\\/svg\"//g; s/ strokeWidth={[^}]*}//g; s/ strokeWidth=\"[^\"]*\"//g' {} +",
107
+ "test:watch": "jest --watch",
108
+ "test:ci": "jest --ci --coverage --coverageReporters=text --coverageReporters=lcov",
109
+ "generate-icons": "rm -fR src/icons/app/* src/icons/modules/* && run-p generate-app-icons generate-module-icons && find src/icons -name '*.tsx' -exec sed -i.bak 's/SVGSVGElement/Svg/g; s/ xmlns=\"http:\\/\\/www.w3.org\\/2000\\/svg\"//g; s/ strokeWidth={[^}]*}//g; s/ strokeWidth=\"[^\"]*\"//g' {} + && find src/icons -name '*.bak' -delete && pnpm run prettier:format",
94
110
  "generate-app-icons": "npx @svgr/cli --out-dir src/icons/app --native --svg-props className={props.className} ../../packages/core/assets/icons/app",
95
- "generate-module-icons": "npx @svgr/cli --out-dir src/icons/modules --native --svg-props className={props.className} ../../packages/core/assets/icons/modules"
111
+ "generate-module-icons": "npx @svgr/cli --out-dir src/icons/modules --native --svg-props className={props.className} ../../packages/core/assets/icons/modules",
112
+ "prettier:format": "prettier --write \"src/**/*.{ts,tsx}\"",
113
+ "tsc": "tsc --noEmit"
96
114
  }
97
115
  }
@@ -5,7 +5,7 @@ exports[`DateAvatar Snapshot 1`] = `
5
5
  className="flex h-10 w-10 flex-col items-center justify-center rounded border border-solid border-f1-border-secondary bg-f1-background-inverse-secondary"
6
6
  >
7
7
  <Text
8
- className="pt-0.5 text-xs font-semibold uppercase leading-3 text-f1-special-highlight dark:text-f1-foreground-inverse-secondary"
8
+ className="dark:text-f1-foreground-inverse-secondary pt-0.5 text-xs font-semibold uppercase leading-3 text-f1-special-highlight"
9
9
  >
10
10
  Jan
11
11
  </Text>
@@ -11,7 +11,7 @@ export const DateAvatar = ({ date }: Props) => {
11
11
 
12
12
  return (
13
13
  <View className="flex h-10 w-10 flex-col items-center justify-center rounded border border-solid border-f1-border-secondary bg-f1-background-inverse-secondary">
14
- <Text className="pt-0.5 text-xs font-semibold uppercase leading-3 text-f1-special-highlight dark:text-f1-foreground-inverse-secondary">
14
+ <Text className="dark:text-f1-foreground-inverse-secondary pt-0.5 text-xs font-semibold uppercase leading-3 text-f1-special-highlight">
15
15
  {month}
16
16
  </Text>
17
17
  <Text className="flex items-center justify-center text-lg font-medium leading-tight text-f1-foreground">
@@ -2,7 +2,7 @@
2
2
 
3
3
  exports[`EmojiAvatar Snapshot - different sizes text emoji and diferent size 1`] = `
4
4
  <View
5
- className="w-6 h-6 rounded-sm flex aspect-square items-center justify-center border border-solid border-f1-border-secondary bg-f1-background dark:bg-f1-background-inverse-secondary"
5
+ className="w-6 h-6 rounded-sm dark:bg-f1-background-inverse-secondary flex aspect-square items-center justify-center border border-solid border-f1-border-secondary bg-f1-background"
6
6
  >
7
7
  <Text
8
8
  className="text-xs"
@@ -14,7 +14,7 @@ exports[`EmojiAvatar Snapshot - different sizes text emoji and diferent size 1`]
14
14
 
15
15
  exports[`EmojiAvatar Snapshot - different sizes text emoji and diferent size 2`] = `
16
16
  <View
17
- className="w-9 h-9 rounded-md flex aspect-square items-center justify-center border border-solid border-f1-border-secondary bg-f1-background dark:bg-f1-background-inverse-secondary"
17
+ className="w-9 h-9 rounded-md dark:bg-f1-background-inverse-secondary flex aspect-square items-center justify-center border border-solid border-f1-border-secondary bg-f1-background"
18
18
  >
19
19
  <Text
20
20
  className="text-sm"
@@ -26,7 +26,7 @@ exports[`EmojiAvatar Snapshot - different sizes text emoji and diferent size 2`]
26
26
 
27
27
  exports[`EmojiAvatar Snapshot - different sizes text emoji and diferent size 3`] = `
28
28
  <View
29
- className="w-10 h-10 rounded-lg flex aspect-square items-center justify-center border border-solid border-f1-border-secondary bg-f1-background dark:bg-f1-background-inverse-secondary"
29
+ className="w-10 h-10 rounded-lg dark:bg-f1-background-inverse-secondary flex aspect-square items-center justify-center border border-solid border-f1-border-secondary bg-f1-background"
30
30
  >
31
31
  <Text
32
32
  className="text-md"
@@ -26,7 +26,7 @@ export const EmojiAvatar = ({ emoji, size = "md", className }: Props) => {
26
26
  className={cn(
27
27
  className,
28
28
  sizes[size],
29
- "flex aspect-square items-center justify-center border border-solid border-f1-border-secondary bg-f1-background dark:bg-f1-background-inverse-secondary",
29
+ "dark:bg-f1-background-inverse-secondary flex aspect-square items-center justify-center border border-solid border-f1-border-secondary bg-f1-background",
30
30
  )}
31
31
  >
32
32
  <EmojiImage emoji={emoji} size={emojiSize[size]} />
@@ -1,16 +1,16 @@
1
- import { render } from "@testing-library/react-native"
2
- import React from "react"
3
- import { ExampleComponent } from "../ExampleComponent"
1
+ import { render } from "@testing-library/react-native";
2
+ import React from "react";
3
+ import { ExampleComponent } from "../ExampleComponent";
4
4
 
5
5
  describe("ExampleComponent", () => {
6
6
  it("renders correctly with default text", () => {
7
- const { getByText } = render(<ExampleComponent />)
8
- expect(getByText("Hello World")).toBeTruthy()
9
- })
7
+ const { getByText } = render(<ExampleComponent />);
8
+ expect(getByText("Hello World")).toBeTruthy();
9
+ });
10
10
 
11
11
  it("renders correctly with custom text", () => {
12
- const customText = "Custom Hello Text"
13
- const { getByText } = render(<ExampleComponent text={customText} />)
14
- expect(getByText(customText)).toBeTruthy()
15
- })
16
- })
12
+ const customText = "Custom Hello Text";
13
+ const { getByText } = render(<ExampleComponent text={customText} />);
14
+ expect(getByText(customText)).toBeTruthy();
15
+ });
16
+ });
@@ -0,0 +1,19 @@
1
+ import Svg, { Path } from "react-native-svg";
2
+ import type { SvgProps } from "react-native-svg";
3
+ import { Ref, forwardRef } from "react";
4
+ const SvgAscending = (props: SvgProps, ref: Ref<Svg>) => (
5
+ <Svg
6
+ fill="none"
7
+ viewBox="0 0 24 24"
8
+ className={props.className}
9
+ ref={ref}
10
+ {...props}
11
+ >
12
+ <Path
13
+ fill="currentColor"
14
+ d="M6.19 5.19a.65.65 0 0 1 .92 0l.014.014.007.008.034.034.008.007.007.007.007.007.013.014.008.007.007.007.007.008.007.006.007.007.007.008.028.028.008.007.007.008.007.007.008.007.007.008.007.006.007.008.088.088.008.007.007.008.022.022.008.007.007.008.008.008.008.007.006.007.008.008.008.007.007.008.015.015.008.007.007.008.008.008.008.007.008.008.006.007.016.016.008.007.007.008.023.023.008.007.008.008.007.008.03.03.009.008.015.015.007.008.07.07.008.007.149.149.007.008.094.094.009.008.031.031.008.009.07.07.01.008.023.024.007.008.086.086.01.008.046.047.008.009.133.133.007.006.032.032.007.007.054.055.008.007.008.008.007.008.03.03.009.008.008.008.006.007.024.024.008.007.006.007.016.016.008.007.007.008.015.015.008.007.007.008.008.008.008.007.006.007.008.008.008.007.007.008.008.008.008.007.006.007.008.008.008.007.007.008.008.007.007.007.022.023.008.007.007.008.007.006.007.008.008.007.007.008.008.007.007.008.021.021.008.007.007.008.021.021L9 7.08l.007.008.014.013.007.007.007.008.007.007.008.007.007.007.006.007.014.014.008.007.007.007.007.008.04.04.008.007.035.035.006.006.04.041.007.006.007.007.006.007.014.014.007.006.005.006.046.046.007.006.006.007.007.006.006.007.025.025.007.006.006.007.007.006.005.006.006.006.007.006.006.007.006.006.007.006.006.007.017.017.007.006.006.007.082.082.006.005.006.006.005.005.011.012.006.005.005.006.006.006.006.005.005.006.043.042.005.005.005.006.006.005.005.006.01.01.006.005.005.005.01.01.005.005.01.01.005.006.03.029.004.004.005.005.004.005.01.01.004.003.005.005.004.005.005.005.005.004.004.005.005.004.004.005.017.017.005.004.004.005.005.004.004.005.008.008.005.003q0 .003.003.005l.012.012.005.004.02.02.002.003.016.016.004.003.003.004.004.004.004.003.003.004.004.004.004.002.002.004.004.003.003.004.004.003.003.004.003.003.004.003.003.004.006.006.004.003.003.004.029.029.003.002.002.003.006.006q0 0 .003.002 0 .001.002.002l.002.002.002.003.01.01.003.002.002.003.002.002.003.002.002.002.002.003.02.02h.001l.002.002.001.002.002.002.002.001.001.002.002.001.001.002h.002l.001.003h.002v.003h.002l.002.002v.002l.005.004h.002l.002.003.004.004v.001l.002.001v.001h.001v.001h.001v.001h.001v.001h.001l.083.103a.651.651 0 0 1-.9.9L9.19 9.11v-.002h-.002v-.002h-.001l-.001-.002h-.001L9.18 9.1H9.18l-.002-.002-.001-.002-.004-.004-.002-.001-.001-.002-.001-.001-.002-.001-.001-.002-.002-.001v-.002L9.16 9.08v-.002l-.003-.001v-.002l-.003-.002h-.002l-.002-.003V9.07l-.02-.02-.003-.001-.002-.002-.002-.003-.002-.002-.003-.002-.002-.003-.01-.01-.002-.002-.002-.003q-.002 0-.003-.002l-.002-.003-.006-.005-.003-.002-.002-.003-.03-.03-.003-.002-.003-.004-.006-.006-.004-.003-.003-.004-.003-.003-.004-.003-.003-.004-.004-.003-.003-.004-.003-.003-.003-.004-.004-.003-.004-.003-.003-.004L9 8.919l-.004-.003-.003-.004-.015-.016q-.003 0-.004-.003l-.02-.02-.004-.004-.012-.012-.004-.004q-.003-.001-.004-.004l-.008-.008-.005-.004-.004-.005-.005-.004-.004-.005-.017-.017-.005-.004-.004-.005-.005-.004-.004-.005-.005-.005-.005-.004-.005-.005-.003-.005-.01-.01q-.003 0-.005-.003L8.83 8.75l-.004-.005-.03-.03-.005-.004-.01-.01-.005-.006-.01-.01-.005-.004-.005-.006-.01-.01-.006-.005-.005-.006-.006-.005-.004-.006-.043-.043-.006-.004-.005-.006-.006-.006-.006-.005-.005-.006-.011-.012-.006-.004-.006-.006-.005-.006-.082-.082-.007-.006-.006-.007-.017-.018-.007-.005-.006-.007-.006-.006-.007-.006-.006-.007-.005-.006-.007-.005-.006-.007-.007-.006-.006-.007-.025-.025-.007-.006-.006-.007-.007-.006-.006-.007-.046-.046-.006-.006-.006-.006-.014-.014-.007-.006-.007-.007-.005-.007-.041-.04-.007-.006-.034-.035-.007-.007-.041-.041-.008-.007-.007-.007-.007-.008-.013-.014-.008-.006-.007-.007-.007-.008-.007-.007-.008-.007-.006-.008-.014-.013L8.08 8l-.007-.008-.021-.021-.008-.007-.007-.008-.021-.022-.008-.006L8 7.92l-.008-.007-.007-.008-.007-.007-.007-.007-.008-.007-.007-.008-.022-.023-.008-.006-.007-.008-.008-.007-.007-.008-.008-.008-.007-.007-.007-.007-.008-.008-.008-.007-.007-.008-.007-.008-.008-.006-.007-.008-.008-.008-.008-.007-.007-.008L7.8 7.72l-.008-.007-.007-.008-.015-.016-.008-.006-.007-.008-.024-.024-.007-.007-.008-.007-.007-.008-.031-.031-.008-.007-.008-.008-.007-.008-.054-.055-.008-.006-.031-.032-.007-.007-.133-.133-.009-.008-.047-.047-.008-.009-.057-.057v11.43a.651.651 0 0 1-1.287.131L6 18.651V7.22l-.058.057-.007.009-.047.047-.01.008-.132.133-.007.007-.031.032-.008.006-.054.055-.007.008-.008.008-.008.007-.031.03-.007.009-.008.007-.008.007-.023.024-.007.008-.008.006-.015.016-.007.008-.008.007-.016.015-.006.008-.008.007-.008.008-.007.008-.008.006-.008.008-.006.008-.008.007-.008.008-.007.007-.008.007-.007.008-.007.008-.008.007-.007.008-.008.006-.022.023-.007.008-.008.007-.007.007-.008.007-.006.008-.008.007-.007.008-.008.006-.021.022-.007.008-.008.007-.021.021L5.22 8l-.008.007-.014.013-.007.008-.007.007-.007.007-.007.008-.007.007-.008.006-.013.014-.007.008-.007.007-.008.007-.04.04-.008.008-.034.035-.007.005-.04.041-.007.007-.006.007-.007.006-.014.014-.006.006-.007.006-.046.046-.005.007-.007.006-.006.007-.007.006-.025.025-.006.007-.007.006-.006.007-.007.005-.006.006-.005.007-.007.006-.006.006-.006.007-.007.005-.017.018-.006.007-.007.006-.082.082-.005.006-.006.006-.006.004-.011.012-.005.006-.006.005-.006.006-.005.006-.006.004-.043.043-.005.006-.006.005-.004.006-.006.005-.01.01-.005.006-.006.004-.01.01-.004.006-.01.01-.006.005-.03.029-.003.005-.005.005-.005.004-.01.01-.004.004-.005.005-.004.004-.005.005-.004.005-.005.004-.004.005-.005.004-.018.017q0 .003-.003.005l-.005.004-.004.005-.005.004-.008.008-.004.004-.005.004-.011.012-.004.005-.02.02-.004.002-.015.016-.003.004-.004.003-.004.004-.003.004-.004.003-.004.003q0 .003-.003.004l-.004.003-.003.004-.004.003-.002.004-.004.003-.003.003-.003.004-.004.003-.006.006-.003.004-.004.002-.03.03-.001.003q0 0-.003.002l-.006.005-.002.003-.003.002-.002.003-.003.002-.01.01-.001.003-.003.002-.002.002-.002.003-.002.002-.003.002-.02.02v.001l-.003.002-.001.001-.002.002-.001.002-.002.001-.001.002h-.002l-.001.003h-.002l-.001.003h-.002l-.001.002-.001.002h-.002l-.004.005v.002L4.12 9.1l-.005.003v.001l-.002.001v.002h-.002v.002H4.11v.001l-.102.083a.65.65 0 0 1-.9-.9l.082-.103h.002v-.002h.002v-.002h.002v-.002h.001l.004-.003V8.18l.002-.002.002-.001.004-.004.001-.002.002-.001v-.001l.002-.002.002-.001v-.002l.003-.001v-.002h.003v-.003h.003l.002-.003v-.002l.002-.002h.002l.02-.02.002-.003.002-.002.003-.002.002-.002.002-.003.003-.002.01-.01.001-.003q.002 0 .003-.002l.002-.002.003-.002.006-.006.002-.003.003-.002.03-.03.002-.003.004-.003.006-.006.003-.004.004-.003.003-.003.003-.004.004-.003.002-.004q.003 0 .004-.003l.003-.004.004-.002.004-.004.003-.004.004-.003L3.382 8l.003-.004.004-.003.015-.016.003-.003.02-.02.005-.004.011-.012.004-.005q.003 0 .005-.003l.008-.008.004-.005.005-.004.004-.005.005-.004.017-.017.004-.005.005-.004.004-.005.005-.004.005-.005.003-.005.005-.005.005-.004.01-.01.004-.004.005-.005.005-.004.029-.03q.003-.001.005-.005l.01-.01.005-.005.01-.01.005-.005.006-.005.01-.01.005-.006.006-.005.004-.006.006-.005.043-.042.005-.006.006-.005.006-.006.005-.006.006-.005.011-.012.005-.005.006-.006.006-.005.082-.082.006-.007.007-.006.017-.017.006-.007.007-.006.006-.006.006-.007.006-.006.006-.006.006-.006.007-.006.006-.007.007-.006.025-.025.006-.007.007-.006.006-.007.006-.006.046-.046.006-.006.007-.006.014-.014.006-.007.006-.007.007-.006.041-.04.006-.007.034-.035.008-.006.041-.041.007-.008.007-.007.008-.007.013-.014.007-.007.007-.007.008-.007.007-.007.006-.008.008-.007.014-.013.007-.008.008-.007.021-.021.007-.008.008-.007.021-.021.007-.008L4.381 7l.007-.008.008-.007.006-.008.008-.006.007-.008.008-.007.022-.023.007-.007.008-.007.007-.008.008-.007.007-.008.007-.007.008-.007.008-.008.007-.008.007-.007.008-.008.007-.007.008-.007.008-.008.007-.008.007-.007.016-.015.007-.008.008-.007.015-.016.007-.007.008-.007.023-.024.007-.007.008-.008.008-.007.031-.031.007-.008.008-.008.008-.007.054-.055.007-.007.031-.032.008-.006.133-.133.008-.009.047-.047.008-.008.086-.086.008-.008.024-.024.008-.008.07-.07.009-.009.03-.031.01-.008.093-.094.008-.008.149-.149.007-.007.07-.07.008-.008.015-.015.008-.007.031-.032.007-.007.008-.008.008-.007.023-.023.007-.008.008-.007.015-.016.007-.007.008-.008.008-.007.008-.008.007-.008.007-.007.016-.015.007-.008.008-.007.007-.008.007-.007.008-.007.008-.008.007-.008.008-.007.022-.022.007-.008.008-.007.088-.088.006-.008.008-.006L6 5.38l.008-.007.007-.007.006-.008.008-.007.029-.028.006-.008.008-.007.007-.006.007-.008.007-.007.008-.007.013-.014.007-.007.007-.007.008-.007.034-.034.007-.008zm14.088 12.184a.65.65 0 0 1 0 1.273l-.131.014h-6.868a.651.651 0 0 1 0-1.3h6.868zm-1.717-3.91a.65.65 0 0 1 0 1.273l-.131.014h-5.15a.65.65 0 0 1 0-1.3h5.15zm-1.717-3.91a.65.65 0 0 1 0 1.273l-.131.014h-3.434a.65.65 0 0 1 0-1.301h3.434zM15.127 5.65a.65.65 0 0 1 0 1.274l-.13.013h-1.718a.65.65 0 0 1 0-1.3h1.717z"
15
+ />
16
+ </Svg>
17
+ );
18
+ const ForwardRef = forwardRef(SvgAscending);
19
+ export default ForwardRef;
@@ -0,0 +1,28 @@
1
+ import Svg, { Path, Circle } from "react-native-svg";
2
+ import type { SvgProps } from "react-native-svg";
3
+ import { Ref, forwardRef } from "react";
4
+ const SvgBalance = (props: SvgProps, ref: Ref<Svg>) => (
5
+ <Svg
6
+ fill="none"
7
+ viewBox="0 0 24 24"
8
+ className={props.className}
9
+ ref={ref}
10
+ {...props}
11
+ >
12
+ <Path
13
+ stroke="currentColor"
14
+ strokeLinecap="round"
15
+ d="M10 19h4M12 13v6M5 12.5l14 1"
16
+ />
17
+ <Circle cx={7.5} cy={6.5} r={2.5} stroke="currentColor" />
18
+ <Circle
19
+ cx={17}
20
+ cy={7.5}
21
+ r={2.5}
22
+ fill="currentColor"
23
+ stroke="currentColor"
24
+ />
25
+ </Svg>
26
+ );
27
+ const ForwardRef = forwardRef(SvgBalance);
28
+ export default ForwardRef;
@@ -0,0 +1,24 @@
1
+ import Svg, { Path } from "react-native-svg";
2
+ import type { SvgProps } from "react-native-svg";
3
+ import { Ref, forwardRef } from "react";
4
+ const SvgCardPin = (props: SvgProps, ref: Ref<Svg>) => (
5
+ <Svg
6
+ fill="none"
7
+ viewBox="0 0 24 24"
8
+ className={props.className}
9
+ ref={ref}
10
+ {...props}
11
+ >
12
+ <Path
13
+ stroke="currentColor"
14
+ d="M7 6h10a3 3 0 0 1 3 3v6a3 3 0 0 1-3 3H7a3 3 0 0 1-3-3V9a3 3 0 0 1 3-3Z"
15
+ />
16
+ <Path
17
+ stroke="currentColor"
18
+ strokeLinecap="round"
19
+ d="M8 12v.1M12 12v.1M16 12v.1"
20
+ />
21
+ </Svg>
22
+ );
23
+ const ForwardRef = forwardRef(SvgCardPin);
24
+ export default ForwardRef;
@@ -0,0 +1,21 @@
1
+ import Svg, { Rect, Path } from "react-native-svg";
2
+ import type { SvgProps } from "react-native-svg";
3
+ import { Ref, forwardRef } from "react";
4
+ const SvgChip = (props: SvgProps, ref: Ref<Svg>) => (
5
+ <Svg
6
+ fill="none"
7
+ viewBox="0 0 24 24"
8
+ className={props.className}
9
+ ref={ref}
10
+ {...props}
11
+ >
12
+ <Rect width={12} height={12} x={6} y={6} stroke="currentColor" rx={3} />
13
+ <Path
14
+ stroke="currentColor"
15
+ strokeLinecap="round"
16
+ d="M9 6V4M9 20v-2M18 9h2M4 9h2M15 6V4M15 20v-2M18 15h2M4 15h2M12 9l-3 3M15 12l-3 3"
17
+ />
18
+ </Svg>
19
+ );
20
+ const ForwardRef = forwardRef(SvgChip);
21
+ export default ForwardRef;
@@ -0,0 +1,19 @@
1
+ import Svg, { Path } from "react-native-svg";
2
+ import type { SvgProps } from "react-native-svg";
3
+ import { Ref, forwardRef } from "react";
4
+ const SvgClockBack = (props: SvgProps, ref: Ref<Svg>) => (
5
+ <Svg
6
+ fill="none"
7
+ viewBox="0 0 24 24"
8
+ className={props.className}
9
+ ref={ref}
10
+ {...props}
11
+ >
12
+ <Path
13
+ fill="currentColor"
14
+ d="M10.508 4.497A7.65 7.65 0 1 1 6.591 17.41a.65.65 0 0 1 .919-.919 6.352 6.352 0 0 0 10.566-2.646 6.352 6.352 0 0 0-7.315-8.071A6.35 6.35 0 0 0 5.679 11.4l.861-.86.103-.083a.65.65 0 0 1 .9.9l-.083.103-2 2a.65.65 0 0 1-.817.083l-.103-.083-2-2-.083-.103a.65.65 0 0 1 .9-.9l.103.083.91.91a7.65 7.65 0 0 1 6.138-6.953M12 8.35a.65.65 0 0 1 .65.65v2.623l3.172 1.813.108.076a.65.65 0 0 1-.632 1.106l-.12-.053-3.5-2A.65.65 0 0 1 11.35 12V9a.65.65 0 0 1 .65-.65"
15
+ />
16
+ </Svg>
17
+ );
18
+ const ForwardRef = forwardRef(SvgClockBack);
19
+ export default ForwardRef;
@@ -0,0 +1,27 @@
1
+ import Svg, { Path } from "react-native-svg";
2
+ import type { SvgProps } from "react-native-svg";
3
+ import { Ref, forwardRef } from "react";
4
+ const SvgClockPlus = (props: SvgProps, ref: Ref<Svg>) => (
5
+ <Svg
6
+ fill="none"
7
+ viewBox="0 0 24 24"
8
+ className={props.className}
9
+ ref={ref}
10
+ {...props}
11
+ >
12
+ <Path
13
+ stroke="currentColor"
14
+ strokeLinecap="round"
15
+ d="M13 19.938Q12.508 20 12 20a8 8 0 1 1 7.91-6.793"
16
+ />
17
+ <Path
18
+ stroke="currentColor"
19
+ strokeLinecap="round"
20
+ strokeLinejoin="round"
21
+ d="M12 9v3l3.5 2"
22
+ />
23
+ <Path stroke="currentColor" strokeLinecap="round" d="M16 18h4M18 16v4" />
24
+ </Svg>
25
+ );
26
+ const ForwardRef = forwardRef(SvgClockPlus);
27
+ export default ForwardRef;
@@ -0,0 +1,20 @@
1
+ import Svg, { Path } from "react-native-svg";
2
+ import type { SvgProps } from "react-native-svg";
3
+ import { Ref, forwardRef } from "react";
4
+ const SvgCloud = (props: SvgProps, ref: Ref<Svg>) => (
5
+ <Svg
6
+ fill="none"
7
+ viewBox="0 0 24 24"
8
+ className={props.className}
9
+ ref={ref}
10
+ {...props}
11
+ >
12
+ <Path
13
+ stroke="currentColor"
14
+ strokeLinejoin="round"
15
+ d="M12 6a4 4 0 0 1 4 4 4 4 0 0 1 0 8H8a4 4 0 0 1 0-8 4 4 0 0 1 4-4Z"
16
+ />
17
+ </Svg>
18
+ );
19
+ const ForwardRef = forwardRef(SvgCloud);
20
+ export default ForwardRef;
@@ -0,0 +1,31 @@
1
+ import Svg, { Path } from "react-native-svg";
2
+ import type { SvgProps } from "react-native-svg";
3
+ import { Ref, forwardRef } from "react";
4
+ const SvgCommand = (props: SvgProps, ref: Ref<Svg>) => (
5
+ <Svg
6
+ fill="none"
7
+ viewBox="0 0 24 24"
8
+ className={props.className}
9
+ ref={ref}
10
+ {...props}
11
+ >
12
+ <Path
13
+ stroke="currentColor"
14
+ strokeLinecap="round"
15
+ strokeLinejoin="round"
16
+ d="m8 9 3 3-3 3"
17
+ />
18
+ <Path
19
+ stroke="currentColor"
20
+ d="M7 6h10a3 3 0 0 1 3 3v6a3 3 0 0 1-3 3H7a3 3 0 0 1-3-3V9a3 3 0 0 1 3-3Z"
21
+ />
22
+ <Path
23
+ stroke="currentColor"
24
+ strokeLinecap="round"
25
+ strokeLinejoin="round"
26
+ d="M13 15h3"
27
+ />
28
+ </Svg>
29
+ );
30
+ const ForwardRef = forwardRef(SvgCommand);
31
+ export default ForwardRef;
@@ -0,0 +1,25 @@
1
+ import Svg, { Path } from "react-native-svg";
2
+ import type { SvgProps } from "react-native-svg";
3
+ import { Ref, forwardRef } from "react";
4
+ const SvgComputer = (props: SvgProps, ref: Ref<Svg>) => (
5
+ <Svg
6
+ fill="none"
7
+ viewBox="0 0 24 24"
8
+ className={props.className}
9
+ ref={ref}
10
+ {...props}
11
+ >
12
+ <Path
13
+ stroke="currentColor"
14
+ strokeLinecap="round"
15
+ d="M5 18h8M9 15v3M12.5 7H6.2c-1.12 0-1.68 0-2.108.218a2 2 0 0 0-.874.874C3 8.52 3 9.08 3 10.2v1.6c0 1.12 0 1.68.218 2.108a2 2 0 0 0 .874.874C4.52 15 5.08 15 6.2 15h6.3"
16
+ />
17
+ <Path
18
+ stroke="currentColor"
19
+ d="M15 8c0-.932 0-1.398.152-1.765a2 2 0 0 1 1.083-1.083C16.602 5 17.068 5 18 5s1.398 0 1.765.152a2 2 0 0 1 1.083 1.083C21 6.602 21 7.068 21 8v7c0 .932 0 1.398-.152 1.765a2 2 0 0 1-1.083 1.083C19.398 18 18.932 18 18 18s-1.398 0-1.765-.152a2 2 0 0 1-1.083-1.083C15 16.398 15 15.932 15 15z"
20
+ />
21
+ <Path stroke="currentColor" strokeLinecap="round" d="M18 15v.1" />
22
+ </Svg>
23
+ );
24
+ const ForwardRef = forwardRef(SvgComputer);
25
+ export default ForwardRef;
@@ -0,0 +1,21 @@
1
+ import Svg, { Path } from "react-native-svg";
2
+ import type { SvgProps } from "react-native-svg";
3
+ import { Ref, forwardRef } from "react";
4
+ const SvgContactless = (props: SvgProps, ref: Ref<Svg>) => (
5
+ <Svg
6
+ fill="none"
7
+ viewBox="0 0 24 24"
8
+ className={props.className}
9
+ ref={ref}
10
+ {...props}
11
+ >
12
+ <Path stroke="currentColor" strokeLinecap="round" d="M6.5 12v.1" />
13
+ <Path
14
+ stroke="currentColor"
15
+ strokeLinecap="round"
16
+ d="M15 5a8.95 8.95 0 0 1 3.363 7A8.95 8.95 0 0 1 15 19M11 7.517A5.73 5.73 0 0 1 13.154 12c0 1.814-.841 3.43-2.154 4.483"
17
+ />
18
+ </Svg>
19
+ );
20
+ const ForwardRef = forwardRef(SvgContactless);
21
+ export default ForwardRef;
@@ -0,0 +1,21 @@
1
+ import Svg, { Path } from "react-native-svg";
2
+ import type { SvgProps } from "react-native-svg";
3
+ import { Ref, forwardRef } from "react";
4
+ const SvgCornerHandle = (props: SvgProps, ref: Ref<Svg>) => (
5
+ <Svg
6
+ fill="none"
7
+ viewBox="0 0 24 24"
8
+ className={props.className}
9
+ ref={ref}
10
+ {...props}
11
+ >
12
+ <Path
13
+ stroke="currentColor"
14
+ strokeLinecap="round"
15
+ strokeLinejoin="round"
16
+ d="M16 6 6 16m11-4.5L11.5 17"
17
+ />
18
+ </Svg>
19
+ );
20
+ const ForwardRef = forwardRef(SvgCornerHandle);
21
+ export default ForwardRef;