@ronas-it/nx-generators 0.22.0-alpha.3 → 0.22.0-alpha.5

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 (48) hide show
  1. package/package.json +1 -1
  2. package/src/generators/expo-app/generator.js +3 -1
  3. package/src/generators/expo-app/generator.js.map +1 -1
  4. package/src/generators/expo-app/schema.d.ts +1 -0
  5. package/src/generators/expo-app/schema.json +6 -0
  6. package/src/shared/dependencies.d.ts +2 -0
  7. package/src/shared/dependencies.js +4 -2
  8. package/src/shared/dependencies.js.map +1 -1
  9. package/src/shared/generators/rn-styles/lib-files/shared/ui/styles/src/lib/fonts/Manrope-Bold.ttf +0 -0
  10. package/src/shared/generators/rn-styles/lib-files/shared/ui/styles/src/lib/fonts/Manrope-Regular.ttf +0 -0
  11. package/src/shared/generators/rn-styles/lib-files/shared/ui/styles/src/lib/fonts/Manrope-SemiBold.ttf +0 -0
  12. package/src/shared/generators/rn-styles/lib-files/shared/ui/styles/src/lib/fonts/fonts.ts.template +3 -3
  13. package/src/shared/generators/rn-styles/lib-files/shared/ui/styles/src/lib/variables.ts.template +3 -3
  14. package/src/shared/generators/ui-kit/generator.js +12 -0
  15. package/src/shared/generators/ui-kit/generator.js.map +1 -1
  16. package/src/shared/generators/ui-kit/i18n/shared/en.json +11 -0
  17. package/src/shared/generators/ui-kit/layout-files/index.tsx.template +33 -15
  18. package/src/shared/generators/ui-kit/lib-files/shared/ui/ui-kit/src/assets/icons/check.svg.template +3 -0
  19. package/src/shared/generators/ui-kit/lib-files/shared/ui/ui-kit/src/assets/icons/close.svg.template +4 -0
  20. package/src/shared/generators/ui-kit/lib-files/shared/ui/ui-kit/src/assets/icons/index.ts.template +8 -0
  21. package/src/shared/generators/ui-kit/lib-files/shared/ui/ui-kit/src/assets/icons/search.svg.template +6 -0
  22. package/src/shared/generators/ui-kit/lib-files/shared/ui/ui-kit/src/assets/icons/under-construction.svg.template +158 -0
  23. package/src/shared/generators/ui-kit/lib-files/shared/ui/ui-kit/src/bottom-tab-navigator/component.tsx.template +63 -0
  24. package/src/shared/generators/ui-kit/lib-files/shared/ui/ui-kit/src/bottom-tab-navigator/index.ts.template +1 -0
  25. package/src/shared/generators/ui-kit/lib-files/shared/ui/ui-kit/src/checkbox/component.tsx.template +36 -0
  26. package/src/shared/generators/ui-kit/lib-files/shared/ui/ui-kit/src/checkbox/index.ts.template +1 -0
  27. package/src/shared/generators/ui-kit/lib-files/shared/ui/ui-kit/src/header/component.tsx.template +61 -0
  28. package/src/shared/generators/ui-kit/lib-files/shared/ui/ui-kit/src/header/index.ts.template +1 -0
  29. package/src/shared/generators/ui-kit/lib-files/shared/ui/ui-kit/src/image/component.tsx.template +20 -0
  30. package/src/shared/generators/ui-kit/lib-files/shared/ui/ui-kit/src/image/index.ts.template +1 -0
  31. package/src/shared/generators/ui-kit/lib-files/shared/ui/ui-kit/src/index.ts.template +8 -0
  32. package/src/shared/generators/ui-kit/lib-files/shared/ui/ui-kit/src/modal/component.tsx.template +12 -0
  33. package/src/shared/generators/ui-kit/lib-files/shared/ui/ui-kit/src/modal/index.ts.template +1 -0
  34. package/src/shared/generators/ui-kit/lib-files/shared/ui/ui-kit/src/search-input/component.tsx.template +92 -0
  35. package/src/shared/generators/ui-kit/lib-files/shared/ui/ui-kit/src/search-input/index.ts.template +1 -0
  36. package/src/shared/generators/ui-kit/lib-files/shared/ui/ui-kit/src/toast/component.tsx.template +92 -0
  37. package/src/shared/generators/ui-kit/lib-files/shared/ui/ui-kit/src/toast/index.ts.template +2 -0
  38. package/src/shared/generators/ui-kit/lib-files/shared/ui/ui-kit/src/toast/provider.tsx.template +12 -0
  39. package/src/shared/generators/ui-kit/lib-files/shared/ui/ui-kit/src/under-construction/component.tsx.template +31 -0
  40. package/src/shared/generators/ui-kit/lib-files/shared/ui/ui-kit/src/under-construction/index.ts.template +1 -0
  41. package/src/shared/generators/ui-kit/toast-service-files/index.ts.template +1 -0
  42. package/src/shared/generators/ui-kit/toast-service-files/service.ts.template +48 -0
  43. package/src/shared/tests-utils/utils.d.ts +1 -0
  44. package/src/shared/tests-utils/utils.js +11 -1
  45. package/src/shared/tests-utils/utils.js.map +1 -1
  46. package/src/shared/generators/rn-styles/lib-files/shared/ui/styles/src/lib/fonts/Gilroy-Bold.ttf +0 -0
  47. package/src/shared/generators/rn-styles/lib-files/shared/ui/styles/src/lib/fonts/Gilroy-Regular.ttf +0 -0
  48. package/src/shared/generators/rn-styles/lib-files/shared/ui/styles/src/lib/fonts/Gilroy-Semibold.ttf +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ronas-it/nx-generators",
3
- "version": "0.22.0-alpha.3",
3
+ "version": "0.22.0-alpha.5",
4
4
  "description": "Nx generators for Ronas IT projects",
5
5
  "license": "MIT",
6
6
  "author": "Ronas IT",
@@ -30,7 +30,9 @@ function expoAppGenerator(tree, options) {
30
30
  yield (0, generators_1.runAppEnvGenerator)(tree, options);
31
31
  yield (0, generators_1.runStorageGenerator)(tree, options);
32
32
  yield (0, generators_1.runRNStylesGenerator)(tree, options);
33
- yield (0, generators_1.runUiKitGenerator)(tree, options);
33
+ if (options.withUiKit) {
34
+ yield (0, generators_1.runUiKitGenerator)(tree, options);
35
+ }
34
36
  yield (0, generators_1.runNavigationUtilsGenerator)(tree, {
35
37
  appDirectory: options.directory,
36
38
  baseGeneratorType: enums_1.BaseGeneratorType.EXPO_APP,
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../plugin/src/generators/expo-app/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../plugin/src/generators/expo-app/generator.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ export interface ExpoAppGeneratorSchema {
2
2
  name: string;
3
3
  directory: string;
4
4
  withStore: boolean;
5
+ withUiKit: boolean;
5
6
  withApiClient?: boolean;
6
7
  withAuth?: boolean;
7
8
  withSentry: boolean;
@@ -28,6 +28,12 @@
28
28
  "default": false,
29
29
  "x-prompt": "Do you want to create store lib?"
30
30
  },
31
+ "withUiKit": {
32
+ "type": "boolean",
33
+ "description": "Add a UI-kit library with pre-built components to the app",
34
+ "default": false,
35
+ "x-prompt": "Do you want to create a UI-kit library with pre-built components?"
36
+ },
31
37
  "withFormUtils": {
32
38
  "type": "boolean",
33
39
  "description": "Add form utils library to the app",
@@ -46,6 +46,8 @@ export declare const dependencies: {
46
46
  'ui-kit': {
47
47
  'react-native-reanimated': string;
48
48
  'react-native-worklets': string;
49
+ 'expo-image': string;
50
+ 'react-native-toast-message': string;
49
51
  };
50
52
  store: {
51
53
  '@ronas-it/rtkq-entity-api': string;
@@ -42,13 +42,15 @@ exports.dependencies = {
42
42
  'js-cookie': '^3.0.5',
43
43
  },
44
44
  'rn-styles': {
45
- 'react-native-unistyles': '^3.0.22',
45
+ 'react-native-unistyles': '~3.1.1',
46
46
  'react-native-edge-to-edge': '^1.7.0',
47
- 'react-native-nitro-modules': '0.33.2',
47
+ 'react-native-nitro-modules': '~0.35.2',
48
48
  },
49
49
  'ui-kit': {
50
50
  'react-native-reanimated': '^4.1.5',
51
51
  'react-native-worklets': '0.7.1',
52
+ 'expo-image': '~3.0.10',
53
+ 'react-native-toast-message': '^2.3.3',
52
54
  },
53
55
  store: {
54
56
  '@ronas-it/rtkq-entity-api': '^0.5.0',
@@ -1 +1 @@
1
- {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../../../plugin/src/shared/dependencies.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../../../plugin/src/shared/dependencies.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { fontFamily } from '../variables';
2
2
 
3
3
  export const fonts = {
4
- [fontFamily.semiBold]: require('./Gilroy-Semibold.ttf'),
5
- [fontFamily.regular]: require('./Gilroy-Regular.ttf'),
6
- [fontFamily.bold]: require('./Gilroy-Bold.ttf'),
4
+ [fontFamily.semiBold]: require('./Manrope-SemiBold.ttf'),
5
+ [fontFamily.regular]: require('./Manrope-Regular.ttf'),
6
+ [fontFamily.bold]: require('./Manrope-Bold.ttf'),
7
7
  };
@@ -37,7 +37,7 @@ export const spacings = {
37
37
  };
38
38
 
39
39
  export const fontFamily = {
40
- regular: 'Gilroy Regular',
41
- bold: 'Gilroy Bold',
42
- semiBold: 'Gilroy SemiBold',
40
+ regular: 'Manrope Regular',
41
+ bold: 'Manrope Bold',
42
+ semiBold: 'Manrope SemiBold',
43
43
  };
@@ -11,23 +11,35 @@ const utils_1 = require("../../utils");
11
11
  function runUiKitGenerator(tree, options) {
12
12
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
13
13
  const appRoot = `apps/${options.directory}`;
14
+ const i18nRoot = `i18n/${options.directory}`;
14
15
  const libRoot = `libs/${options.directory}`;
15
16
  const libPath = `${(0, utils_1.getImportPathPrefix)(tree)}/${options.directory}`;
16
17
  const appPackagePath = `${appRoot}/package.json`;
17
18
  const appLayoutPath = `${appRoot}/app`;
19
+ const toastServicePath = `${libRoot}/shared/utils/toast-service/src`;
18
20
  // Generate ui-kit lib
19
21
  (0, child_process_1.execSync)(`npx nx g react-lib --app=${options.directory} --scope=shared --type=ui --name=ui-kit --withComponent=false`, {
20
22
  stdio: 'inherit',
21
23
  });
24
+ // Generate toast-service lib
25
+ (0, child_process_1.execSync)(`npx nx g react-lib --app=${options.directory} --scope=shared --type=utils --name=toast-service`, {
26
+ stdio: 'inherit',
27
+ });
22
28
  // Remove unnecessary files
23
29
  tree.delete(`${libRoot}/shared/ui/ui-kit/src/index.ts`);
24
30
  tree.delete(`${appLayoutPath}/index.tsx`);
31
+ tree.delete(`${i18nRoot}/shared/en.json`);
32
+ tree.delete(`${toastServicePath}/index.ts`);
25
33
  // Add lib files
26
34
  (0, devkit_1.generateFiles)(tree, path.join(__dirname, 'lib-files'), libRoot, Object.assign(Object.assign({}, options), { libPath }));
27
35
  // Add app files
28
36
  (0, devkit_1.generateFiles)(tree, path.join(__dirname, 'app-files'), appRoot, Object.assign(Object.assign({}, options), { libPath }));
29
37
  // Add layout files
30
38
  (0, devkit_1.generateFiles)(tree, path.join(__dirname, 'layout-files'), appLayoutPath, Object.assign(Object.assign({}, options), { libPath }));
39
+ // Add i18n files
40
+ (0, devkit_1.generateFiles)(tree, path.join(__dirname, 'i18n'), i18nRoot, {});
41
+ // Add toast-service files
42
+ (0, devkit_1.generateFiles)(tree, path.join(__dirname, 'toast-service-files'), toastServicePath, {});
31
43
  // Add dependencies
32
44
  (0, devkit_1.addDependenciesToPackageJson)(tree, dependencies_1.dependencies['ui-kit'], {});
33
45
  if ((0, fs_1.existsSync)(appPackagePath)) {
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../plugin/src/shared/generators/ui-kit/generator.ts"],"names":[],"mappings":";;AAOA,8CA8CC;;AArDD,iDAAyC;AACzC,2BAAgC;AAChC,6BAA6B;AAC7B,uCAA4F;AAC5F,qDAAkD;AAClD,uCAAkD;AAElD,SAAsB,iBAAiB,CAAC,IAAU,EAAE,OAA4C;;QAC9F,MAAM,OAAO,GAAG,QAAQ,OAAO,CAAC,SAAS,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,QAAQ,OAAO,CAAC,SAAS,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,GAAG,IAAA,2BAAmB,EAAC,IAAI,CAAC,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QAEpE,MAAM,cAAc,GAAG,GAAG,OAAO,eAAe,CAAC;QACjD,MAAM,aAAa,GAAG,GAAG,OAAO,MAAM,CAAC;QAEvC,sBAAsB;QACtB,IAAA,wBAAQ,EACN,4BAA4B,OAAO,CAAC,SAAS,+DAA+D,EAC5G;YACE,KAAK,EAAE,SAAS;SACjB,CACF,CAAC;QAEF,2BAA2B;QAC3B,IAAI,CAAC,MAAM,CAAC,GAAG,OAAO,gCAAgC,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,GAAG,aAAa,YAAY,CAAC,CAAC;QAE1C,gBAAgB;QAChB,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,OAAO,kCACzD,OAAO,KACV,OAAO,IACP,CAAC;QAEH,gBAAgB;QAChB,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,OAAO,kCACzD,OAAO,KACV,OAAO,IACP,CAAC;QAEH,mBAAmB;QACnB,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,aAAa,kCAClE,OAAO,KACV,OAAO,IACP,CAAC;QAEH,mBAAmB;QACnB,IAAA,qCAA4B,EAAC,IAAI,EAAE,2BAAY,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QAE/D,IAAI,IAAA,eAAU,EAAC,cAAc,CAAC,EAAE,CAAC;YAC/B,IAAA,qCAA4B,EAAC,IAAI,EAAE,2BAAY,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC;QACjF,CAAC;QAED,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CAAA;AAED,kBAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../plugin/src/shared/generators/ui-kit/generator.ts"],"names":[],"mappings":";;AAOA,8CA6DC;;AApED,iDAAyC;AACzC,2BAAgC;AAChC,6BAA6B;AAC7B,uCAA4F;AAC5F,qDAAkD;AAClD,uCAAkD;AAElD,SAAsB,iBAAiB,CAAC,IAAU,EAAE,OAA4C;;QAC9F,MAAM,OAAO,GAAG,QAAQ,OAAO,CAAC,SAAS,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,QAAQ,OAAO,CAAC,SAAS,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,QAAQ,OAAO,CAAC,SAAS,EAAE,CAAC;QAE5C,MAAM,OAAO,GAAG,GAAG,IAAA,2BAAmB,EAAC,IAAI,CAAC,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACpE,MAAM,cAAc,GAAG,GAAG,OAAO,eAAe,CAAC;QACjD,MAAM,aAAa,GAAG,GAAG,OAAO,MAAM,CAAC;QACvC,MAAM,gBAAgB,GAAG,GAAG,OAAO,iCAAiC,CAAC;QAErE,sBAAsB;QACtB,IAAA,wBAAQ,EACN,4BAA4B,OAAO,CAAC,SAAS,+DAA+D,EAC5G;YACE,KAAK,EAAE,SAAS;SACjB,CACF,CAAC;QAEF,6BAA6B;QAC7B,IAAA,wBAAQ,EAAC,4BAA4B,OAAO,CAAC,SAAS,mDAAmD,EAAE;YACzG,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QAEH,2BAA2B;QAC3B,IAAI,CAAC,MAAM,CAAC,GAAG,OAAO,gCAAgC,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,GAAG,aAAa,YAAY,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,CAAC,GAAG,QAAQ,iBAAiB,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,CAAC,GAAG,gBAAgB,WAAW,CAAC,CAAC;QAE5C,gBAAgB;QAChB,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,OAAO,kCACzD,OAAO,KACV,OAAO,IACP,CAAC;QAEH,gBAAgB;QAChB,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,OAAO,kCACzD,OAAO,KACV,OAAO,IACP,CAAC;QAEH,mBAAmB;QACnB,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,aAAa,kCAClE,OAAO,KACV,OAAO,IACP,CAAC;QAEH,iBAAiB;QACjB,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QAEhE,0BAA0B;QAC1B,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,qBAAqB,CAAC,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;QAEvF,mBAAmB;QACnB,IAAA,qCAA4B,EAAC,IAAI,EAAE,2BAAY,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QAE/D,IAAI,IAAA,eAAU,EAAC,cAAc,CAAC,EAAE,CAAC;YAC/B,IAAA,qCAA4B,EAAC,IAAI,EAAE,2BAAY,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC;QACjF,CAAC;QAED,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CAAA;AAED,kBAAe,iBAAiB,CAAC"}
@@ -0,0 +1,11 @@
1
+ {
2
+ "SHARED": {
3
+ "UNDER_CONSTRUCTION": {
4
+ "TEXT_WE_ARE_WORKING_ON_THIS_SECTION": "We are working on this section"
5
+ },
6
+ "TOAST_SERVICE": {
7
+ "TEXT_FEATURE_NOT_IMPLEMENTED_YET": "Feature is not implemented yet",
8
+ "TEXT_SOMETHING_WENT_WRONG": "Something went wrong"
9
+ }
10
+ }
11
+ }
@@ -1,27 +1,34 @@
1
- import { AppButton, AppScreen, AppSpinner, AppText, AppTextInput } from '<%= libPath %>/shared/ui/ui-kit';
1
+ import { AppButton, AppScreen, AppSpinner, AppText, AppTextInput, SearchInput } from '<%= libPath %>/shared/ui/ui-kit';
2
2
  import { ReactElement, useState } from 'react';
3
+ import { View } from 'react-native';
3
4
  import { StyleSheet } from 'react-native-unistyles';
4
5
 
5
6
  export default function RootScreen(): ReactElement {
6
7
  const [username, setUsername] = useState<string>('');
7
8
  const [password, setPassword] = useState<string>('');
9
+ const [isChecked, setIsChecked] = useState<boolean>(false);
10
+ const [searchValue, setSearchValue] = useState<string>('');
8
11
 
9
12
  return (
10
13
  <AppScreen style={styles.container}>
11
- <AppText>Title H1</AppText>
12
- <AppText>Title H2</AppText>
13
- <AppText>Title H3</AppText>
14
- <AppText>Title H4</AppText>
15
- <AppText>Title H5</AppText>
16
- <AppText>Title H6</AppText>
17
- <AppText>Body Large</AppText>
18
- <AppText>Body Large Bold</AppText>
19
- <AppText>Body Default</AppText>
20
- <AppText>Body Default Bold</AppText>
21
- <AppText>Body Small</AppText>
22
- <AppText>Body Small Bold</AppText>
23
- <AppText>Body Extra Small</AppText>
24
- <AppText>Body Extra Small Bold</AppText>
14
+ <AppText variant='h1'>Title H1</AppText>
15
+ <AppText variant='h2'>Title H2</AppText>
16
+ <AppText variant='h3'>Title H3</AppText>
17
+ <AppText variant='h4'>Title H4</AppText>
18
+ <AppText variant='h5'>Title H5</AppText>
19
+ <AppText variant='h6'>Title H6</AppText>
20
+ <AppText variant='bodyLarge'>Body Large</AppText>
21
+ <AppText variant='bodyLargeBold'>Body Large Bold</AppText>
22
+ <AppText variant='bodyDefault'>Body Default</AppText>
23
+ <AppText variant='bodyDefaultBold'>Body Default Bold</AppText>
24
+ <AppText variant='bodySmall'>Body Small</AppText>
25
+ <AppText variant='bodySmallBold'>Body Small Bold</AppText>
26
+ <AppText variant='bodyExtraSmall'>Body Extra Small</AppText>
27
+ <AppText variant='bodyExtraSmallBold'>Body Extra Small Bold</AppText>
28
+ <View style={styles.checkbox}>
29
+ <AppCheckbox value={isChecked} onValueChange={setIsChecked} />
30
+ <AppText>Checkbox</AppText>
31
+ </View>
25
32
  <AppTextInput
26
33
  label='Username'
27
34
  autoCapitalize='none'
@@ -29,6 +36,12 @@ export default function RootScreen(): ReactElement {
29
36
  value={username}
30
37
  onChangeText={setUsername}
31
38
  />
39
+ <SearchInput
40
+ placeholder='Search'
41
+ value={searchValue}
42
+ onChangeText={setSearchValue}
43
+ onClearPress={() => setSearchValue('')}
44
+ />
32
45
  <AppTextInput isPassword={true} label='Password' value={password} onChangeText={setPassword} />
33
46
  <AppButton text='Button Primary Regular' />
34
47
  <AppButton text='Button Primary Small' size='small' />
@@ -48,4 +61,9 @@ const styles = StyleSheet.create(({ spacings }) => ({
48
61
  gap: spacings.xs,
49
62
  paddingVertical: spacings.md,
50
63
  },
64
+ checkbox: {
65
+ flexDirection: 'row',
66
+ alignItems: 'center',
67
+ gap: spacings.xs,
68
+ },
51
69
  }));
@@ -0,0 +1,3 @@
1
+ <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M13.3334 4L6.00002 11.3333L2.66669 8" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M17 7L7 17" stroke="currentColor" stroke-width="1.6" stroke-linecap="round"/>
3
+ <path d="M17 17L7 7" stroke="currentColor" stroke-width="1.6" stroke-linecap="round"/>
4
+ </svg>
@@ -1,7 +1,15 @@
1
+ import close from './close.svg';
2
+ import check from './check.svg';
1
3
  import eyeOff from './eye-off';
2
4
  import eye from './eye.svg';
5
+ import search from './search.svg';
6
+ import underConstruction from './under-construction.svg';
3
7
 
4
8
  export const Icons = {
9
+ close,
10
+ check,
5
11
  eyeOff,
6
12
  eye,
13
+ search,
14
+ underConstruction,
7
15
  };
@@ -0,0 +1,6 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path
3
+ d="M21 21L17.5001 17.5M20 11.5C20 16.1944 16.1944 20 11.5 20C6.80558 20 3 16.1944 3 11.5C3 6.80558 6.80558 3 11.5 3C16.1944 3 20 6.80558 20 11.5Z"
4
+ stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" />
5
+ </svg>
6
+
@@ -0,0 +1,158 @@
1
+ <svg width="301" height="130" viewBox="0 0 301 130" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M106.72 61.7059C98.9785 61.7059 94.8753 57.8736 94.8753 50.3252V33.7188H100.411V49.0091C100.411 54.3123 102.385 56.4801 106.72 56.4801C111.056 56.4801 113.069 54.3123 113.069 49.0091V33.7188H118.566V50.3252C118.566 57.8736 114.617 61.7059 106.72 61.7059Z" fill="white"/>
3
+ <path d="M106.72 61.7059C98.9785 61.7059 94.8753 57.8736 94.8753 50.3252V33.7188H100.411V49.0091C100.411 54.3123 102.385 56.4801 106.72 56.4801C111.056 56.4801 113.069 54.3123 113.069 49.0091V33.7188H118.566V50.3252C118.566 57.8736 114.617 61.7059 106.72 61.7059Z" fill="url(#paint0_linear_9469_9143)"/>
4
+ <path d="M122.685 61.164V40.0285H127.834V41.964C129.537 40.5704 131.975 39.564 134.608 39.564C139.872 39.564 142.659 41.9252 142.659 48.5446V61.164H137.356V49.8607C137.356 45.6027 135.614 44.364 132.904 44.364C130.814 44.364 129.15 45.4091 128.027 46.5704V61.164H122.685Z" fill="white"/>
5
+ <path d="M122.685 61.164V40.0285H127.834V41.964C129.537 40.5704 131.975 39.564 134.608 39.564C139.872 39.564 142.659 41.9252 142.659 48.5446V61.164H137.356V49.8607C137.356 45.6027 135.614 44.364 132.904 44.364C130.814 44.364 129.15 45.4091 128.027 46.5704V61.164H122.685Z" fill="url(#paint1_linear_9469_9143)"/>
6
+ <path d="M155.654 61.6285C149.46 61.6285 145.435 57.3317 145.435 50.5575C145.435 43.7833 149.499 39.5252 155.422 39.5252C157.589 39.5252 160.183 40.1446 161.925 41.8478V31.822H167.189V61.164H162.002V59.1123C160.338 61.1252 157.706 61.6285 155.654 61.6285ZM156.815 56.8285C158.828 56.8285 160.919 56.0156 162.002 54.0414V47.0349C160.919 45.293 158.751 44.3252 156.699 44.3252C153.331 44.3252 150.931 46.5704 150.931 50.5575C150.931 54.4672 153.254 56.8285 156.815 56.8285Z" fill="white"/>
7
+ <path d="M155.654 61.6285C149.46 61.6285 145.435 57.3317 145.435 50.5575C145.435 43.7833 149.499 39.5252 155.422 39.5252C157.589 39.5252 160.183 40.1446 161.925 41.8478V31.822H167.189V61.164H162.002V59.1123C160.338 61.1252 157.706 61.6285 155.654 61.6285ZM156.815 56.8285C158.828 56.8285 160.919 56.0156 162.002 54.0414V47.0349C160.919 45.293 158.751 44.3252 156.699 44.3252C153.331 44.3252 150.931 46.5704 150.931 50.5575C150.931 54.4672 153.254 56.8285 156.815 56.8285Z" fill="url(#paint2_linear_9469_9143)"/>
8
+ <path d="M192.086 50.5962C192.086 50.9446 192.086 51.7575 192.047 52.1833H175.634C176.215 55.3188 178.383 57.0994 181.866 57.0994C184.344 57.0994 186.55 56.1704 187.983 54.3898L191.35 57.2543C189.415 59.9252 186.318 61.5898 181.479 61.5898C174.396 61.5898 170.215 57.2543 170.215 50.5188C170.215 43.822 174.744 39.4478 181.208 39.4478C188.486 39.4478 192.086 44.093 192.086 50.5962ZM181.208 43.8994C178.499 43.8994 176.331 45.2543 175.673 48.3123H186.86C186.55 45.9898 184.886 43.8994 181.208 43.8994Z" fill="white"/>
9
+ <path d="M192.086 50.5962C192.086 50.9446 192.086 51.7575 192.047 52.1833H175.634C176.215 55.3188 178.383 57.0994 181.866 57.0994C184.344 57.0994 186.55 56.1704 187.983 54.3898L191.35 57.2543C189.415 59.9252 186.318 61.5898 181.479 61.5898C174.396 61.5898 170.215 57.2543 170.215 50.5188C170.215 43.822 174.744 39.4478 181.208 39.4478C188.486 39.4478 192.086 44.093 192.086 50.5962ZM181.208 43.8994C178.499 43.8994 176.331 45.2543 175.673 48.3123H186.86C186.55 45.9898 184.886 43.8994 181.208 43.8994Z" fill="url(#paint3_linear_9469_9143)"/>
10
+ <path d="M194.796 61.164V40.0285H199.944V42.7769C201.415 40.8414 203.66 39.564 206.525 39.564C207.066 39.564 207.608 39.6027 207.996 39.7575V45.5252C207.105 45.293 206.254 45.1381 205.441 45.1381C202.46 45.1381 200.137 47.1123 200.137 51.1769V61.164H194.796Z" fill="white"/>
11
+ <path d="M194.796 61.164V40.0285H199.944V42.7769C201.415 40.8414 203.66 39.564 206.525 39.564C207.066 39.564 207.608 39.6027 207.996 39.7575V45.5252C207.105 45.293 206.254 45.1381 205.441 45.1381C202.46 45.1381 200.137 47.1123 200.137 51.1769V61.164H194.796Z" fill="url(#paint4_linear_9469_9143)"/>
12
+ <path d="M45.9181 100.299C38.7181 100.299 34.5374 95.964 34.5374 89.2672C34.5374 82.8414 38.8342 78.3123 45.8794 78.3123C49.9439 78.3123 53.2342 79.9769 55.0923 82.5317L51.3762 85.8607C50.331 84.3123 48.3568 83.1898 46.1503 83.1898C42.4342 83.1898 39.9955 85.5898 39.9955 89.2285C39.9955 93.022 42.3955 95.422 46.1116 95.422C48.5891 95.422 50.5245 94.1833 51.5697 92.7511L55.2084 96.0801C53.3116 98.6349 50.06 100.299 45.9181 100.299Z" fill="white"/>
13
+ <path d="M45.9181 100.299C38.7181 100.299 34.5374 95.964 34.5374 89.2672C34.5374 82.8414 38.8342 78.3123 45.8794 78.3123C49.9439 78.3123 53.2342 79.9769 55.0923 82.5317L51.3762 85.8607C50.331 84.3123 48.3568 83.1898 46.1503 83.1898C42.4342 83.1898 39.9955 85.5898 39.9955 89.2285C39.9955 93.022 42.3955 95.422 46.1116 95.422C48.5891 95.422 50.5245 94.1833 51.5697 92.7511L55.2084 96.0801C53.3116 98.6349 50.06 100.299 45.9181 100.299Z" fill="url(#paint5_linear_9469_9143)"/>
14
+ <path d="M68.3231 100.338C61.3554 100.338 56.6715 96.0414 56.6715 89.2672C56.6715 82.6091 61.3554 78.2736 68.3231 78.2736C75.2522 78.2736 79.8973 82.6091 79.8973 89.2672C79.8973 96.0414 75.2522 100.338 68.3231 100.338ZM68.3231 95.4607C71.9231 95.4607 74.4006 93.022 74.4006 89.2672C74.4006 85.5898 71.9231 83.1511 68.3231 83.1511C64.6844 83.1511 62.207 85.5898 62.207 89.2672C62.207 93.022 64.6844 95.4607 68.3231 95.4607Z" fill="white"/>
15
+ <path d="M68.3231 100.338C61.3554 100.338 56.6715 96.0414 56.6715 89.2672C56.6715 82.6091 61.3554 78.2736 68.3231 78.2736C75.2522 78.2736 79.8973 82.6091 79.8973 89.2672C79.8973 96.0414 75.2522 100.338 68.3231 100.338ZM68.3231 95.4607C71.9231 95.4607 74.4006 93.022 74.4006 89.2672C74.4006 85.5898 71.9231 83.1511 68.3231 83.1511C64.6844 83.1511 62.207 85.5898 62.207 89.2672C62.207 93.022 64.6844 95.4607 68.3231 95.4607Z" fill="url(#paint6_linear_9469_9143)"/>
16
+ <path d="M83.1045 99.8736V78.7381H88.2529V80.6736C89.9561 79.2801 92.3948 78.2736 95.0271 78.2736C100.292 78.2736 103.079 80.6349 103.079 87.2543V99.8736H97.7755V88.5704C97.7755 84.3123 96.0335 83.0736 93.3238 83.0736C91.2335 83.0736 89.569 84.1188 88.4464 85.2801V99.8736H83.1045Z" fill="white"/>
17
+ <path d="M83.1045 99.8736V78.7381H88.2529V80.6736C89.9561 79.2801 92.3948 78.2736 95.0271 78.2736C100.292 78.2736 103.079 80.6349 103.079 87.2543V99.8736H97.7755V88.5704C97.7755 84.3123 96.0335 83.0736 93.3238 83.0736C91.2335 83.0736 89.569 84.1188 88.4464 85.2801V99.8736H83.1045Z" fill="url(#paint7_linear_9469_9143)"/>
18
+ <path d="M114.68 100.416C111.273 100.416 108.293 99.7575 105.738 98.5575L107.441 94.3381C109.493 95.5769 112.164 96.2349 114.525 96.2349C117.002 96.2349 118.202 95.4607 118.202 93.9898C118.202 92.6736 116.964 92.2091 113.518 91.4349C108.796 90.3898 106.009 88.8027 106.009 84.8156C106.009 80.4801 109.377 78.3123 114.448 78.3123C117.893 78.3123 120.448 79.0865 122.731 79.9769L120.989 84.2349C119.093 83.2285 116.383 82.6091 114.409 82.6091C112.551 82.6091 111.312 83.1511 111.312 84.4285C111.312 85.7833 112.357 86.2091 115.88 87.0607C120.835 88.2607 123.622 89.7704 123.622 93.4865C123.622 98.3252 120.448 100.416 114.68 100.416Z" fill="white"/>
19
+ <path d="M114.68 100.416C111.273 100.416 108.293 99.7575 105.738 98.5575L107.441 94.3381C109.493 95.5769 112.164 96.2349 114.525 96.2349C117.002 96.2349 118.202 95.4607 118.202 93.9898C118.202 92.6736 116.964 92.2091 113.518 91.4349C108.796 90.3898 106.009 88.8027 106.009 84.8156C106.009 80.4801 109.377 78.3123 114.448 78.3123C117.893 78.3123 120.448 79.0865 122.731 79.9769L120.989 84.2349C119.093 83.2285 116.383 82.6091 114.409 82.6091C112.551 82.6091 111.312 83.1511 111.312 84.4285C111.312 85.7833 112.357 86.2091 115.88 87.0607C120.835 88.2607 123.622 89.7704 123.622 93.4865C123.622 98.3252 120.448 100.416 114.68 100.416Z" fill="url(#paint8_linear_9469_9143)"/>
20
+ <path d="M134.162 100.377C129.517 100.377 127.543 98.1704 127.543 93.3317V83.4994H124.524V78.7381H127.543V70.5317H132.807V78.7381H139.04V83.4994H132.807V92.4414C132.807 94.764 133.388 95.8091 135.595 95.8091C136.407 95.8091 137.762 95.6543 139.001 95.1123V99.7962C137.84 100.145 136.369 100.377 134.162 100.377Z" fill="white"/>
21
+ <path d="M134.162 100.377C129.517 100.377 127.543 98.1704 127.543 93.3317V83.4994H124.524V78.7381H127.543V70.5317H132.807V78.7381H139.04V83.4994H132.807V92.4414C132.807 94.764 133.388 95.8091 135.595 95.8091C136.407 95.8091 137.762 95.6543 139.001 95.1123V99.7962C137.84 100.145 136.369 100.377 134.162 100.377Z" fill="url(#paint9_linear_9469_9143)"/>
22
+ <path d="M141.606 99.8736V78.7381H146.754V81.4865C148.225 79.5511 150.471 78.2736 153.335 78.2736C153.877 78.2736 154.419 78.3123 154.806 78.4672V84.2349C153.916 84.0027 153.064 83.8478 152.251 83.8478C149.271 83.8478 146.948 85.822 146.948 89.8865V99.8736H141.606Z" fill="white"/>
23
+ <path d="M141.606 99.8736V78.7381H146.754V81.4865C148.225 79.5511 150.471 78.2736 153.335 78.2736C153.877 78.2736 154.419 78.3123 154.806 78.4672V84.2349C153.916 84.0027 153.064 83.8478 152.251 83.8478C149.271 83.8478 146.948 85.822 146.948 89.8865V99.8736H141.606Z" fill="url(#paint10_linear_9469_9143)"/>
24
+ <path d="M164.975 100.338C160.136 100.338 156.962 97.9769 156.962 91.3962V78.7381H162.304V90.0414C162.304 94.2994 164.123 95.5381 166.562 95.5381C168.846 95.5381 170.394 94.4156 171.478 93.0994V78.7381H176.82V99.8736H171.749V97.7059C170.084 99.3317 167.878 100.338 164.975 100.338Z" fill="white"/>
25
+ <path d="M164.975 100.338C160.136 100.338 156.962 97.9769 156.962 91.3962V78.7381H162.304V90.0414C162.304 94.2994 164.123 95.5381 166.562 95.5381C168.846 95.5381 170.394 94.4156 171.478 93.0994V78.7381H176.82V99.8736H171.749V97.7059C170.084 99.3317 167.878 100.338 164.975 100.338Z" fill="url(#paint11_linear_9469_9143)"/>
26
+ <path d="M191.066 100.299C183.866 100.299 179.685 95.964 179.685 89.2672C179.685 82.8414 183.982 78.3123 191.027 78.3123C195.092 78.3123 198.382 79.9769 200.24 82.5317L196.524 85.8607C195.479 84.3123 193.504 83.1898 191.298 83.1898C187.582 83.1898 185.143 85.5898 185.143 89.2285C185.143 93.022 187.543 95.422 191.259 95.422C193.737 95.422 195.672 94.1833 196.717 92.7511L200.356 96.0801C198.459 98.6349 195.208 100.299 191.066 100.299Z" fill="white"/>
27
+ <path d="M191.066 100.299C183.866 100.299 179.685 95.964 179.685 89.2672C179.685 82.8414 183.982 78.3123 191.027 78.3123C195.092 78.3123 198.382 79.9769 200.24 82.5317L196.524 85.8607C195.479 84.3123 193.504 83.1898 191.298 83.1898C187.582 83.1898 185.143 85.5898 185.143 89.2285C185.143 93.022 187.543 95.422 191.259 95.422C193.737 95.422 195.672 94.1833 196.717 92.7511L200.356 96.0801C198.459 98.6349 195.208 100.299 191.066 100.299Z" fill="url(#paint12_linear_9469_9143)"/>
28
+ <path d="M210.602 100.377C205.957 100.377 203.982 98.1704 203.982 93.3317V83.4994H200.963V78.7381H203.982V70.5317H209.247V78.7381H215.479V83.4994H209.247V92.4414C209.247 94.764 209.828 95.8091 212.034 95.8091C212.847 95.8091 214.202 95.6543 215.44 95.1123V99.7962C214.279 100.145 212.808 100.377 210.602 100.377Z" fill="white"/>
29
+ <path d="M210.602 100.377C205.957 100.377 203.982 98.1704 203.982 93.3317V83.4994H200.963V78.7381H203.982V70.5317H209.247V78.7381H215.479V83.4994H209.247V92.4414C209.247 94.764 209.828 95.8091 212.034 95.8091C212.847 95.8091 214.202 95.6543 215.44 95.1123V99.7962C214.279 100.145 212.808 100.377 210.602 100.377Z" fill="url(#paint13_linear_9469_9143)"/>
30
+ <path d="M221.172 76.1446C219.353 76.1446 217.882 74.6736 217.882 72.8543C217.882 71.0349 219.353 69.564 221.172 69.564C222.953 69.564 224.424 71.0349 224.424 72.8543C224.424 74.6736 222.953 76.1446 221.172 76.1446ZM218.424 99.8736V78.7381H223.843V99.8736H218.424Z" fill="white"/>
31
+ <path d="M221.172 76.1446C219.353 76.1446 217.882 74.6736 217.882 72.8543C217.882 71.0349 219.353 69.564 221.172 69.564C222.953 69.564 224.424 71.0349 224.424 72.8543C224.424 74.6736 222.953 76.1446 221.172 76.1446ZM218.424 99.8736V78.7381H223.843V99.8736H218.424Z" fill="url(#paint14_linear_9469_9143)"/>
32
+ <path d="M238.687 100.338C231.719 100.338 227.035 96.0414 227.035 89.2672C227.035 82.6091 231.719 78.2736 238.687 78.2736C245.616 78.2736 250.261 82.6091 250.261 89.2672C250.261 96.0414 245.616 100.338 238.687 100.338ZM238.687 95.4607C242.287 95.4607 244.764 93.022 244.764 89.2672C244.764 85.5898 242.287 83.1511 238.687 83.1511C235.048 83.1511 232.57 85.5898 232.57 89.2672C232.57 93.022 235.048 95.4607 238.687 95.4607Z" fill="white"/>
33
+ <path d="M238.687 100.338C231.719 100.338 227.035 96.0414 227.035 89.2672C227.035 82.6091 231.719 78.2736 238.687 78.2736C245.616 78.2736 250.261 82.6091 250.261 89.2672C250.261 96.0414 245.616 100.338 238.687 100.338ZM238.687 95.4607C242.287 95.4607 244.764 93.022 244.764 89.2672C244.764 85.5898 242.287 83.1511 238.687 83.1511C235.048 83.1511 232.57 85.5898 232.57 89.2672C232.57 93.022 235.048 95.4607 238.687 95.4607Z" fill="url(#paint15_linear_9469_9143)"/>
34
+ <path d="M253.468 99.8736V78.7381H258.616V80.6736C260.32 79.2801 262.758 78.2736 265.39 78.2736C270.655 78.2736 273.442 80.6349 273.442 87.2543V99.8736H268.139V88.5704C268.139 84.3123 266.397 83.0736 263.687 83.0736C261.597 83.0736 259.932 84.1188 258.81 85.2801V99.8736H253.468Z" fill="white"/>
35
+ <path d="M253.468 99.8736V78.7381H258.616V80.6736C260.32 79.2801 262.758 78.2736 265.39 78.2736C270.655 78.2736 273.442 80.6349 273.442 87.2543V99.8736H268.139V88.5704C268.139 84.3123 266.397 83.0736 263.687 83.0736C261.597 83.0736 259.932 84.1188 258.81 85.2801V99.8736H253.468Z" fill="url(#paint16_linear_9469_9143)"/>
36
+ <rect x="45.0415" y="47.3735" width="6.87886" height="6.87886" transform="rotate(45 45.0415 47.3735)" fill="#4ABEFF"/>
37
+ <path d="M45.0415 50.2004L47.0786 52.2375L45.0415 54.2746L43.0044 52.2375L45.0415 50.2004Z" fill="#FFC672"/>
38
+ <rect x="26.1451" y="92.3735" width="16.5617" height="16.5617" fill="#FF85DD"/>
39
+ <rect x="28.9054" y="95.134" width="11.0411" height="11.0411" fill="#FFC672"/>
40
+ <rect x="32.0904" y="98.3186" width="4.67124" height="4.67124" fill="#DEECF5"/>
41
+ <path d="M288.125 47.2225C290.447 44.9008 294.211 44.9008 296.533 47.2225L300.61 51.2995L296.533 55.3764C294.211 57.6982 290.447 57.6982 288.125 55.3764L284.048 51.2995L288.125 47.2225Z" fill="#4ABEFF"/>
42
+ <ellipse cx="292.435" cy="51.4058" rx="4.14042" ry="4.14042" fill="#FFC672"/>
43
+ <circle cx="292.435" cy="51.4052" r="2.22946" fill="#FF85DD"/>
44
+ <rect x="88.8322" y="15.0562" width="11.6859" height="11.6859" rx="5.84294" fill="#FF85DD"/>
45
+ <path d="M98.8067 16.7678C99.3493 17.3104 99.7797 17.9545 100.073 18.6634C100.367 19.3723 100.518 20.1321 100.518 20.8994C100.518 21.6667 100.367 22.4265 100.073 23.1354C99.7797 23.8443 99.3493 24.4884 98.8067 25.031C98.2642 25.5736 97.6201 26.0039 96.9112 26.2976C96.2023 26.5912 95.4425 26.7423 94.6752 26.7423C93.9079 26.7423 93.1481 26.5912 92.4392 26.2976C91.7303 26.0039 91.0861 25.5736 90.5436 25.031L98.8067 16.7678Z" fill="#4ABEFF"/>
46
+ <path d="M262.547 37.9643C263.024 38.4412 263.402 39.0073 263.661 39.6304C263.919 40.2535 264.052 40.9213 264.052 41.5958C264.052 42.2702 263.919 42.938 263.661 43.5611C263.402 44.1842 263.024 44.7503 262.547 45.2272C262.07 45.7041 261.504 46.0824 260.881 46.3405C260.258 46.5986 259.59 46.7314 258.916 46.7314C258.241 46.7314 257.574 46.5986 256.95 46.3405C256.327 46.0824 255.761 45.7041 255.284 45.2272L262.547 37.9643Z" fill="#FF85DD"/>
47
+ <path d="M15.0161 68.8487L15.0161 73.984L18.725 67.9928L18.725 62.8574L15.0161 68.8487Z" fill="#BA62FF"/>
48
+ <path d="M18.725 68.8487L18.725 73.984L22.4338 67.9928L22.4338 62.8574L18.725 68.8487Z" fill="#BA62FF"/>
49
+ <path d="M22.4338 68.8487L22.4338 73.984L26.1427 67.9928L26.1427 62.8574L22.4338 68.8487Z" fill="#BA62FF"/>
50
+ <rect x="146.515" y="115.599" width="3.69716" height="2.07965" transform="rotate(90 146.515 115.599)" fill="#FFC672"/>
51
+ <rect x="146.515" y="122.917" width="3.69716" height="2.07965" transform="rotate(90 146.515 122.917)" fill="#FFC672"/>
52
+ <rect x="142.124" y="115.599" width="3.69716" height="2.2337" transform="rotate(90 142.124 115.599)" fill="#FFC672"/>
53
+ <rect x="142.124" y="122.917" width="3.69716" height="2.2337" transform="rotate(90 142.124 122.917)" fill="#FFC672"/>
54
+ <rect x="144.358" y="119.296" width="3.62013" height="2.2337" transform="rotate(90 144.358 119.296)" fill="#FFC672"/>
55
+ <rect x="137.657" y="115.599" width="3.69716" height="2.15668" transform="rotate(90 137.657 115.599)" fill="#FFC672"/>
56
+ <rect x="137.657" y="122.917" width="3.69716" height="2.15668" transform="rotate(90 137.657 122.917)" fill="#FFC672"/>
57
+ <rect x="139.89" y="119.296" width="3.62013" height="2.15668" transform="rotate(90 139.89 119.296)" fill="#FFC672"/>
58
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M81.6944 46.7384C79.3727 44.4166 75.6084 44.4166 73.2866 46.7384L69.2097 50.8153L73.2866 54.8923C75.6084 57.214 79.3727 57.214 81.6944 54.8923L85.7714 50.8153L81.6944 46.7384ZM77.5354 55.062C79.8221 55.062 81.6759 53.2083 81.6759 50.9216C81.6759 48.6349 79.8221 46.7812 77.5354 46.7812C75.2487 46.7812 73.395 48.6349 73.395 50.9216C73.395 53.2083 75.2487 55.062 77.5354 55.062Z" fill="#FFC672"/>
59
+ <circle cx="76.2615" cy="49.4355" r="2.22946" fill="#FFC672"/>
60
+ <mask id="path-26-inside-1_9469_9143" fill="white">
61
+ <path d="M267.174 119.732L269.034 117.871C270.062 116.844 271.728 116.844 272.755 117.871C273.782 118.899 273.782 120.565 272.755 121.592C271.728 122.619 270.062 122.619 269.034 121.592L267.174 119.732Z"/>
62
+ </mask>
63
+ <path d="M267.174 119.732L256.567 109.125L245.961 119.732L256.567 130.338L267.174 119.732ZM277.781 130.338L279.641 128.478L258.428 107.265L256.567 109.125L277.781 130.338ZM279.641 110.985L277.781 109.125L256.567 130.338L258.428 132.199L279.641 110.985ZM262.148 110.985C266.979 106.155 274.81 106.155 279.641 110.985L258.428 132.199C265.313 139.084 276.476 139.084 283.362 132.199L262.148 110.985ZM262.148 128.478C257.318 123.648 257.318 115.816 262.148 110.985L283.362 132.199C290.247 125.313 290.247 114.15 283.362 107.265L262.148 128.478ZM279.641 128.478C274.81 133.308 266.979 133.308 262.148 128.478L283.362 107.265C276.476 100.379 265.313 100.379 258.428 107.265L279.641 128.478Z" fill="#FF85DD" mask="url(#path-26-inside-1_9469_9143)"/>
64
+ <mask id="path-28-inside-2_9469_9143" fill="white">
65
+ <path d="M268.748 119.732L266.887 117.871C265.86 116.844 264.194 116.844 263.167 117.871C262.139 118.899 262.139 120.565 263.167 121.592C264.194 122.619 265.86 122.619 266.887 121.592L268.748 119.732Z"/>
66
+ </mask>
67
+ <path d="M268.748 119.732L279.354 109.125L289.961 119.732L279.354 130.338L268.748 119.732ZM258.141 130.338L256.281 128.478L277.494 107.265L279.354 109.125L258.141 130.338ZM256.281 110.985L258.141 109.125L279.354 130.338L277.494 132.199L256.281 110.985ZM273.773 110.985C268.943 106.155 261.111 106.155 256.281 110.985L277.494 132.199C270.609 139.084 259.445 139.084 252.56 132.199L273.773 110.985ZM273.773 128.478C278.604 123.648 278.604 115.816 273.773 110.985L252.56 132.199C245.675 125.313 245.675 114.15 252.56 107.265L273.773 128.478ZM256.281 128.478C261.111 133.308 268.943 133.308 273.773 128.478L252.56 107.265C259.445 100.379 270.609 100.379 277.494 107.265L256.281 128.478Z" fill="#FF85DD" mask="url(#path-28-inside-2_9469_9143)"/>
68
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M236.739 26.138L228.458 17.8572L220.177 26.138L228.458 34.4189L236.739 26.138ZM235.386 26.1382L228.458 19.211L221.531 26.1382L228.458 33.0654L235.386 26.1382Z" fill="#FFC672"/>
69
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M233.82 26.1379L228.458 20.7766L223.097 26.1379L228.458 31.4993L233.82 26.1379ZM232.548 26.1383L228.458 22.0486L224.369 26.1383L228.458 30.2281L232.548 26.1383Z" fill="#FFC672"/>
70
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M231.112 26.1385L228.458 23.4844L225.804 26.1385L228.458 28.7926L231.112 26.1385ZM230.024 26.1384L228.458 24.5724L226.892 26.1384L228.458 27.7043L230.024 26.1384Z" fill="#FFC672"/>
71
+ <defs>
72
+ <linearGradient id="paint0_linear_9469_9143" x1="284.7" y1="31.8474" x2="11.1452" y2="114.632" gradientUnits="userSpaceOnUse">
73
+ <stop stop-color="#18CCC1"/>
74
+ <stop offset="0.369792" stop-color="#4992FF"/>
75
+ <stop offset="1" stop-color="#CB25CE"/>
76
+ </linearGradient>
77
+ <linearGradient id="paint1_linear_9469_9143" x1="284.7" y1="31.8474" x2="11.1452" y2="114.632" gradientUnits="userSpaceOnUse">
78
+ <stop stop-color="#18CCC1"/>
79
+ <stop offset="0.369792" stop-color="#4992FF"/>
80
+ <stop offset="1" stop-color="#CB25CE"/>
81
+ </linearGradient>
82
+ <linearGradient id="paint2_linear_9469_9143" x1="284.7" y1="31.8474" x2="11.1452" y2="114.632" gradientUnits="userSpaceOnUse">
83
+ <stop stop-color="#18CCC1"/>
84
+ <stop offset="0.369792" stop-color="#4992FF"/>
85
+ <stop offset="1" stop-color="#CB25CE"/>
86
+ </linearGradient>
87
+ <linearGradient id="paint3_linear_9469_9143" x1="284.7" y1="31.8474" x2="11.1452" y2="114.632" gradientUnits="userSpaceOnUse">
88
+ <stop stop-color="#18CCC1"/>
89
+ <stop offset="0.369792" stop-color="#4992FF"/>
90
+ <stop offset="1" stop-color="#CB25CE"/>
91
+ </linearGradient>
92
+ <linearGradient id="paint4_linear_9469_9143" x1="284.7" y1="31.8474" x2="11.1452" y2="114.632" gradientUnits="userSpaceOnUse">
93
+ <stop stop-color="#18CCC1"/>
94
+ <stop offset="0.369792" stop-color="#4992FF"/>
95
+ <stop offset="1" stop-color="#CB25CE"/>
96
+ </linearGradient>
97
+ <linearGradient id="paint5_linear_9469_9143" x1="284.7" y1="31.8474" x2="11.1452" y2="114.632" gradientUnits="userSpaceOnUse">
98
+ <stop stop-color="#18CCC1"/>
99
+ <stop offset="0.369792" stop-color="#4992FF"/>
100
+ <stop offset="1" stop-color="#CB25CE"/>
101
+ </linearGradient>
102
+ <linearGradient id="paint6_linear_9469_9143" x1="284.7" y1="31.8474" x2="11.1452" y2="114.632" gradientUnits="userSpaceOnUse">
103
+ <stop stop-color="#18CCC1"/>
104
+ <stop offset="0.369792" stop-color="#4992FF"/>
105
+ <stop offset="1" stop-color="#CB25CE"/>
106
+ </linearGradient>
107
+ <linearGradient id="paint7_linear_9469_9143" x1="284.7" y1="31.8474" x2="11.1452" y2="114.632" gradientUnits="userSpaceOnUse">
108
+ <stop stop-color="#18CCC1"/>
109
+ <stop offset="0.369792" stop-color="#4992FF"/>
110
+ <stop offset="1" stop-color="#CB25CE"/>
111
+ </linearGradient>
112
+ <linearGradient id="paint8_linear_9469_9143" x1="284.7" y1="31.8474" x2="11.1452" y2="114.632" gradientUnits="userSpaceOnUse">
113
+ <stop stop-color="#18CCC1"/>
114
+ <stop offset="0.369792" stop-color="#4992FF"/>
115
+ <stop offset="1" stop-color="#CB25CE"/>
116
+ </linearGradient>
117
+ <linearGradient id="paint9_linear_9469_9143" x1="284.7" y1="31.8474" x2="11.1452" y2="114.632" gradientUnits="userSpaceOnUse">
118
+ <stop stop-color="#18CCC1"/>
119
+ <stop offset="0.369792" stop-color="#4992FF"/>
120
+ <stop offset="1" stop-color="#CB25CE"/>
121
+ </linearGradient>
122
+ <linearGradient id="paint10_linear_9469_9143" x1="284.7" y1="31.8474" x2="11.1452" y2="114.632" gradientUnits="userSpaceOnUse">
123
+ <stop stop-color="#18CCC1"/>
124
+ <stop offset="0.369792" stop-color="#4992FF"/>
125
+ <stop offset="1" stop-color="#CB25CE"/>
126
+ </linearGradient>
127
+ <linearGradient id="paint11_linear_9469_9143" x1="284.7" y1="31.8474" x2="11.1452" y2="114.632" gradientUnits="userSpaceOnUse">
128
+ <stop stop-color="#18CCC1"/>
129
+ <stop offset="0.369792" stop-color="#4992FF"/>
130
+ <stop offset="1" stop-color="#CB25CE"/>
131
+ </linearGradient>
132
+ <linearGradient id="paint12_linear_9469_9143" x1="284.7" y1="31.8474" x2="11.1452" y2="114.632" gradientUnits="userSpaceOnUse">
133
+ <stop stop-color="#18CCC1"/>
134
+ <stop offset="0.369792" stop-color="#4992FF"/>
135
+ <stop offset="1" stop-color="#CB25CE"/>
136
+ </linearGradient>
137
+ <linearGradient id="paint13_linear_9469_9143" x1="284.7" y1="31.8474" x2="11.1452" y2="114.632" gradientUnits="userSpaceOnUse">
138
+ <stop stop-color="#18CCC1"/>
139
+ <stop offset="0.369792" stop-color="#4992FF"/>
140
+ <stop offset="1" stop-color="#CB25CE"/>
141
+ </linearGradient>
142
+ <linearGradient id="paint14_linear_9469_9143" x1="284.7" y1="31.8474" x2="11.1452" y2="114.632" gradientUnits="userSpaceOnUse">
143
+ <stop stop-color="#18CCC1"/>
144
+ <stop offset="0.369792" stop-color="#4992FF"/>
145
+ <stop offset="1" stop-color="#CB25CE"/>
146
+ </linearGradient>
147
+ <linearGradient id="paint15_linear_9469_9143" x1="284.7" y1="31.8474" x2="11.1452" y2="114.632" gradientUnits="userSpaceOnUse">
148
+ <stop stop-color="#18CCC1"/>
149
+ <stop offset="0.369792" stop-color="#4992FF"/>
150
+ <stop offset="1" stop-color="#CB25CE"/>
151
+ </linearGradient>
152
+ <linearGradient id="paint16_linear_9469_9143" x1="284.7" y1="31.8474" x2="11.1452" y2="114.632" gradientUnits="userSpaceOnUse">
153
+ <stop stop-color="#18CCC1"/>
154
+ <stop offset="0.369792" stop-color="#4992FF"/>
155
+ <stop offset="1" stop-color="#CB25CE"/>
156
+ </linearGradient>
157
+ </defs>
158
+ </svg>
@@ -0,0 +1,63 @@
1
+ import { BottomTabBarProps } from '@react-navigation/bottom-tabs';
2
+ import { AppSafeAreaView } from '@ronas-it/react-native-common-modules/safe-area-view';
3
+ import { ReactElement } from 'react';
4
+ import { Platform } from 'react-native';
5
+ import { StyleSheet } from 'react-native-unistyles';
6
+ import { spacings } from '<%= libPath %>/shared/ui/styles';
7
+ import { Icon } from '../icon';
8
+ import { AppPressable } from '../pressable';
9
+ import { AppText } from '../text';
10
+
11
+ export function BottomTabNavigator({ state, navigation }: BottomTabBarProps): ReactElement {
12
+ return (
13
+ <AppSafeAreaView edges={['bottom']} style={styles.container}>
14
+ {state.routes.map((route, index) => {
15
+ const isFocused = state.index === index;
16
+
17
+ const onPress = (): void => {
18
+ const event = navigation.emit({
19
+ type: 'tabPress',
20
+ target: route.key,
21
+ canPreventDefault: true,
22
+ });
23
+
24
+ if (!isFocused && !event.defaultPrevented) {
25
+ navigation.navigate(route.name, route.params);
26
+ }
27
+ };
28
+
29
+ return (
30
+ <AppPressable
31
+ key={route.key}
32
+ accessibilityState={isFocused ? { selected: true } : {}}
33
+ onPress={onPress}
34
+ style={styles.button(isFocused)}>
35
+ <Icon name='search' />
36
+ <AppText style={styles.text} variant='bodyExtraSmallBold'>Route</AppText>
37
+ </AppPressable>
38
+ );
39
+ })}
40
+ </AppSafeAreaView>
41
+ );
42
+ }
43
+
44
+ const styles = StyleSheet.create(({ colors }) => ({
45
+ container: {
46
+ backgroundColor: colors.backgroundPrimary,
47
+ borderTopWidth: 1,
48
+ borderColor: colors.textTertiary,
49
+ paddingTop: spacings.xs,
50
+ paddingHorizontal: spacings.xs,
51
+ paddingBottom: Platform.OS === 'ios' ? 0 : spacings.xs,
52
+ flexDirection: 'row',
53
+ alignItems: 'center',
54
+ },
55
+ button: (focused: boolean) => ({
56
+ flex: 1,
57
+ alignItems: 'center',
58
+ opacity: focused ? 1 : 0.6,
59
+ }),
60
+ text: {
61
+ paddingTop: 6,
62
+ },
63
+ }));
@@ -0,0 +1,36 @@
1
+ import { ReactElement } from 'react';
2
+ import { StyleSheet } from 'react-native-unistyles';
3
+ import { colors } from '<%= libPath %>/shared/ui/styles';
4
+ import { Icon } from '../icon';
5
+ import { AppPressable, AppPressableProps } from '../pressable';
6
+
7
+ export interface AppCheckboxProps extends AppPressableProps {
8
+ value: boolean;
9
+ onValueChange: (value: boolean) => void;
10
+ }
11
+
12
+ export const AppCheckbox = ({ value, onValueChange, disabled, style, ...props }: AppCheckboxProps): ReactElement => {
13
+ const handlePress = (): void => {
14
+ if (!disabled) {
15
+ onValueChange(!value);
16
+ }
17
+ };
18
+
19
+ return (
20
+ <AppPressable style={styles.checkbox} disabled={disabled} onPress={handlePress} {...props}>
21
+ {value && <Icon name='check' color={colors.primary} />}
22
+ </AppPressable>
23
+ );
24
+ };
25
+
26
+ const styles = StyleSheet.create(({ colors, spacings }) => ({
27
+ checkbox: {
28
+ justifyContent: 'center',
29
+ alignItems: 'center',
30
+ borderWidth: 1,
31
+ borderColor: colors.textPrimary,
32
+ width: spacings.xxl,
33
+ height: spacings.xxl,
34
+ borderRadius: spacings.xs,
35
+ },
36
+ }));
@@ -0,0 +1,61 @@
1
+ import { NativeStackHeaderProps } from '@react-navigation/native-stack';
2
+ import { AppSafeAreaView } from '@ronas-it/react-native-common-modules/safe-area-view';
3
+ import { ReactElement } from 'react';
4
+ import { View } from 'react-native';
5
+ import { StyleSheet } from 'react-native-unistyles';
6
+ import { AppPressableIcon } from '../pressable-icon';
7
+ import { AppText } from '../text';
8
+
9
+ export interface AppHeaderProps {
10
+ title?: string;
11
+ accessoryLeft?: ReactElement;
12
+ accessoryRight?: ReactElement;
13
+ onGoBack?: () => void;
14
+ }
15
+
16
+ export function AppHeader({
17
+ title,
18
+ accessoryLeft,
19
+ accessoryRight,
20
+ onGoBack,
21
+ ...props
22
+ }: AppHeaderProps & NativeStackHeaderProps): ReactElement {
23
+ const options = props.options;
24
+ const titleText = title || options.title;
25
+
26
+ const renderBackButton = (): ReactElement | null => {
27
+ return onGoBack ? <AppPressableIcon name='chevronLeft' onPress={onGoBack} /> : null;
28
+ };
29
+
30
+ return (
31
+ <AppSafeAreaView edges={['top']} style={styles.container}>
32
+ <View style={styles.accessory}>{accessoryLeft ? accessoryLeft : renderBackButton()}</View>
33
+ <AppText variant='bodyLargeBold' style={styles.text}>
34
+ {titleText}
35
+ </AppText>
36
+ <View style={styles.accessory}>{accessoryRight}</View>
37
+ </AppSafeAreaView>
38
+ );
39
+ }
40
+
41
+ const styles = StyleSheet.create(({ colors, spacings }, { screen }) => ({
42
+ container: {
43
+ backgroundColor: colors.backgroundPrimary,
44
+ paddingVertical: spacings.sm,
45
+ paddingHorizontal: spacings.md,
46
+ flexDirection: 'row',
47
+ justifyContent: 'space-between',
48
+ alignItems: 'center',
49
+ },
50
+ text: {
51
+ textAlign: 'center',
52
+ // 44 - header accessory width, spacings.md - header horizontal padding
53
+ maxWidth: screen.width - 44 * 2 - spacings.md * 2,
54
+ },
55
+ accessory: {
56
+ minHeight: 44,
57
+ minWidth: 44,
58
+ alignItems: 'center',
59
+ justifyContent: 'center',
60
+ },
61
+ }));
@@ -0,0 +1,20 @@
1
+ import { Image, ImageBackground, ImageBackgroundProps, ImageProps } from 'expo-image';
2
+ import { ReactElement } from 'react';
3
+
4
+ export interface AppImageProps extends ImageProps {
5
+ isBackground?: false;
6
+ }
7
+
8
+ export interface AppImageBackgroundProps extends ImageBackgroundProps {
9
+ isBackground?: true;
10
+ }
11
+
12
+ export type ApiImageOverallProps = AppImageProps | AppImageBackgroundProps;
13
+
14
+ export function AppImage({ isBackground, ...restProps }: ApiImageOverallProps): ReactElement {
15
+ return isBackground ? (
16
+ <ImageBackground {...(restProps as ImageBackgroundProps)} />
17
+ ) : (
18
+ <Image {...(restProps as ImageProps)} />
19
+ );
20
+ }
@@ -7,3 +7,11 @@ export * from './screen';
7
7
  export * from './spinner';
8
8
  export * from './text';
9
9
  export * from './text-input';
10
+ export * from './header';
11
+ export * from './image';
12
+ export * from './checkbox';
13
+ export * from './under-construction';
14
+ export * from './search-input';
15
+ export * from './bottom-tab-navigator';
16
+ export * from './toast';
17
+ export * from './modal';
@@ -0,0 +1,12 @@
1
+ import { ReactElement } from 'react';
2
+ import { Modal, ModalProps } from 'react-native';
3
+ import { AppToast } from '../toast';
4
+
5
+ export function AppModal({ children, ...restProps }: ModalProps): ReactElement {
6
+ return (
7
+ <Modal {...restProps}>
8
+ {children}
9
+ <AppToast />
10
+ </Modal>
11
+ );
12
+ }
@@ -0,0 +1,92 @@
1
+ import { ReactElement, useRef, useState } from 'react';
2
+ import { TextInput, TextInputProps, View, FocusEvent, ViewStyle, Platform } from 'react-native';
3
+ import { StyleSheet } from 'react-native-unistyles';
4
+ import { colors, spacings } from '<%= libPath %>/shared/ui/styles';
5
+ import { Icon } from '../icon';
6
+ import { AppPressable } from '../pressable';
7
+ import { AppPressableIcon } from '../pressable-icon';
8
+ import { textStyles } from '../text';
9
+
10
+ export interface SearchInputProps extends Omit<TextInputProps, 'ref'> {
11
+ onInputPress?: () => void;
12
+ onClearPress?: () => void;
13
+ containerStyle?: ViewStyle;
14
+ }
15
+
16
+ export function SearchInput({
17
+ onInputPress,
18
+ onClearPress,
19
+ onFocus,
20
+ onBlur,
21
+ value,
22
+ containerStyle,
23
+ ...restProps
24
+ }: SearchInputProps): ReactElement {
25
+ textStyles.useVariants({ variant: 'bodyDefault' });
26
+
27
+ const isIos = Platform.OS === 'ios';
28
+ const ref = useRef<TextInput>(null);
29
+
30
+ const [isFocused, setIsFocused] = useState(false);
31
+
32
+ const handleInputPress = (): void => {
33
+ ref.current?.focus();
34
+ };
35
+
36
+ const handleFocus = (e: FocusEvent): void => {
37
+ setIsFocused(true);
38
+ onFocus?.(e);
39
+ };
40
+
41
+ const handleBlur = (e: FocusEvent): void => {
42
+ setIsFocused(false);
43
+ onBlur?.(e);
44
+ };
45
+
46
+ return (
47
+ <AppPressable style={containerStyle} onPress={onInputPress || handleInputPress} pressedOpacity={1}>
48
+ <View style={styles.container(isFocused)}>
49
+ <Icon name='search' />
50
+ <TextInput
51
+ ref={ref}
52
+ style={[textStyles.text, styles.input, isIos && styles.noLineHeight]}
53
+ cursorColor={colors.textPrimary}
54
+ selectionColor={colors.textPrimary}
55
+ placeholderTextColor={colors.textSecondary}
56
+ onBlur={handleBlur}
57
+ onFocus={handleFocus}
58
+ returnKeyType='search'
59
+ value={value}
60
+ {...restProps}
61
+ />
62
+ {!!value && onClearPress && <AppPressableIcon name='close' onPress={onClearPress} />}
63
+ </View>
64
+ </AppPressable>
65
+ );
66
+ }
67
+
68
+ const styles = StyleSheet.create(({ colors }) => ({
69
+ container: (focused: boolean) => ({
70
+ flex: 1,
71
+ flexDirection: 'row',
72
+ alignItems: 'center',
73
+ gap: spacings.xs,
74
+ paddingVertical: spacings.sm,
75
+ paddingHorizontal: spacings.md,
76
+ borderRadius: 200,
77
+ backgroundColor: colors.backgroundSecondary,
78
+ borderWidth: 1,
79
+ borderColor: focused ? colors.textTertiary : colors.backgroundSecondary,
80
+ }),
81
+ // NOTE: Needs to fix Android spacings
82
+ input: {
83
+ padding: 0,
84
+ flex: 1,
85
+ // https://reactnative.dev/docs/text-style-props#includefontpadding-android
86
+ includeFontPadding: false,
87
+ textAlignVertical: 'center',
88
+ },
89
+ noLineHeight: {
90
+ lineHeight: 0,
91
+ },
92
+ }));
@@ -0,0 +1,92 @@
1
+ import { ReactElement } from 'react';
2
+ import { View } from 'react-native';
3
+ import Toast, { ToastConfig } from 'react-native-toast-message';
4
+ import { StyleSheet } from 'react-native-unistyles';
5
+ import { commonStyle, rem, spacings } from '<%= libPath %>/shared/ui/styles';
6
+ import { AppPressableIcon } from '../pressable-icon';
7
+ import { AppText } from '../text';
8
+
9
+ export function AppToast(): ReactElement {
10
+ const ToastContainer = ({ children, hide }: { children: ReactElement; hide: () => void }): ReactElement => (
11
+ <View style={styles.wrapper}>
12
+ <View style={styles.toast}>
13
+ <View style={commonStyle.fullFlex}>{children}</View>
14
+ <AppPressableIcon name='close' onPress={hide} layoutStyle={styles.pressableContainer} />
15
+ </View>
16
+ </View>
17
+ );
18
+
19
+ const toastConfig: ToastConfig = {
20
+ info: ({ text1, hide }): ReactElement => {
21
+ return (
22
+ <ToastContainer hide={hide}>
23
+ <AppText variant='bodySmallBold' adjustsFontSizeToFit>
24
+ {text1}
25
+ </AppText>
26
+ </ToastContainer>
27
+ );
28
+ },
29
+ error: ({ text1, hide }): ReactElement => {
30
+ return (
31
+ <ToastContainer hide={hide}>
32
+ <AppText variant='bodySmallBold' adjustsFontSizeToFit style={styles.errorText}>
33
+ {text1}
34
+ </AppText>
35
+ </ToastContainer>
36
+ );
37
+ },
38
+ success: ({ text1, hide }): ReactElement => {
39
+ return (
40
+ <ToastContainer hide={hide}>
41
+ <AppText variant='bodySmallBold' adjustsFontSizeToFit>
42
+ {text1}
43
+ </AppText>
44
+ </ToastContainer>
45
+ );
46
+ },
47
+ };
48
+
49
+ return (
50
+ <View style={styles.container}>
51
+ <Toast config={toastConfig} />
52
+ </View>
53
+ );
54
+ }
55
+
56
+ const styles = StyleSheet.create(({ colors }, { insets }) => ({
57
+ container: {
58
+ position: 'absolute',
59
+ top: insets.top,
60
+ width: '100%',
61
+ },
62
+ wrapper: {
63
+ paddingHorizontal: spacings.md,
64
+ width: '100%',
65
+ },
66
+ pressableContainer: {
67
+ width: 2 * rem,
68
+ height: 2 * rem,
69
+ alignItems: 'center',
70
+ justifyContent: 'center',
71
+ borderRadius: spacings.md,
72
+ backgroundColor: colors.backgroundSecondary,
73
+ },
74
+ toast: {
75
+ flexDirection: 'row',
76
+ width: '100%',
77
+ borderRadius: spacings.md,
78
+ paddingVertical: spacings.md,
79
+ paddingHorizontal: spacings.xxl,
80
+ alignItems: 'center',
81
+ justifyContent: 'space-between',
82
+ gap: spacings.md,
83
+ backgroundColor: colors.backgroundSecondary,
84
+ shadowColor: colors.textTertiary,
85
+ shadowOffset: { width: 0, height: 20 },
86
+ shadowOpacity: 1,
87
+ shadowRadius: 40,
88
+ },
89
+ errorText: {
90
+ color: colors.error,
91
+ },
92
+ }));
@@ -0,0 +1,2 @@
1
+ export * from './component';
2
+ export * from './provider';
@@ -0,0 +1,12 @@
1
+ import { Fragment, PropsWithChildren, ReactElement } from 'react';
2
+ import { AppToast } from './component';
3
+
4
+ // TODO: Add ToastProvider to the main _layout.tsx file
5
+ export function ToastProvider({ children }: PropsWithChildren): ReactElement {
6
+ return (
7
+ <Fragment>
8
+ {children}
9
+ <AppToast />
10
+ </Fragment>
11
+ );
12
+ }
@@ -0,0 +1,31 @@
1
+ import { useTranslation } from '@ronas-it/react-native-common-modules/i18n';
2
+ import { ReactElement } from 'react';
3
+ import { StyleProp, View, ViewStyle } from 'react-native';
4
+ import { StyleSheet } from 'react-native-unistyles';
5
+ import { rem } from '<%= libPath %>/shared/ui/styles';
6
+ import { Icon } from '../icon';
7
+ import { AppText } from '../text';
8
+
9
+ interface UnderConstructionProps {
10
+ style?: StyleProp<ViewStyle>;
11
+ }
12
+
13
+ export function UnderConstruction({ style }: UnderConstructionProps): ReactElement {
14
+ const translate = useTranslation('SHARED.UNDER_CONSTRUCTION');
15
+
16
+ return (
17
+ <View style={[styles.container, style]}>
18
+ <Icon name='underConstruction' />
19
+ <AppText>{translate('TEXT_WE_ARE_WORKING_ON_THIS_SECTION')}</AppText>
20
+ </View>
21
+ );
22
+ }
23
+
24
+ const styles = StyleSheet.create({
25
+ container: {
26
+ width: '100%',
27
+ justifyContent: 'center',
28
+ alignItems: 'center',
29
+ gap: 2 * rem,
30
+ },
31
+ });
@@ -0,0 +1 @@
1
+ export * from './service';
@@ -0,0 +1,48 @@
1
+ import { i18n } from '@ronas-it/react-native-common-modules/i18n';
2
+ import Toast from 'react-native-toast-message';
3
+
4
+ export class ToastService {
5
+ public static showFeatureNotImplemented(): void {
6
+ Toast.show({
7
+ type: 'info',
8
+ position: 'top',
9
+ topOffset: 32,
10
+ visibilityTime: 2000,
11
+ text1: i18n.t('SHARED.TOAST_SERVICE.TEXT_FEATURE_NOT_IMPLEMENTED_YET'),
12
+ });
13
+ }
14
+
15
+ public static showError(message?: string): void {
16
+ Toast.show({
17
+ type: 'error',
18
+ position: 'top',
19
+ topOffset: 32,
20
+ visibilityTime: 4000,
21
+ text1: message || i18n.t('SHARED.TOAST_SERVICE.TEXT_SOMETHING_WENT_WRONG'),
22
+ });
23
+ }
24
+
25
+ public static showSuccess(message?: string): void {
26
+ Toast.show({
27
+ type: 'success',
28
+ position: 'top',
29
+ topOffset: 32,
30
+ visibilityTime: 2000,
31
+ text1: message,
32
+ });
33
+ }
34
+
35
+ public static show(message: string): void {
36
+ Toast.show({
37
+ type: 'info',
38
+ position: 'top',
39
+ topOffset: 32,
40
+ visibilityTime: 2000,
41
+ text1: message,
42
+ });
43
+ }
44
+
45
+ public static hide(): void {
46
+ Toast.hide();
47
+ }
48
+ }
@@ -2,6 +2,7 @@ import * as devkit from '@nx/devkit';
2
2
  import { Tree } from '@nx/devkit';
3
3
  interface AssertFirstLineOptions {
4
4
  placeholders?: Record<string, string>;
5
+ /** Basename match, or glob with `*` (e.g. `*.ttf`). */
5
6
  ignoreFiles?: Array<string>;
6
7
  }
7
8
  export declare function assertFirstLine(sourceDir: string, targetDir: string, tree: devkit.Tree, options?: AssertFirstLineOptions): void;
@@ -5,6 +5,16 @@ exports.mockGenerateFiles = mockGenerateFiles;
5
5
  const fs = require("fs");
6
6
  const path = require("path");
7
7
  const BINARY_FILE_PATTERN = /\.(ttf|otf|eot|woff2?|png|jpe?g|gif|ico|webp|pdf)$/i;
8
+ function fileNameMatchesIgnorePattern(fileName, pattern) {
9
+ if (!pattern.includes('*')) {
10
+ return fileName === pattern;
11
+ }
12
+ const regexSource = pattern
13
+ .split('*')
14
+ .map((segment) => segment.replace(/[.+^${}()|[\]\\]/g, '\\$&'))
15
+ .join('.*');
16
+ return new RegExp(`^${regexSource}$`).test(fileName);
17
+ }
8
18
  function assertFirstLine(sourceDir, targetDir, tree, options = {}) {
9
19
  var _a;
10
20
  const { placeholders = {}, ignoreFiles = [] } = options;
@@ -15,7 +25,7 @@ function assertFirstLine(sourceDir, targetDir, tree, options = {}) {
15
25
  assertFirstLine(srcPath, path.join(targetDir, entry.name), tree, options);
16
26
  }
17
27
  else {
18
- if (ignoreFiles.includes(entry.name)) {
28
+ if (ignoreFiles.some((p) => fileNameMatchesIgnorePattern(entry.name, p))) {
19
29
  continue;
20
30
  }
21
31
  let fileName = entry.name.replace(/\.template$/, '');
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../plugin/src/shared/tests-utils/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../plugin/src/shared/tests-utils/utils.ts"],"names":[],"mappings":"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"}