2 |
3 | #import "AppDelegate.h"
4 |
5 | int main(int argc, char * argv[]) {
6 | @autoreleasepool {
7 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
8 | }
9 | }
10 |
11 |
--------------------------------------------------------------------------------
/apps/example/android/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 | #ffffff
3 | #FFFFFF
4 | #023c69
5 | #ffffff
6 |
--------------------------------------------------------------------------------
/apps/example/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.1-all.zip
4 | networkTimeout=10000
5 | zipStoreBase=GRADLE_USER_HOME
6 | zipStorePath=wrapper/dists
7 |
--------------------------------------------------------------------------------
/apps/example/android/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | example
3 | contain
4 | false
5 |
--------------------------------------------------------------------------------
/apps/example/ios/example/example.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | aps-environment
6 | development
7 |
8 |
--------------------------------------------------------------------------------
/apps/example/ios/example.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/apps/example/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/apps/example/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/apps/example/ios/example/Images.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images": [
3 | {
4 | "filename": "App-Icon-1024x1024@1x.png",
5 | "idiom": "universal",
6 | "platform": "ios",
7 | "size": "1024x1024"
8 | }
9 | ],
10 | "info": {
11 | "version": 1,
12 | "author": "expo"
13 | }
14 | }
--------------------------------------------------------------------------------
/apps/example/index.js:
--------------------------------------------------------------------------------
1 | import { registerRootComponent } from "expo";
2 |
3 | import App from "./App";
4 |
5 | // registerRootComponent calls AppRegistry.registerComponent('main', () => App);
6 | // It also ensures that whether you load the app in Expo Go or in a native build,
7 | // the environment is set up appropriately
8 | registerRootComponent(App);
9 |
--------------------------------------------------------------------------------
/packages/icons/tsup.config.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig, Options } from 'tsup';
2 |
3 | export default defineConfig((options: Options) => ({
4 | entry: {
5 | index: 'src/index.tsx',
6 | },
7 | banner: {
8 | js: "'use client'",
9 | },
10 | clean: true,
11 | format: ['cjs', 'esm'],
12 | external: ['react'],
13 | dts: true,
14 | minify: true,
15 | ...options,
16 | }));
17 |
--------------------------------------------------------------------------------
/apps/example/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/turbo.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://turbo.build/schema.json",
3 | "globalDependencies": ["**/.env.*local"],
4 | "pipeline": {
5 | "build": {
6 | "outputs": ["dist/**", ".next/**", "!.next/cache/**"],
7 | "dependsOn": ["^build"]
8 | },
9 | "dev": {
10 | "cache": false,
11 | "persistent": true
12 | },
13 | "lint": {},
14 | "clean": {
15 | "cache": false
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/apps/example/ios/example/Images.xcassets/SplashScreen.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images": [
3 | {
4 | "idiom": "universal",
5 | "filename": "image.png",
6 | "scale": "1x"
7 | },
8 | {
9 | "idiom": "universal",
10 | "scale": "2x"
11 | },
12 | {
13 | "idiom": "universal",
14 | "scale": "3x"
15 | }
16 | ],
17 | "info": {
18 | "version": 1,
19 | "author": "expo"
20 | }
21 | }
--------------------------------------------------------------------------------
/apps/example/ios/example/Images.xcassets/SplashScreenBackground.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images": [
3 | {
4 | "idiom": "universal",
5 | "filename": "image.png",
6 | "scale": "1x"
7 | },
8 | {
9 | "idiom": "universal",
10 | "scale": "2x"
11 | },
12 | {
13 | "idiom": "universal",
14 | "scale": "3x"
15 | }
16 | ],
17 | "info": {
18 | "version": 1,
19 | "author": "expo"
20 | }
21 | }
--------------------------------------------------------------------------------
/apps/example/ios/.gitignore:
--------------------------------------------------------------------------------
1 | # OSX
2 | #
3 | .DS_Store
4 |
5 | # Xcode
6 | #
7 | build/
8 | *.pbxuser
9 | !default.pbxuser
10 | *.mode1v3
11 | !default.mode1v3
12 | *.mode2v3
13 | !default.mode2v3
14 | *.perspectivev3
15 | !default.perspectivev3
16 | xcuserdata
17 | *.xccheckout
18 | *.moved-aside
19 | DerivedData
20 | *.hmap
21 | *.ipa
22 | *.xcuserstate
23 | project.xcworkspace
24 | .xcode.env.local
25 |
26 | # Bundle artifacts
27 | *.jsbundle
28 |
29 | # CocoaPods
30 | /Pods/
31 |
--------------------------------------------------------------------------------
/packages/icons/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | src/__generated/temp-icon-table.md
4 |
5 | # dependencies
6 | node_modules
7 | .pnp
8 | .pnp.js
9 |
10 |
11 | # misc
12 | .DS_Store
13 | *.pem
14 |
15 | # build
16 | dist
17 |
18 | # debug
19 | npm-debug.log*
20 | yarn-debug.log*
21 | yarn-error.log*
22 |
23 | # local env files
24 | .env.local
25 | .env.development.local
26 | .env.test.local
27 | .env.production.local
28 |
29 | # turbo
30 | .turbo
--------------------------------------------------------------------------------
/apps/example/ios/example/Supporting/Expo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | EXUpdatesCheckOnLaunch
6 | ALWAYS
7 | EXUpdatesEnabled
8 |
9 | EXUpdatesLaunchWaitMs
10 | 0
11 | EXUpdatesSDKVersion
12 | 49.0.0
13 |
14 |
--------------------------------------------------------------------------------
/apps/example/ios/.xcode.env:
--------------------------------------------------------------------------------
1 | # This `.xcode.env` file is versioned and is used to source the environment
2 | # used when running script phases inside Xcode.
3 | # To customize your local environment, you can create an `.xcode.env.local`
4 | # file that is not versioned.
5 |
6 | # NODE_BINARY variable contains the PATH to the node executable.
7 | #
8 | # Customize the NODE_BINARY variable here.
9 | # For example, to use nvm with brew, add the following line
10 | # . "$(brew --prefix nvm)/nvm.sh" --no-use
11 | export NODE_BINARY=$(command -v node)
12 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "private": true,
3 | "workspaces": [
4 | "apps/*",
5 | "packages/*"
6 | ],
7 | "scripts": {
8 | "dev": "turbo run dev",
9 | "build": "turbo run build",
10 | "clean": "turbo run clean && rm -rf node_modules",
11 | "format": "prettier --write \"**/*.{ts,tsx,js,jsx,json,md}\" --ignore-path .gitignore"
12 | },
13 | "devDependencies": {
14 | "prettier": "^3.1.1",
15 | "turbo": "latest"
16 | },
17 | "packageManager": "yarn@1.22.19",
18 | "engines": {
19 | "node": ">=18"
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | node_modules
5 | .pnp
6 | .pnp.js
7 |
8 | # testing
9 | coverage
10 |
11 | # next.js
12 | .next/
13 | .swc/
14 | out/
15 | build
16 |
17 | # expo
18 | .expo
19 |
20 | # misc
21 | .DS_Store
22 | *.pem
23 | dist
24 |
25 | # debug
26 | npm-debug.log*
27 | yarn-debug.log*
28 | yarn-error.log*
29 |
30 | # local env files
31 | .env.local
32 | .env.development.local
33 | .env.test.local
34 | .env.production.local
35 |
36 | # turbo
37 | .turbo
38 |
--------------------------------------------------------------------------------
/apps/example/android/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # react-native-reanimated
11 | -keep class com.swmansion.reanimated.** { *; }
12 | -keep class com.facebook.react.turbomodule.** { *; }
13 |
14 | # Add any project specific keep options here:
15 |
--------------------------------------------------------------------------------
/apps/example/android/settings.gradle:
--------------------------------------------------------------------------------
1 | rootProject.name = 'example'
2 |
3 | apply from: new File(["node", "--print", "require.resolve('expo/package.json')"].execute(null, rootDir).text.trim(), "../scripts/autolinking.gradle");
4 | useExpoModules()
5 |
6 | apply from: new File(["node", "--print", "require.resolve('@react-native-community/cli-platform-android/package.json')"].execute(null, rootDir).text.trim(), "../native_modules.gradle");
7 | applyNativeModulesSettingsGradle(settings)
8 |
9 | include ':app'
10 | includeBuild(new File(["node", "--print", "require.resolve('@react-native/gradle-plugin/package.json')"].execute(null, rootDir).text.trim()).getParentFile())
11 |
--------------------------------------------------------------------------------
/apps/example/android/app/src/release/java/com/roninoss/icons/ReactNativeFlipper.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Meta Platforms, Inc. and affiliates.
3 | *
4 | * This source code is licensed under the MIT license found in the LICENSE file in the root
5 | * directory of this source tree.
6 | */
7 | package com.roninoss.icons;
8 |
9 | import android.content.Context;
10 | import com.facebook.react.ReactInstanceManager;
11 |
12 | /**
13 | * Class responsible of loading Flipper inside your React Native application. This is the release
14 | * flavor of it so it's empty as we don't want to load Flipper.
15 | */
16 | public class ReactNativeFlipper {
17 | public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) {
18 | // Do nothing as we don't want to initialize Flipper on Release.
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/packages/icons/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://json.schemastore.org/tsconfig",
3 | "display": "Default",
4 | "compilerOptions": {
5 | "composite": false,
6 | "declaration": true,
7 | "declarationMap": true,
8 | "esModuleInterop": true,
9 | "forceConsistentCasingInFileNames": true,
10 | "inlineSources": false,
11 | "isolatedModules": true,
12 | "moduleResolution": "node",
13 | "noUnusedLocals": false,
14 | "noUnusedParameters": false,
15 | "preserveWatchOutput": true,
16 | "skipLibCheck": true,
17 | "strict": true,
18 | "allowJs": true,
19 | "jsx": "react-native",
20 | "lib": ["DOM", "ESNext"],
21 | "noEmit": true,
22 | "resolveJsonModule": true,
23 | "target": "ESNext"
24 | },
25 | "include": ["."],
26 | "exclude": ["dist", "build", "node_modules"]
27 | }
28 |
--------------------------------------------------------------------------------
/apps/example/metro.config.js:
--------------------------------------------------------------------------------
1 | // Learn more https://docs.expo.io/guides/customizing-metro
2 | const { getDefaultConfig } = require("expo/metro-config");
3 | const path = require("path");
4 |
5 | // Find the workspace root, this can be replaced with `find-yarn-workspace-root`
6 | const workspaceRoot = path.resolve(__dirname, "../..");
7 | const projectRoot = __dirname;
8 |
9 | const config = getDefaultConfig(projectRoot);
10 |
11 | // 1. Watch all files within the monorepo
12 | config.watchFolders = [workspaceRoot];
13 | // 2. Let Metro know where to resolve packages, and in what order
14 | config.resolver.nodeModulesPaths = [
15 | path.resolve(projectRoot, "node_modules"),
16 | path.resolve(workspaceRoot, "node_modules"),
17 | ];
18 | // 3. Force Metro to resolve (sub)dependencies only from the `nodeModulesPaths`
19 | config.resolver.disableHierarchicalLookup = true;
20 |
21 | module.exports = config;
22 |
--------------------------------------------------------------------------------
/packages/icons/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@roninoss/icons",
3 | "version": "0.0.4",
4 | "main": "./dist/index.js",
5 | "types": "./dist/index.d.ts",
6 | "files": [
7 | "dist"
8 | ],
9 | "scripts": {
10 | "gen": "tsx scripts/generate-sf-symbol-mapping.ts",
11 | "gen:md-icon-table": "tsx scripts/generate-md-icon-table.ts",
12 | "build": "tsup",
13 | "dev": "tsup --watch",
14 | "clean": "rm -rf dist"
15 | },
16 | "devDependencies": {
17 | "@types/react": "^18.2.46",
18 | "@types/react-native": "^0.73.0",
19 | "react": "^18.2.0",
20 | "react-native": "^0.73.1",
21 | "tsup": "^8.0.1",
22 | "tsx": "^4.7.1",
23 | "typescript": "^5.3.3"
24 | },
25 | "dependencies": {
26 | "@expo/vector-icons": "^13.0.0",
27 | "sweet-sfsymbols": "^0.7.0"
28 | },
29 | "peerDependencies": {
30 | "react": "*",
31 | "react-native": "*"
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/apps/example/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "example",
3 | "version": "1.0.0",
4 | "private": true,
5 | "main": "index.js",
6 | "scripts": {
7 | "dev": "npx expo run:ios",
8 | "android": "expo run:android",
9 | "ios": "expo run:ios",
10 | "web": "expo start --web",
11 | "eject": "expo eject"
12 | },
13 | "dependencies": {
14 | "@roninoss/icons": "*",
15 | "expo": "^49.0.21",
16 | "expo-dev-client": "~2.4.13",
17 | "expo-splash-screen": "~0.20.5",
18 | "expo-status-bar": "~1.6.0",
19 | "prettier": "^3.2.5",
20 | "react": "^18.2.0",
21 | "react-dom": "^18.2.0",
22 | "react-native": "0.72.10",
23 | "react-native-web": "^0.19.10"
24 | },
25 | "devDependencies": {
26 | "@babel/core": "^7.23.7",
27 | "@expo/webpack-config": "^19.0.0",
28 | "@types/react": "^18.2.46",
29 | "@types/react-native": "^0.73.0",
30 | "typescript": "^5.3.3"
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/apps/example/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "name": "example",
4 | "slug": "example",
5 | "version": "1.0.0",
6 | "orientation": "portrait",
7 | "icon": "./assets/icon.png",
8 | "userInterfaceStyle": "light",
9 | "splash": {
10 | "image": "./assets/splash.png",
11 | "resizeMode": "contain",
12 | "backgroundColor": "#ffffff"
13 | },
14 | "updates": {
15 | "fallbackToCacheTimeout": 0
16 | },
17 | "assetBundlePatterns": [
18 | "**/*"
19 | ],
20 | "ios": {
21 | "supportsTablet": true,
22 | "bundleIdentifier": "com.roninoss.icons"
23 | },
24 | "android": {
25 | "adaptiveIcon": {
26 | "foregroundImage": "./assets/adaptive-icon.png",
27 | "backgroundColor": "#FFFFFF"
28 | },
29 | "package": "com.roninoss.icons"
30 | },
31 | "web": {
32 | "favicon": "./assets/favicon.png"
33 | }
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/apps/example/android/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
14 |
17 |
--------------------------------------------------------------------------------
/packages/icons/scripts/generate-md-icon-table.ts:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 |
3 | import { promises as fs } from 'fs';
4 | import { ICON_MAPPING } from '../src/icon-mapping';
5 |
6 | function generateMarkdownTable() {
7 | // Extract keys and sort them alphabetically
8 | const sortedKeys = Object.keys(ICON_MAPPING).sort();
9 |
10 | // Generate Markdown table header
11 | let markdownTable = '| Material Name | Material Type | SF Symbol Name |\n';
12 | markdownTable += '| --- | --- | --- |\n';
13 |
14 | // Generate rows for each key
15 | sortedKeys.forEach((key) => {
16 | const { sfSymbol, type } = ICON_MAPPING[key as 'person'];
17 | markdownTable += `| ${key} | ${type} | ${sfSymbol} |\n`;
18 | });
19 |
20 | return markdownTable;
21 | }
22 |
23 | async function main() {
24 | try {
25 | await fs.writeFile(
26 | 'src/__generated/temp-icon-table.md',
27 | generateMarkdownTable()
28 | );
29 | } catch (error) {
30 | console.error(error);
31 | }
32 | }
33 |
34 | main();
35 |
--------------------------------------------------------------------------------
/packages/icons/scripts/generate-sf-symbol-mapping.ts:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 |
3 | import { promises as fs } from 'fs';
4 | import { ICON_MAPPING } from '../src/icon-mapping';
5 |
6 | type IosName = (typeof ICON_MAPPING)[keyof typeof ICON_MAPPING]['sfSymbol'];
7 |
8 | type IconMapping = Record<
9 | IosName,
10 | {
11 | type: 'MaterialIcons' | 'MaterialCommunityIcons';
12 | material: keyof typeof ICON_MAPPING;
13 | }
14 | >;
15 |
16 | async function main() {
17 | const SF_SYMBOL_MAPPING = {} as IconMapping;
18 | for (const key in ICON_MAPPING) {
19 | const subObject = ICON_MAPPING[key as keyof typeof ICON_MAPPING];
20 | SF_SYMBOL_MAPPING[subObject.sfSymbol as IosName] = {
21 | type: subObject.type,
22 | material: key as keyof typeof ICON_MAPPING,
23 | };
24 | }
25 |
26 | try {
27 | await fs.writeFile(
28 | 'src/__generated/sf-symbol-mapping.ts',
29 | `export const SF_SYMBOL_MAPPING = ${JSON.stringify(SF_SYMBOL_MAPPING, null, 2)} as const\n`
30 | );
31 | } catch (error) {
32 | console.error(error);
33 | }
34 | }
35 |
36 | main();
37 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2024 roninOSS
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/packages/icons/src/get-icon-names.ts:
--------------------------------------------------------------------------------
1 | import { SF_SYMBOL_MAPPING } from './__generated/sf-symbol-mapping';
2 | import { ICON_MAPPING } from './icon-mapping';
3 | import type {
4 | MaterialCommunityIconsProps,
5 | MaterialIconName,
6 | MaterialIconsProps,
7 | SfSymbolIconName,
8 | } from './types';
9 |
10 | export function getIconNames(
11 | namingScheme: 'sfSymbol' | 'material',
12 | name?: MaterialIconName | SfSymbolIconName
13 | ) {
14 | if (!name) {
15 | return {};
16 | }
17 | if (namingScheme === 'sfSymbol') {
18 | const sfSymbolName = name as SfSymbolIconName;
19 | const icon = SF_SYMBOL_MAPPING[sfSymbolName];
20 | if (!icon) {
21 | return {};
22 | }
23 | return {
24 | sfSymbol: sfSymbolName,
25 | materialIcon: icon.type === 'MaterialIcons' ? icon.material : null,
26 | materialCommunityIcon:
27 | icon.type === 'MaterialCommunityIcons' ? icon.material : null,
28 | };
29 | }
30 |
31 | const icon = ICON_MAPPING[name as MaterialIconName];
32 | if (!icon) {
33 | return {};
34 | }
35 | return {
36 | sfSymbol: icon.sfSymbol,
37 | materialIcon:
38 | icon.type === 'MaterialIcons'
39 | ? (name as MaterialIconsProps['name'])
40 | : null,
41 | materialCommunityIcon:
42 | icon.type === 'MaterialCommunityIcons'
43 | ? (name as MaterialCommunityIconsProps['name'])
44 | : null,
45 | };
46 | }
47 |
--------------------------------------------------------------------------------
/apps/example/android/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 |
3 | buildscript {
4 | ext {
5 | buildToolsVersion = findProperty('android.buildToolsVersion') ?: '33.0.0'
6 | minSdkVersion = Integer.parseInt(findProperty('android.minSdkVersion') ?: '21')
7 | compileSdkVersion = Integer.parseInt(findProperty('android.compileSdkVersion') ?: '33')
8 | targetSdkVersion = Integer.parseInt(findProperty('android.targetSdkVersion') ?: '33')
9 | kotlinVersion = findProperty('android.kotlinVersion') ?: '1.8.10'
10 | frescoVersion = findProperty('expo.frescoVersion') ?: '2.5.0'
11 |
12 | // We use NDK 23 which has both M1 support and is the side-by-side NDK version from AGP.
13 | ndkVersion = "23.1.7779620"
14 | }
15 | repositories {
16 | google()
17 | mavenCentral()
18 | }
19 | dependencies {
20 | classpath('com.android.tools.build:gradle:7.4.2')
21 | classpath('com.facebook.react:react-native-gradle-plugin')
22 | }
23 | }
24 |
25 | allprojects {
26 | repositories {
27 | maven {
28 | // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
29 | url(new File(['node', '--print', "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim(), '../android'))
30 | }
31 | maven {
32 | // Android JSC is installed from npm
33 | url(new File(['node', '--print', "require.resolve('jsc-android/package.json')"].execute(null, rootDir).text.trim(), '../dist'))
34 | }
35 |
36 | google()
37 | mavenCentral()
38 | maven { url 'https://www.jitpack.io' }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/apps/example/android/app/src/main/res/drawable/rn_edit_text_material.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
21 |
22 |
23 |
32 |
33 |
34 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/apps/example/android/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/packages/icons/src/Icon.tsx:
--------------------------------------------------------------------------------
1 | import MaterialCommunityIcons from '@expo/vector-icons/MaterialCommunityIcons';
2 | import MaterialIcons from '@expo/vector-icons/MaterialIcons';
3 | import * as React from 'react';
4 | import { Platform } from 'react-native';
5 | import SFSymbol from 'sweet-sfsymbols';
6 | import { getIconNames } from './get-icon-names';
7 | import type { IconProps } from './types';
8 |
9 | export function Icon({
10 | name,
11 | color = '#000000',
12 | namingScheme = 'material',
13 | size = 27,
14 | ios,
15 | materialIcon,
16 | }: IconProps) {
17 | const { useMaterialIcon, ...sfSymbolProps } = ios ?? {};
18 | const iconNames = React.useMemo(
19 | () => getIconNames(namingScheme, name),
20 | [namingScheme, name]
21 | );
22 |
23 | if (Platform.OS !== 'ios' || useMaterialIcon) {
24 | if (materialIcon?.type === 'MaterialCommunityIcons') {
25 | return (
26 |
32 | );
33 | }
34 | if (materialIcon?.type === 'MaterialIcons') {
35 | return (
36 |
42 | );
43 | }
44 | if (!name) return null;
45 | const materialProps = materialIcon ?? {};
46 | return !!iconNames.materialIcon ? (
47 |
54 | ) : (
55 |
62 | );
63 | }
64 | return (
65 |
72 | );
73 | }
74 |
--------------------------------------------------------------------------------
/apps/example/android/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 |
3 | # IDE (e.g. Android Studio) users:
4 | # Gradle settings configured through the IDE *will override*
5 | # any settings specified in this file.
6 |
7 | # For more details on how to configure your build environment visit
8 | # http://www.gradle.org/docs/current/userguide/build_environment.html
9 |
10 | # Specifies the JVM arguments used for the daemon process.
11 | # The setting is particularly useful for tweaking memory settings.
12 | # Default value: -Xmx512m -XX:MaxMetaspaceSize=256m
13 | org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m
14 |
15 | # When configured, Gradle will run in incubating parallel mode.
16 | # This option should only be used with decoupled projects. More details, visit
17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
18 | # org.gradle.parallel=true
19 |
20 | # AndroidX package structure to make it clearer which packages are bundled with the
21 | # Android operating system, and which are packaged with your app's APK
22 | # https://developer.android.com/topic/libraries/support-library/androidx-rn
23 | android.useAndroidX=true
24 |
25 | # Automatically convert third-party libraries to use AndroidX
26 | android.enableJetifier=true
27 |
28 | # Version of flipper SDK to use with React Native
29 | FLIPPER_VERSION=0.182.0
30 |
31 | # Use this property to specify which architecture you want to build.
32 | # You can also override it from the CLI using
33 | # ./gradlew -PreactNativeArchitectures=x86_64
34 | reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64
35 |
36 | # Use this property to enable support to the new architecture.
37 | # This will allow you to use TurboModules and the Fabric render in
38 | # your application. You should enable this flag either if you want
39 | # to write custom TurboModules/Fabric components OR use libraries that
40 | # are providing them.
41 | newArchEnabled=false
42 |
43 | # Use this property to enable or disable the Hermes JS engine.
44 | # If set to false, you will be using JSC instead.
45 | hermesEnabled=true
46 |
47 | # Enable GIF support in React Native images (~200 B increase)
48 | expo.gif.enabled=true
49 | # Enable webp support in React Native images (~85 KB increase)
50 | expo.webp.enabled=true
51 | # Enable animated webp support (~3.4 MB increase)
52 | # Disabled by default because iOS doesn't support animated webp
53 | expo.webp.animated=false
54 |
55 | # Enable network inspector
56 | EX_DEV_CLIENT_NETWORK_INSPECTOR=true
57 |
--------------------------------------------------------------------------------
/packages/icons/src/types.ts:
--------------------------------------------------------------------------------
1 | import type MaterialCommunityIcons from '@expo/vector-icons/MaterialCommunityIcons';
2 | import type MaterialIcons from '@expo/vector-icons/MaterialIcons';
3 | import type SFSymbol from 'sweet-sfsymbols';
4 | import type { SF_SYMBOL_MAPPING } from './__generated/sf-symbol-mapping';
5 | import type { ICON_MAPPING } from './icon-mapping';
6 |
7 | export type SFSymbolProps = React.ComponentPropsWithoutRef;
8 | export type MaterialIconsProps = React.ComponentPropsWithoutRef<
9 | typeof MaterialIcons
10 | >;
11 | export type MaterialCommunityIconsProps = React.ComponentPropsWithoutRef<
12 | typeof MaterialCommunityIcons
13 | >;
14 |
15 | type IOSProps =
16 | | { useMaterialIcon: true }
17 | | ({ useMaterialIcon?: false } & SFSymbolProps);
18 | type OptionalIOSProps = { useMaterialIcon?: boolean } & Partial;
19 |
20 | type MaterialProps =
21 | | ({ type: 'MaterialCommunityIcons' } & MaterialCommunityIconsProps)
22 | | ({ type: 'MaterialIcons' } & MaterialIconsProps);
23 | type OptionalMaterialProps =
24 | | ({ type?: 'MaterialCommunityIcons' } & Partial)
25 | | ({ type?: 'MaterialIcons' } & Partial);
26 |
27 | export type MaterialIconName = keyof typeof ICON_MAPPING;
28 | export type SfSymbolIconName = keyof typeof SF_SYMBOL_MAPPING;
29 |
30 | type IconBaseProps = {
31 | namingScheme?: T;
32 | color?: string;
33 | size?: number;
34 | ios?: OptionalIOSProps;
35 | materialIcon?: OptionalMaterialProps;
36 | };
37 |
38 | type IconWithMaterialNameProps = {
39 | name: MaterialIconName;
40 | } & IconBaseProps;
41 |
42 | type IconWithSfSymbolNameProps = {
43 | name: SfSymbolIconName;
44 | } & IconBaseProps;
45 |
46 | type IconBaseWithOptionalNameProps = {
47 | namingScheme?: T;
48 | color?: string;
49 | size?: number;
50 | ios: IOSProps;
51 | materialIcon: MaterialProps;
52 | };
53 |
54 | type IconWithOptionalMaterialNameProps = {
55 | name?: MaterialIconName;
56 | } & IconBaseWithOptionalNameProps;
57 |
58 | type IconWithOptionalSfSymbolNameProps = {
59 | name?: SfSymbolIconName;
60 | } & IconBaseWithOptionalNameProps;
61 |
62 | export type IconProps = T extends 'sfSymbol'
63 | ? IconWithSfSymbolNameProps | IconWithOptionalSfSymbolNameProps
64 | : IconWithMaterialNameProps | IconWithOptionalMaterialNameProps;
65 |
--------------------------------------------------------------------------------
/apps/example/android/app/src/main/java/com/roninoss/icons/MainActivity.java:
--------------------------------------------------------------------------------
1 | package com.roninoss.icons;
2 |
3 | import android.os.Build;
4 | import android.os.Bundle;
5 |
6 | import com.facebook.react.ReactActivity;
7 | import com.facebook.react.ReactActivityDelegate;
8 | import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint;
9 | import com.facebook.react.defaults.DefaultReactActivityDelegate;
10 |
11 | import expo.modules.ReactActivityDelegateWrapper;
12 |
13 | public class MainActivity extends ReactActivity {
14 | @Override
15 | protected void onCreate(Bundle savedInstanceState) {
16 | // Set the theme to AppTheme BEFORE onCreate to support
17 | // coloring the background, status bar, and navigation bar.
18 | // This is required for expo-splash-screen.
19 | setTheme(R.style.AppTheme);
20 | super.onCreate(null);
21 | }
22 |
23 | /**
24 | * Returns the name of the main component registered from JavaScript.
25 | * This is used to schedule rendering of the component.
26 | */
27 | @Override
28 | protected String getMainComponentName() {
29 | return "main";
30 | }
31 |
32 | /**
33 | * Returns the instance of the {@link ReactActivityDelegate}. Here we use a util class {@link
34 | * DefaultReactActivityDelegate} which allows you to easily enable Fabric and Concurrent React
35 | * (aka React 18) with two boolean flags.
36 | */
37 | @Override
38 | protected ReactActivityDelegate createReactActivityDelegate() {
39 | return new ReactActivityDelegateWrapper(this, BuildConfig.IS_NEW_ARCHITECTURE_ENABLED, new DefaultReactActivityDelegate(
40 | this,
41 | getMainComponentName(),
42 | // If you opted-in for the New Architecture, we enable the Fabric Renderer.
43 | DefaultNewArchitectureEntryPoint.getFabricEnabled()));
44 | }
45 |
46 | /**
47 | * Align the back button behavior with Android S
48 | * where moving root activities to background instead of finishing activities.
49 | * @see onBackPressed
50 | */
51 | @Override
52 | public void invokeDefaultOnBackPressed() {
53 | if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) {
54 | if (!moveTaskToBack(false)) {
55 | // For non-root activities, use the default implementation to finish them.
56 | super.invokeDefaultOnBackPressed();
57 | }
58 | return;
59 | }
60 |
61 | // Use the default back button implementation on Android S
62 | // because it's doing more than {@link Activity#moveTaskToBack} in fact.
63 | super.invokeDefaultOnBackPressed();
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/apps/example/App.tsx:
--------------------------------------------------------------------------------
1 | // @refresh reset
2 |
3 | import 'expo-dev-client';
4 |
5 | import { ICON_MAPPING, Icon } from '@roninoss/icons';
6 | import { StatusBar } from 'expo-status-bar';
7 | import * as React from 'react';
8 | import {
9 | FlatList,
10 | Platform,
11 | Pressable,
12 | StyleSheet,
13 | Text,
14 | View,
15 | } from 'react-native';
16 |
17 | const data = Object.keys(ICON_MAPPING).map(
18 | (name) => name
19 | ) as (keyof typeof ICON_MAPPING)[];
20 |
21 | export default function Screen() {
22 | const [type, setType] = React.useState('Sf Symbol');
23 | return (
24 |
25 | {
27 | setType(type === 'Sf Symbol' ? 'Material Icon' : 'Sf Symbol');
28 | }}
29 | style={{
30 | paddingTop: 60,
31 | marginBottom: 20,
32 | backgroundColor: '#FFFFFFEE',
33 | zIndex: 100,
34 | }}
35 | >
36 | {type}
37 |
38 | {`Tap to change ${Platform.OS === 'ios' ? 'type' : 'naming scheme'}`}
39 |
40 |
41 | item}
44 | numColumns={4}
45 | data={data}
46 | renderItem={({ item }) => (
47 |
57 |
63 |
64 |
68 | {type === 'Material Icon' ? item : ICON_MAPPING[item].sfSymbol}
69 |
70 |
71 |
72 | )}
73 | style={{
74 | overflow: 'visible',
75 | }}
76 | />
77 |
78 |
79 |
80 | );
81 | }
82 |
83 | const styles = StyleSheet.create({
84 | container: {
85 | flex: 1,
86 | backgroundColor: '#fff',
87 | gap: 12,
88 | },
89 | header: {
90 | fontWeight: 'bold',
91 |
92 | fontSize: 36,
93 | marginTop: 20,
94 | textAlign: 'center',
95 | },
96 | });
97 |
--------------------------------------------------------------------------------
/apps/example/ios/example/AppDelegate.mm:
--------------------------------------------------------------------------------
1 | #import "AppDelegate.h"
2 |
3 | #import
4 | #import
5 |
6 | @implementation AppDelegate
7 |
8 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
9 | {
10 | self.moduleName = @"main";
11 |
12 | // You can add your custom initial props in the dictionary below.
13 | // They will be passed down to the ViewController used by React Native.
14 | self.initialProps = @{};
15 |
16 | return [super application:application didFinishLaunchingWithOptions:launchOptions];
17 | }
18 |
19 | - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
20 | {
21 | #if DEBUG
22 | return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@".expo/.virtual-metro-entry"];
23 | #else
24 | return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
25 | #endif
26 | }
27 |
28 | // Linking API
29 | - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary *)options {
30 | return [super application:application openURL:url options:options] || [RCTLinkingManager application:application openURL:url options:options];
31 | }
32 |
33 | // Universal Links
34 | - (BOOL)application:(UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray> * _Nullable))restorationHandler {
35 | BOOL result = [RCTLinkingManager application:application continueUserActivity:userActivity restorationHandler:restorationHandler];
36 | return [super application:application continueUserActivity:userActivity restorationHandler:restorationHandler] || result;
37 | }
38 |
39 | // Explicitly define remote notification delegates to ensure compatibility with some third-party libraries
40 | - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
41 | {
42 | return [super application:application didRegisterForRemoteNotificationsWithDeviceToken:deviceToken];
43 | }
44 |
45 | // Explicitly define remote notification delegates to ensure compatibility with some third-party libraries
46 | - (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
47 | {
48 | return [super application:application didFailToRegisterForRemoteNotificationsWithError:error];
49 | }
50 |
51 | // Explicitly define remote notification delegates to ensure compatibility with some third-party libraries
52 | - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
53 | {
54 | return [super application:application didReceiveRemoteNotification:userInfo fetchCompletionHandler:completionHandler];
55 | }
56 |
57 | @end
58 |
--------------------------------------------------------------------------------
/apps/example/ios/example/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CADisableMinimumFrameDurationOnPhone
6 |
7 | CFBundleDevelopmentRegion
8 | $(DEVELOPMENT_LANGUAGE)
9 | CFBundleDisplayName
10 | example
11 | CFBundleExecutable
12 | $(EXECUTABLE_NAME)
13 | CFBundleIdentifier
14 | $(PRODUCT_BUNDLE_IDENTIFIER)
15 | CFBundleInfoDictionaryVersion
16 | 6.0
17 | CFBundleName
18 | $(PRODUCT_NAME)
19 | CFBundlePackageType
20 | $(PRODUCT_BUNDLE_PACKAGE_TYPE)
21 | CFBundleShortVersionString
22 | 1.0.0
23 | CFBundleSignature
24 | ????
25 | CFBundleURLTypes
26 |
27 |
28 | CFBundleURLSchemes
29 |
30 | com.roninoss.icons
31 |
32 |
33 |
34 | CFBundleURLSchemes
35 |
36 | exp+example
37 |
38 |
39 |
40 | CFBundleVersion
41 | 1
42 | LSRequiresIPhoneOS
43 |
44 | NSAppTransportSecurity
45 |
46 | NSAllowsArbitraryLoads
47 |
48 | NSExceptionDomains
49 |
50 | localhost
51 |
52 | NSExceptionAllowsInsecureHTTPLoads
53 |
54 |
55 |
56 |
57 | UILaunchStoryboardName
58 | SplashScreen
59 | UIRequiredDeviceCapabilities
60 |
61 | armv7
62 |
63 | UIRequiresFullScreen
64 |
65 | UIStatusBarStyle
66 | UIStatusBarStyleDefault
67 | UISupportedInterfaceOrientations
68 |
69 | UIInterfaceOrientationPortrait
70 | UIInterfaceOrientationPortraitUpsideDown
71 |
72 | UISupportedInterfaceOrientations~ipad
73 |
74 | UIInterfaceOrientationPortrait
75 | UIInterfaceOrientationPortraitUpsideDown
76 | UIInterfaceOrientationLandscapeLeft
77 | UIInterfaceOrientationLandscapeRight
78 |
79 | UIUserInterfaceStyle
80 | Light
81 | UIViewControllerBasedStatusBarAppearance
82 |
83 |
84 |
--------------------------------------------------------------------------------
/apps/example/android/app/src/main/java/com/roninoss/icons/MainApplication.java:
--------------------------------------------------------------------------------
1 | package com.roninoss.icons;
2 |
3 | import android.app.Application;
4 | import android.content.res.Configuration;
5 | import androidx.annotation.NonNull;
6 |
7 | import com.facebook.react.PackageList;
8 | import com.facebook.react.ReactApplication;
9 | import com.facebook.react.ReactNativeHost;
10 | import com.facebook.react.ReactPackage;
11 | import com.facebook.react.config.ReactFeatureFlags;
12 | import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint;
13 | import com.facebook.react.defaults.DefaultReactNativeHost;
14 | import com.facebook.soloader.SoLoader;
15 |
16 | import expo.modules.ApplicationLifecycleDispatcher;
17 | import expo.modules.ReactNativeHostWrapper;
18 |
19 | import java.util.List;
20 |
21 | public class MainApplication extends Application implements ReactApplication {
22 |
23 | private final ReactNativeHost mReactNativeHost =
24 | new ReactNativeHostWrapper(this, new DefaultReactNativeHost(this) {
25 | @Override
26 | public boolean getUseDeveloperSupport() {
27 | return BuildConfig.DEBUG;
28 | }
29 |
30 | @Override
31 | protected List getPackages() {
32 | @SuppressWarnings("UnnecessaryLocalVariable")
33 | List packages = new PackageList(this).getPackages();
34 | // Packages that cannot be autolinked yet can be added manually here, for example:
35 | // packages.add(new MyReactNativePackage());
36 | return packages;
37 | }
38 |
39 | @Override
40 | protected String getJSMainModuleName() {
41 | return ".expo/.virtual-metro-entry";
42 | }
43 |
44 | @Override
45 | protected boolean isNewArchEnabled() {
46 | return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;
47 | }
48 |
49 | @Override
50 | protected Boolean isHermesEnabled() {
51 | return BuildConfig.IS_HERMES_ENABLED;
52 | }
53 | });
54 |
55 | @Override
56 | public ReactNativeHost getReactNativeHost() {
57 | return mReactNativeHost;
58 | }
59 |
60 | @Override
61 | public void onCreate() {
62 | super.onCreate();
63 | SoLoader.init(this, /* native exopackage */ false);
64 | if (!BuildConfig.REACT_NATIVE_UNSTABLE_USE_RUNTIME_SCHEDULER_ALWAYS) {
65 | ReactFeatureFlags.unstable_useRuntimeSchedulerAlways = false;
66 | }
67 | if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {
68 | // If you opted-in for the New Architecture, we load the native entry point for this app.
69 | DefaultNewArchitectureEntryPoint.load();
70 | }
71 | if (BuildConfig.DEBUG) {
72 | ReactNativeFlipper.initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
73 | }
74 | ApplicationLifecycleDispatcher.onApplicationCreate(this);
75 | }
76 |
77 | @Override
78 | public void onConfigurationChanged(@NonNull Configuration newConfig) {
79 | super.onConfigurationChanged(newConfig);
80 | ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig);
81 | }
82 | }
83 |
--------------------------------------------------------------------------------
/apps/example/android/gradlew.bat:
--------------------------------------------------------------------------------
1 | @rem
2 | @rem Copyright 2015 the original author or authors.
3 | @rem
4 | @rem Licensed under the Apache License, Version 2.0 (the "License");
5 | @rem you may not use this file except in compliance with the License.
6 | @rem You may obtain a copy of the License at
7 | @rem
8 | @rem https://www.apache.org/licenses/LICENSE-2.0
9 | @rem
10 | @rem Unless required by applicable law or agreed to in writing, software
11 | @rem distributed under the License is distributed on an "AS IS" BASIS,
12 | @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | @rem See the License for the specific language governing permissions and
14 | @rem limitations under the License.
15 | @rem
16 |
17 | @if "%DEBUG%"=="" @echo off
18 | @rem ##########################################################################
19 | @rem
20 | @rem Gradle startup script for Windows
21 | @rem
22 | @rem ##########################################################################
23 |
24 | @rem Set local scope for the variables with windows NT shell
25 | if "%OS%"=="Windows_NT" setlocal
26 |
27 | set DIRNAME=%~dp0
28 | if "%DIRNAME%"=="" set DIRNAME=.
29 | set APP_BASE_NAME=%~n0
30 | set APP_HOME=%DIRNAME%
31 |
32 | @rem Resolve any "." and ".." in APP_HOME to make it shorter.
33 | for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
34 |
35 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
36 | set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
37 |
38 | @rem Find java.exe
39 | if defined JAVA_HOME goto findJavaFromJavaHome
40 |
41 | set JAVA_EXE=java.exe
42 | %JAVA_EXE% -version >NUL 2>&1
43 | if %ERRORLEVEL% equ 0 goto execute
44 |
45 | echo.
46 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
47 | echo.
48 | echo Please set the JAVA_HOME variable in your environment to match the
49 | echo location of your Java installation.
50 |
51 | goto fail
52 |
53 | :findJavaFromJavaHome
54 | set JAVA_HOME=%JAVA_HOME:"=%
55 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
56 |
57 | if exist "%JAVA_EXE%" goto execute
58 |
59 | echo.
60 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
61 | echo.
62 | echo Please set the JAVA_HOME variable in your environment to match the
63 | echo location of your Java installation.
64 |
65 | goto fail
66 |
67 | :execute
68 | @rem Setup the command line
69 |
70 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
71 |
72 |
73 | @rem Execute Gradle
74 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
75 |
76 | :end
77 | @rem End local scope for the variables with windows NT shell
78 | if %ERRORLEVEL% equ 0 goto mainEnd
79 |
80 | :fail
81 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
82 | rem the _cmd.exe /c_ return code!
83 | set EXIT_CODE=%ERRORLEVEL%
84 | if %EXIT_CODE% equ 0 set EXIT_CODE=1
85 | if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
86 | exit /b %EXIT_CODE%
87 |
88 | :mainEnd
89 | if "%OS%"=="Windows_NT" endlocal
90 |
91 | :omega
92 |
--------------------------------------------------------------------------------
/apps/example/ios/example.xcodeproj/xcshareddata/xcschemes/example.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
33 |
39 |
40 |
41 |
42 |
43 |
53 |
55 |
61 |
62 |
63 |
64 |
70 |
72 |
78 |
79 |
80 |
81 |
83 |
84 |
87 |
88 |
89 |
--------------------------------------------------------------------------------
/apps/example/android/app/src/debug/java/com/roninoss/icons/ReactNativeFlipper.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) Meta Platforms, Inc. and affiliates.
3 | *
4 | * This source code is licensed under the MIT license found in the LICENSE file in the root
5 | * directory of this source tree.
6 | */
7 | package com.roninoss.icons;
8 |
9 | import android.content.Context;
10 | import com.facebook.flipper.android.AndroidFlipperClient;
11 | import com.facebook.flipper.android.utils.FlipperUtils;
12 | import com.facebook.flipper.core.FlipperClient;
13 | import com.facebook.flipper.plugins.crashreporter.CrashReporterPlugin;
14 | import com.facebook.flipper.plugins.databases.DatabasesFlipperPlugin;
15 | import com.facebook.flipper.plugins.fresco.FrescoFlipperPlugin;
16 | import com.facebook.flipper.plugins.inspector.DescriptorMapping;
17 | import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin;
18 | import com.facebook.flipper.plugins.network.FlipperOkhttpInterceptor;
19 | import com.facebook.flipper.plugins.network.NetworkFlipperPlugin;
20 | import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin;
21 | import com.facebook.react.ReactInstanceEventListener;
22 | import com.facebook.react.ReactInstanceManager;
23 | import com.facebook.react.bridge.ReactContext;
24 | import com.facebook.react.modules.network.NetworkingModule;
25 | import okhttp3.OkHttpClient;
26 |
27 | /**
28 | * Class responsible of loading Flipper inside your React Native application. This is the debug
29 | * flavor of it. Here you can add your own plugins and customize the Flipper setup.
30 | */
31 | public class ReactNativeFlipper {
32 | public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) {
33 | if (FlipperUtils.shouldEnableFlipper(context)) {
34 | final FlipperClient client = AndroidFlipperClient.getInstance(context);
35 |
36 | client.addPlugin(new InspectorFlipperPlugin(context, DescriptorMapping.withDefaults()));
37 | client.addPlugin(new DatabasesFlipperPlugin(context));
38 | client.addPlugin(new SharedPreferencesFlipperPlugin(context));
39 | client.addPlugin(CrashReporterPlugin.getInstance());
40 |
41 | NetworkFlipperPlugin networkFlipperPlugin = new NetworkFlipperPlugin();
42 | NetworkingModule.setCustomClientBuilder(
43 | new NetworkingModule.CustomClientBuilder() {
44 | @Override
45 | public void apply(OkHttpClient.Builder builder) {
46 | builder.addNetworkInterceptor(new FlipperOkhttpInterceptor(networkFlipperPlugin));
47 | }
48 | });
49 | client.addPlugin(networkFlipperPlugin);
50 | client.start();
51 |
52 | // Fresco Plugin needs to ensure that ImagePipelineFactory is initialized
53 | // Hence we run if after all native modules have been initialized
54 | ReactContext reactContext = reactInstanceManager.getCurrentReactContext();
55 | if (reactContext == null) {
56 | reactInstanceManager.addReactInstanceEventListener(
57 | new ReactInstanceEventListener() {
58 | @Override
59 | public void onReactContextInitialized(ReactContext reactContext) {
60 | reactInstanceManager.removeReactInstanceEventListener(this);
61 | reactContext.runOnNativeModulesQueueThread(
62 | new Runnable() {
63 | @Override
64 | public void run() {
65 | client.addPlugin(new FrescoFlipperPlugin());
66 | }
67 | });
68 | }
69 | });
70 | } else {
71 | client.addPlugin(new FrescoFlipperPlugin());
72 | }
73 | }
74 | }
75 | }
76 |
--------------------------------------------------------------------------------
/apps/example/ios/Podfile:
--------------------------------------------------------------------------------
1 | require File.join(File.dirname(`node --print "require.resolve('expo/package.json')"`), "scripts/autolinking")
2 | require File.join(File.dirname(`node --print "require.resolve('react-native/package.json')"`), "scripts/react_native_pods")
3 |
4 | require 'json'
5 | podfile_properties = JSON.parse(File.read(File.join(__dir__, 'Podfile.properties.json'))) rescue {}
6 |
7 | ENV['RCT_NEW_ARCH_ENABLED'] = podfile_properties['newArchEnabled'] == 'true' ? '1' : '0'
8 | ENV['EX_DEV_CLIENT_NETWORK_INSPECTOR'] = podfile_properties['EX_DEV_CLIENT_NETWORK_INSPECTOR']
9 |
10 | platform :ios, podfile_properties['ios.deploymentTarget'] || '13.0'
11 | install! 'cocoapods',
12 | :deterministic_uuids => false
13 |
14 | prepare_react_native_project!
15 |
16 | # If you are using a `react-native-flipper` your iOS build will fail when `NO_FLIPPER=1` is set.
17 | # because `react-native-flipper` depends on (FlipperKit,...), which will be excluded. To fix this,
18 | # you can also exclude `react-native-flipper` in `react-native.config.js`
19 | #
20 | # ```js
21 | # module.exports = {
22 | # dependencies: {
23 | # ...(process.env.NO_FLIPPER ? { 'react-native-flipper': { platforms: { ios: null } } } : {}),
24 | # }
25 | # }
26 | # ```
27 | flipper_config = FlipperConfiguration.disabled
28 | if ENV['NO_FLIPPER'] == '1' then
29 | # Explicitly disabled through environment variables
30 | flipper_config = FlipperConfiguration.disabled
31 | elsif podfile_properties.key?('ios.flipper') then
32 | # Configure Flipper in Podfile.properties.json
33 | if podfile_properties['ios.flipper'] == 'true' then
34 | flipper_config = FlipperConfiguration.enabled(["Debug", "Release"])
35 | elsif podfile_properties['ios.flipper'] != 'false' then
36 | flipper_config = FlipperConfiguration.enabled(["Debug", "Release"], { 'Flipper' => podfile_properties['ios.flipper'] })
37 | end
38 | end
39 |
40 | target 'example' do
41 | use_expo_modules!
42 | config = use_native_modules!
43 |
44 | use_frameworks! :linkage => podfile_properties['ios.useFrameworks'].to_sym if podfile_properties['ios.useFrameworks']
45 | use_frameworks! :linkage => ENV['USE_FRAMEWORKS'].to_sym if ENV['USE_FRAMEWORKS']
46 |
47 | # Flags change depending on the env values.
48 | flags = get_default_flags()
49 |
50 | use_react_native!(
51 | :path => config[:reactNativePath],
52 | :hermes_enabled => podfile_properties['expo.jsEngine'] == nil || podfile_properties['expo.jsEngine'] == 'hermes',
53 | :fabric_enabled => flags[:fabric_enabled],
54 | # An absolute path to your application root.
55 | :app_path => "#{Pod::Config.instance.installation_root}/..",
56 | # Note that if you have use_frameworks! enabled, Flipper will not work if enabled
57 | :flipper_configuration => flipper_config
58 | )
59 |
60 | post_install do |installer|
61 | react_native_post_install(
62 | installer,
63 | config[:reactNativePath],
64 | :mac_catalyst_enabled => false
65 | )
66 | __apply_Xcode_12_5_M1_post_install_workaround(installer)
67 |
68 | # This is necessary for Xcode 14, because it signs resource bundles by default
69 | # when building for devices.
70 | installer.target_installation_results.pod_target_installation_results
71 | .each do |pod_name, target_installation_result|
72 | target_installation_result.resource_bundle_targets.each do |resource_bundle_target|
73 | resource_bundle_target.build_configurations.each do |config|
74 | config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO'
75 | end
76 | end
77 | end
78 | end
79 |
80 | post_integrate do |installer|
81 | begin
82 | expo_patch_react_imports!(installer)
83 | rescue => e
84 | Pod::UI.warn e
85 | end
86 | end
87 | end
88 |
--------------------------------------------------------------------------------
/apps/example/ios/example/SplashScreen.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/apps/example/android/app/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: "com.android.application"
2 | apply plugin: "com.facebook.react"
3 |
4 | def projectRoot = rootDir.getAbsoluteFile().getParentFile().getAbsolutePath()
5 |
6 | /**
7 | * This is the configuration block to customize your React Native Android app.
8 | * By default you don't need to apply any configuration, just uncomment the lines you need.
9 | */
10 | react {
11 | entryFile = file(["node", "-e", "require('expo/scripts/resolveAppEntry')", projectRoot, "android", "absolute"].execute(null, rootDir).text.trim())
12 | reactNativeDir = new File(["node", "--print", "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim()).getParentFile().getAbsoluteFile()
13 | hermesCommand = new File(["node", "--print", "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath() + "/sdks/hermesc/%OS-BIN%/hermesc"
14 | codegenDir = new File(["node", "--print", "require.resolve('@react-native/codegen/package.json')"].execute(null, rootDir).text.trim()).getParentFile().getAbsoluteFile()
15 |
16 | // Use Expo CLI to bundle the app, this ensures the Metro config
17 | // works correctly with Expo projects.
18 | cliFile = new File(["node", "--print", "require.resolve('@expo/cli')"].execute(null, rootDir).text.trim())
19 | bundleCommand = "export:embed"
20 |
21 | /* Folders */
22 | // The root of your project, i.e. where "package.json" lives. Default is '..'
23 | // root = file("../")
24 | // The folder where the react-native NPM package is. Default is ../node_modules/react-native
25 | // reactNativeDir = file("../node_modules/react-native")
26 | // The folder where the react-native Codegen package is. Default is ../node_modules/@react-native/codegen
27 | // codegenDir = file("../node_modules/@react-native/codegen")
28 |
29 | /* Variants */
30 | // The list of variants to that are debuggable. For those we're going to
31 | // skip the bundling of the JS bundle and the assets. By default is just 'debug'.
32 | // If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants.
33 | // debuggableVariants = ["liteDebug", "prodDebug"]
34 |
35 | /* Bundling */
36 | // A list containing the node command and its flags. Default is just 'node'.
37 | // nodeExecutableAndArgs = ["node"]
38 |
39 | //
40 | // The path to the CLI configuration file. Default is empty.
41 | // bundleConfig = file(../rn-cli.config.js)
42 | //
43 | // The name of the generated asset file containing your JS bundle
44 | // bundleAssetName = "MyApplication.android.bundle"
45 | //
46 | // The entry file for bundle generation. Default is 'index.android.js' or 'index.js'
47 | // entryFile = file("../js/MyApplication.android.js")
48 | //
49 | // A list of extra flags to pass to the 'bundle' commands.
50 | // See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle
51 | // extraPackagerArgs = []
52 |
53 | /* Hermes Commands */
54 | // The hermes compiler command to run. By default it is 'hermesc'
55 | // hermesCommand = "$rootDir/my-custom-hermesc/bin/hermesc"
56 | //
57 | // The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map"
58 | // hermesFlags = ["-O", "-output-source-map"]
59 | }
60 |
61 | /**
62 | * Set this to true to Run Proguard on Release builds to minify the Java bytecode.
63 | */
64 | def enableProguardInReleaseBuilds = (findProperty('android.enableProguardInReleaseBuilds') ?: false).toBoolean()
65 |
66 | /**
67 | * The preferred build flavor of JavaScriptCore (JSC)
68 | *
69 | * For example, to use the international variant, you can use:
70 | * `def jscFlavor = 'org.webkit:android-jsc-intl:+'`
71 | *
72 | * The international variant includes ICU i18n library and necessary data
73 | * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that
74 | * give correct results when using with locales other than en-US. Note that
75 | * this variant is about 6MiB larger per architecture than default.
76 | */
77 | def jscFlavor = 'org.webkit:android-jsc:+'
78 |
79 | android {
80 | ndkVersion rootProject.ext.ndkVersion
81 |
82 | compileSdkVersion rootProject.ext.compileSdkVersion
83 |
84 | namespace 'com.roninoss.icons'
85 | defaultConfig {
86 | applicationId 'com.roninoss.icons'
87 | minSdkVersion rootProject.ext.minSdkVersion
88 | targetSdkVersion rootProject.ext.targetSdkVersion
89 | versionCode 1
90 | versionName "1.0.0"
91 |
92 | buildConfigField("boolean", "REACT_NATIVE_UNSTABLE_USE_RUNTIME_SCHEDULER_ALWAYS", (findProperty("reactNative.unstable_useRuntimeSchedulerAlways") ?: true).toString())
93 | }
94 | signingConfigs {
95 | debug {
96 | storeFile file('debug.keystore')
97 | storePassword 'android'
98 | keyAlias 'androiddebugkey'
99 | keyPassword 'android'
100 | }
101 | }
102 | buildTypes {
103 | debug {
104 | signingConfig signingConfigs.debug
105 | }
106 | release {
107 | // Caution! In production, you need to generate your own keystore file.
108 | // see https://reactnative.dev/docs/signed-apk-android.
109 | signingConfig signingConfigs.debug
110 | shrinkResources (findProperty('android.enableShrinkResourcesInReleaseBuilds')?.toBoolean() ?: false)
111 | minifyEnabled enableProguardInReleaseBuilds
112 | proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
113 | }
114 | }
115 | }
116 |
117 | // Apply static values from `gradle.properties` to the `android.packagingOptions`
118 | // Accepts values in comma delimited lists, example:
119 | // android.packagingOptions.pickFirsts=/LICENSE,**/picasa.ini
120 | ["pickFirsts", "excludes", "merges", "doNotStrip"].each { prop ->
121 | // Split option: 'foo,bar' -> ['foo', 'bar']
122 | def options = (findProperty("android.packagingOptions.$prop") ?: "").split(",");
123 | // Trim all elements in place.
124 | for (i in 0.. 0) {
129 | println "android.packagingOptions.$prop += $options ($options.length)"
130 | // Ex: android.packagingOptions.pickFirsts += '**/SCCS/**'
131 | options.each {
132 | android.packagingOptions[prop] += it
133 | }
134 | }
135 | }
136 |
137 | dependencies {
138 | // The version of react-native is set by the React Native Gradle Plugin
139 | implementation("com.facebook.react:react-android")
140 |
141 | def isGifEnabled = (findProperty('expo.gif.enabled') ?: "") == "true";
142 | def isWebpEnabled = (findProperty('expo.webp.enabled') ?: "") == "true";
143 | def isWebpAnimatedEnabled = (findProperty('expo.webp.animated') ?: "") == "true";
144 | def frescoVersion = rootProject.ext.frescoVersion
145 |
146 | // If your app supports Android versions before Ice Cream Sandwich (API level 14)
147 | if (isGifEnabled || isWebpEnabled) {
148 | implementation("com.facebook.fresco:fresco:${frescoVersion}")
149 | implementation("com.facebook.fresco:imagepipeline-okhttp3:${frescoVersion}")
150 | }
151 |
152 | if (isGifEnabled) {
153 | // For animated gif support
154 | implementation("com.facebook.fresco:animated-gif:${frescoVersion}")
155 | }
156 |
157 | if (isWebpEnabled) {
158 | // For webp support
159 | implementation("com.facebook.fresco:webpsupport:${frescoVersion}")
160 | if (isWebpAnimatedEnabled) {
161 | // Animated webp support
162 | implementation("com.facebook.fresco:animated-webp:${frescoVersion}")
163 | }
164 | }
165 |
166 | debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}")
167 | debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {
168 | exclude group:'com.squareup.okhttp3', module:'okhttp'
169 | }
170 | debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}")
171 |
172 | if (hermesEnabled.toBoolean()) {
173 | implementation("com.facebook.react:hermes-android")
174 | } else {
175 | implementation jscFlavor
176 | }
177 | }
178 |
179 | apply from: new File(["node", "--print", "require.resolve('@react-native-community/cli-platform-android/package.json')"].execute(null, rootDir).text.trim(), "../native_modules.gradle");
180 | applyNativeModulesAppBuildGradle(project)
181 |
--------------------------------------------------------------------------------
/apps/example/android/gradlew:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | #
4 | # Copyright © 2015-2021 the original authors.
5 | #
6 | # Licensed under the Apache License, Version 2.0 (the "License");
7 | # you may not use this file except in compliance with the License.
8 | # You may obtain a copy of the License at
9 | #
10 | # https://www.apache.org/licenses/LICENSE-2.0
11 | #
12 | # Unless required by applicable law or agreed to in writing, software
13 | # distributed under the License is distributed on an "AS IS" BASIS,
14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | # See the License for the specific language governing permissions and
16 | # limitations under the License.
17 | #
18 |
19 | ##############################################################################
20 | #
21 | # Gradle start up script for POSIX generated by Gradle.
22 | #
23 | # Important for running:
24 | #
25 | # (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
26 | # noncompliant, but you have some other compliant shell such as ksh or
27 | # bash, then to run this script, type that shell name before the whole
28 | # command line, like:
29 | #
30 | # ksh Gradle
31 | #
32 | # Busybox and similar reduced shells will NOT work, because this script
33 | # requires all of these POSIX shell features:
34 | # * functions;
35 | # * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
36 | # «${var#prefix}», «${var%suffix}», and «$( cmd )»;
37 | # * compound commands having a testable exit status, especially «case»;
38 | # * various built-in commands including «command», «set», and «ulimit».
39 | #
40 | # Important for patching:
41 | #
42 | # (2) This script targets any POSIX shell, so it avoids extensions provided
43 | # by Bash, Ksh, etc; in particular arrays are avoided.
44 | #
45 | # The "traditional" practice of packing multiple parameters into a
46 | # space-separated string is a well documented source of bugs and security
47 | # problems, so this is (mostly) avoided, by progressively accumulating
48 | # options in "$@", and eventually passing that to Java.
49 | #
50 | # Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
51 | # and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
52 | # see the in-line comments for details.
53 | #
54 | # There are tweaks for specific operating systems such as AIX, CygWin,
55 | # Darwin, MinGW, and NonStop.
56 | #
57 | # (3) This script is generated from the Groovy template
58 | # https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
59 | # within the Gradle project.
60 | #
61 | # You can find Gradle at https://github.com/gradle/gradle/.
62 | #
63 | ##############################################################################
64 |
65 | # Attempt to set APP_HOME
66 |
67 | # Resolve links: $0 may be a link
68 | app_path=$0
69 |
70 | # Need this for daisy-chained symlinks.
71 | while
72 | APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
73 | [ -h "$app_path" ]
74 | do
75 | ls=$( ls -ld "$app_path" )
76 | link=${ls#*' -> '}
77 | case $link in #(
78 | /*) app_path=$link ;; #(
79 | *) app_path=$APP_HOME$link ;;
80 | esac
81 | done
82 |
83 | APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
84 |
85 | APP_NAME="Gradle"
86 | APP_BASE_NAME=${0##*/}
87 |
88 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
89 | DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
90 |
91 | # Use the maximum available, or set MAX_FD != -1 to use that value.
92 | MAX_FD=maximum
93 |
94 | warn () {
95 | echo "$*"
96 | } >&2
97 |
98 | die () {
99 | echo
100 | echo "$*"
101 | echo
102 | exit 1
103 | } >&2
104 |
105 | # OS specific support (must be 'true' or 'false').
106 | cygwin=false
107 | msys=false
108 | darwin=false
109 | nonstop=false
110 | case "$( uname )" in #(
111 | CYGWIN* ) cygwin=true ;; #(
112 | Darwin* ) darwin=true ;; #(
113 | MSYS* | MINGW* ) msys=true ;; #(
114 | NONSTOP* ) nonstop=true ;;
115 | esac
116 |
117 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
118 |
119 |
120 | # Determine the Java command to use to start the JVM.
121 | if [ -n "$JAVA_HOME" ] ; then
122 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
123 | # IBM's JDK on AIX uses strange locations for the executables
124 | JAVACMD=$JAVA_HOME/jre/sh/java
125 | else
126 | JAVACMD=$JAVA_HOME/bin/java
127 | fi
128 | if [ ! -x "$JAVACMD" ] ; then
129 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
130 |
131 | Please set the JAVA_HOME variable in your environment to match the
132 | location of your Java installation."
133 | fi
134 | else
135 | JAVACMD=java
136 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
137 |
138 | Please set the JAVA_HOME variable in your environment to match the
139 | location of your Java installation."
140 | fi
141 |
142 | # Increase the maximum file descriptors if we can.
143 | if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
144 | case $MAX_FD in #(
145 | max*)
146 | MAX_FD=$( ulimit -H -n ) ||
147 | warn "Could not query maximum file descriptor limit"
148 | esac
149 | case $MAX_FD in #(
150 | '' | soft) :;; #(
151 | *)
152 | ulimit -n "$MAX_FD" ||
153 | warn "Could not set maximum file descriptor limit to $MAX_FD"
154 | esac
155 | fi
156 |
157 | # Collect all arguments for the java command, stacking in reverse order:
158 | # * args from the command line
159 | # * the main class name
160 | # * -classpath
161 | # * -D...appname settings
162 | # * --module-path (only if needed)
163 | # * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
164 |
165 | # For Cygwin or MSYS, switch paths to Windows format before running java
166 | if "$cygwin" || "$msys" ; then
167 | APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
168 | CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
169 |
170 | JAVACMD=$( cygpath --unix "$JAVACMD" )
171 |
172 | # Now convert the arguments - kludge to limit ourselves to /bin/sh
173 | for arg do
174 | if
175 | case $arg in #(
176 | -*) false ;; # don't mess with options #(
177 | /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
178 | [ -e "$t" ] ;; #(
179 | *) false ;;
180 | esac
181 | then
182 | arg=$( cygpath --path --ignore --mixed "$arg" )
183 | fi
184 | # Roll the args list around exactly as many times as the number of
185 | # args, so each arg winds up back in the position where it started, but
186 | # possibly modified.
187 | #
188 | # NB: a `for` loop captures its iteration list before it begins, so
189 | # changing the positional parameters here affects neither the number of
190 | # iterations, nor the values presented in `arg`.
191 | shift # remove old arg
192 | set -- "$@" "$arg" # push replacement arg
193 | done
194 | fi
195 |
196 | # Collect all arguments for the java command;
197 | # * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
198 | # shell script including quotes and variable substitutions, so put them in
199 | # double quotes to make sure that they get re-expanded; and
200 | # * put everything else in single quotes, so that it's not re-expanded.
201 |
202 | set -- \
203 | "-Dorg.gradle.appname=$APP_BASE_NAME" \
204 | -classpath "$CLASSPATH" \
205 | org.gradle.wrapper.GradleWrapperMain \
206 | "$@"
207 |
208 | # Stop when "xargs" is not available.
209 | if ! command -v xargs >/dev/null 2>&1
210 | then
211 | die "xargs is not available"
212 | fi
213 |
214 | # Use "xargs" to parse quoted args.
215 | #
216 | # With -n1 it outputs one arg per line, with the quotes and backslashes removed.
217 | #
218 | # In Bash we could simply go:
219 | #
220 | # readarray ARGS < <( xargs -n1 <<<"$var" ) &&
221 | # set -- "${ARGS[@]}" "$@"
222 | #
223 | # but POSIX shell has neither arrays nor command substitution, so instead we
224 | # post-process each arg (as a line of input to sed) to backslash-escape any
225 | # character that might be a shell metacharacter, then use eval to reverse
226 | # that process (while maintaining the separation between arguments), and wrap
227 | # the whole thing up as a single "set" statement.
228 | #
229 | # This will of course break if any of these variables contains a newline or
230 | # an unmatched quote.
231 | #
232 |
233 | eval "set -- $(
234 | printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
235 | xargs -n1 |
236 | sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
237 | tr '\n' ' '
238 | )" '"$@"'
239 |
240 | exec "$JAVACMD" "$@"
241 |
--------------------------------------------------------------------------------
/apps/example/ios/example.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 46;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; };
11 | 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
12 | 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
13 | 14A5021F1FE44EE4842A077B /* noop-file.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2E48961349C4947A464833D /* noop-file.swift */; };
14 | 3E461D99554A48A4959DE609 /* SplashScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */; };
15 | 96905EF65AED1B983A6B3ABC /* libPods-example.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 58EEBF8E8E6FB1BC6CAF49B5 /* libPods-example.a */; };
16 | B18059E884C0ABDD17F3DC3D /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */; };
17 | BB2F792D24A3F905000567C9 /* Expo.plist in Resources */ = {isa = PBXBuildFile; fileRef = BB2F792C24A3F905000567C9 /* Expo.plist */; };
18 | /* End PBXBuildFile section */
19 |
20 | /* Begin PBXFileReference section */
21 | 13B07F961A680F5B00A75B9A /* example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = example.app; sourceTree = BUILT_PRODUCTS_DIR; };
22 | 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = example/AppDelegate.h; sourceTree = ""; };
23 | 13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = example/AppDelegate.mm; sourceTree = ""; };
24 | 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = example/Images.xcassets; sourceTree = ""; };
25 | 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = example/Info.plist; sourceTree = ""; };
26 | 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = example/main.m; sourceTree = ""; };
27 | 58EEBF8E8E6FB1BC6CAF49B5 /* libPods-example.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-example.a"; sourceTree = BUILT_PRODUCTS_DIR; };
28 | 6C2E3173556A471DD304B334 /* Pods-example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-example.debug.xcconfig"; path = "Target Support Files/Pods-example/Pods-example.debug.xcconfig"; sourceTree = ""; };
29 | 7A4D352CD337FB3A3BF06240 /* Pods-example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-example.release.xcconfig"; path = "Target Support Files/Pods-example/Pods-example.release.xcconfig"; sourceTree = ""; };
30 | AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = SplashScreen.storyboard; path = example/SplashScreen.storyboard; sourceTree = ""; };
31 | BB2F792C24A3F905000567C9 /* Expo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Expo.plist; sourceTree = ""; };
32 | C2E48961349C4947A464833D /* noop-file.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = "noop-file.swift"; path = "example/noop-file.swift"; sourceTree = ""; };
33 | CDB97DB88CD447DFB05FE06D /* example-Bridging-Header.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = "example-Bridging-Header.h"; path = "example/example-Bridging-Header.h"; sourceTree = ""; };
34 | ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
35 | FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-example/ExpoModulesProvider.swift"; sourceTree = ""; };
36 | /* End PBXFileReference section */
37 |
38 | /* Begin PBXFrameworksBuildPhase section */
39 | 13B07F8C1A680F5B00A75B9A /* Frameworks */ = {
40 | isa = PBXFrameworksBuildPhase;
41 | buildActionMask = 2147483647;
42 | files = (
43 | 96905EF65AED1B983A6B3ABC /* libPods-example.a in Frameworks */,
44 | );
45 | runOnlyForDeploymentPostprocessing = 0;
46 | };
47 | /* End PBXFrameworksBuildPhase section */
48 |
49 | /* Begin PBXGroup section */
50 | 13B07FAE1A68108700A75B9A /* example */ = {
51 | isa = PBXGroup;
52 | children = (
53 | BB2F792B24A3F905000567C9 /* Supporting */,
54 | 13B07FAF1A68108700A75B9A /* AppDelegate.h */,
55 | 13B07FB01A68108700A75B9A /* AppDelegate.mm */,
56 | 13B07FB51A68108700A75B9A /* Images.xcassets */,
57 | 13B07FB61A68108700A75B9A /* Info.plist */,
58 | 13B07FB71A68108700A75B9A /* main.m */,
59 | AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */,
60 | C2E48961349C4947A464833D /* noop-file.swift */,
61 | CDB97DB88CD447DFB05FE06D /* example-Bridging-Header.h */,
62 | );
63 | name = example;
64 | sourceTree = "";
65 | };
66 | 2D16E6871FA4F8E400B85C8A /* Frameworks */ = {
67 | isa = PBXGroup;
68 | children = (
69 | ED297162215061F000B7C4FE /* JavaScriptCore.framework */,
70 | 58EEBF8E8E6FB1BC6CAF49B5 /* libPods-example.a */,
71 | );
72 | name = Frameworks;
73 | sourceTree = "";
74 | };
75 | 832341AE1AAA6A7D00B99B32 /* Libraries */ = {
76 | isa = PBXGroup;
77 | children = (
78 | );
79 | name = Libraries;
80 | sourceTree = "";
81 | };
82 | 83CBB9F61A601CBA00E9B192 = {
83 | isa = PBXGroup;
84 | children = (
85 | 13B07FAE1A68108700A75B9A /* example */,
86 | 832341AE1AAA6A7D00B99B32 /* Libraries */,
87 | 83CBBA001A601CBA00E9B192 /* Products */,
88 | 2D16E6871FA4F8E400B85C8A /* Frameworks */,
89 | D65327D7A22EEC0BE12398D9 /* Pods */,
90 | D7E4C46ADA2E9064B798F356 /* ExpoModulesProviders */,
91 | );
92 | indentWidth = 2;
93 | sourceTree = "";
94 | tabWidth = 2;
95 | usesTabs = 0;
96 | };
97 | 83CBBA001A601CBA00E9B192 /* Products */ = {
98 | isa = PBXGroup;
99 | children = (
100 | 13B07F961A680F5B00A75B9A /* example.app */,
101 | );
102 | name = Products;
103 | sourceTree = "";
104 | };
105 | 92DBD88DE9BF7D494EA9DA96 /* example */ = {
106 | isa = PBXGroup;
107 | children = (
108 | FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */,
109 | );
110 | name = example;
111 | sourceTree = "";
112 | };
113 | BB2F792B24A3F905000567C9 /* Supporting */ = {
114 | isa = PBXGroup;
115 | children = (
116 | BB2F792C24A3F905000567C9 /* Expo.plist */,
117 | );
118 | name = Supporting;
119 | path = example/Supporting;
120 | sourceTree = "";
121 | };
122 | D65327D7A22EEC0BE12398D9 /* Pods */ = {
123 | isa = PBXGroup;
124 | children = (
125 | 6C2E3173556A471DD304B334 /* Pods-example.debug.xcconfig */,
126 | 7A4D352CD337FB3A3BF06240 /* Pods-example.release.xcconfig */,
127 | );
128 | path = Pods;
129 | sourceTree = "";
130 | };
131 | D7E4C46ADA2E9064B798F356 /* ExpoModulesProviders */ = {
132 | isa = PBXGroup;
133 | children = (
134 | 92DBD88DE9BF7D494EA9DA96 /* example */,
135 | );
136 | name = ExpoModulesProviders;
137 | sourceTree = "";
138 | };
139 | /* End PBXGroup section */
140 |
141 | /* Begin PBXNativeTarget section */
142 | 13B07F861A680F5B00A75B9A /* example */ = {
143 | isa = PBXNativeTarget;
144 | buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "example" */;
145 | buildPhases = (
146 | 08A4A3CD28434E44B6B9DE2E /* [CP] Check Pods Manifest.lock */,
147 | FD10A7F022414F080027D42C /* Start Packager */,
148 | 1541F9ECD1A563DCBC7084AE /* [Expo] Configure project */,
149 | 13B07F871A680F5B00A75B9A /* Sources */,
150 | 13B07F8C1A680F5B00A75B9A /* Frameworks */,
151 | 13B07F8E1A680F5B00A75B9A /* Resources */,
152 | 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */,
153 | 800E24972A6A228C8D4807E9 /* [CP] Copy Pods Resources */,
154 | B4937E33A420CDAAE8DF9418 /* [CP] Embed Pods Frameworks */,
155 | );
156 | buildRules = (
157 | );
158 | dependencies = (
159 | );
160 | name = example;
161 | productName = example;
162 | productReference = 13B07F961A680F5B00A75B9A /* example.app */;
163 | productType = "com.apple.product-type.application";
164 | };
165 | /* End PBXNativeTarget section */
166 |
167 | /* Begin PBXProject section */
168 | 83CBB9F71A601CBA00E9B192 /* Project object */ = {
169 | isa = PBXProject;
170 | attributes = {
171 | LastUpgradeCheck = 1130;
172 | TargetAttributes = {
173 | 13B07F861A680F5B00A75B9A = {
174 | LastSwiftMigration = 1250;
175 | };
176 | };
177 | };
178 | buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "example" */;
179 | compatibilityVersion = "Xcode 3.2";
180 | developmentRegion = en;
181 | hasScannedForEncodings = 0;
182 | knownRegions = (
183 | en,
184 | Base,
185 | );
186 | mainGroup = 83CBB9F61A601CBA00E9B192;
187 | productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */;
188 | projectDirPath = "";
189 | projectRoot = "";
190 | targets = (
191 | 13B07F861A680F5B00A75B9A /* example */,
192 | );
193 | };
194 | /* End PBXProject section */
195 |
196 | /* Begin PBXResourcesBuildPhase section */
197 | 13B07F8E1A680F5B00A75B9A /* Resources */ = {
198 | isa = PBXResourcesBuildPhase;
199 | buildActionMask = 2147483647;
200 | files = (
201 | BB2F792D24A3F905000567C9 /* Expo.plist in Resources */,
202 | 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */,
203 | 3E461D99554A48A4959DE609 /* SplashScreen.storyboard in Resources */,
204 | );
205 | runOnlyForDeploymentPostprocessing = 0;
206 | };
207 | /* End PBXResourcesBuildPhase section */
208 |
209 | /* Begin PBXShellScriptBuildPhase section */
210 | 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = {
211 | isa = PBXShellScriptBuildPhase;
212 | buildActionMask = 2147483647;
213 | files = (
214 | );
215 | inputPaths = (
216 | );
217 | name = "Bundle React Native code and images";
218 | outputPaths = (
219 | );
220 | runOnlyForDeploymentPostprocessing = 0;
221 | shellPath = /bin/sh;
222 | shellScript = "if [[ -f \"$PODS_ROOT/../.xcode.env\" ]]; then\n source \"$PODS_ROOT/../.xcode.env\"\nfi\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\n# The project root by default is one level up from the ios directory\nexport PROJECT_ROOT=\"$PROJECT_DIR\"/..\n\nif [[ \"$CONFIGURATION\" = *Debug* ]]; then\n export SKIP_BUNDLING=1\nfi\nif [[ -z \"$ENTRY_FILE\" ]]; then\n # Set the entry JS file using the bundler's entry resolution.\n export ENTRY_FILE=\"$(\"$NODE_BINARY\" -e \"require('expo/scripts/resolveAppEntry')\" \"$PROJECT_ROOT\" ios relative | tail -n 1)\"\nfi\n\nif [[ -z \"$CLI_PATH\" ]]; then\n # Use Expo CLI\n export CLI_PATH=\"$(\"$NODE_BINARY\" --print \"require.resolve('@expo/cli')\")\"\nfi\nif [[ -z \"$BUNDLE_COMMAND\" ]]; then\n # Default Expo CLI command for bundling\n export BUNDLE_COMMAND=\"export:embed\"\nfi\n\n`\"$NODE_BINARY\" --print \"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/react-native-xcode.sh'\"`\n\n";
223 | };
224 | 08A4A3CD28434E44B6B9DE2E /* [CP] Check Pods Manifest.lock */ = {
225 | isa = PBXShellScriptBuildPhase;
226 | buildActionMask = 2147483647;
227 | files = (
228 | );
229 | inputFileListPaths = (
230 | );
231 | inputPaths = (
232 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
233 | "${PODS_ROOT}/Manifest.lock",
234 | );
235 | name = "[CP] Check Pods Manifest.lock";
236 | outputFileListPaths = (
237 | );
238 | outputPaths = (
239 | "$(DERIVED_FILE_DIR)/Pods-example-checkManifestLockResult.txt",
240 | );
241 | runOnlyForDeploymentPostprocessing = 0;
242 | shellPath = /bin/sh;
243 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
244 | showEnvVarsInLog = 0;
245 | };
246 | 1541F9ECD1A563DCBC7084AE /* [Expo] Configure project */ = {
247 | isa = PBXShellScriptBuildPhase;
248 | alwaysOutOfDate = 1;
249 | buildActionMask = 2147483647;
250 | files = (
251 | );
252 | inputFileListPaths = (
253 | );
254 | inputPaths = (
255 | );
256 | name = "[Expo] Configure project";
257 | outputFileListPaths = (
258 | );
259 | outputPaths = (
260 | );
261 | runOnlyForDeploymentPostprocessing = 0;
262 | shellPath = /bin/sh;
263 | shellScript = "# This script configures Expo modules and generates the modules provider file.\nbash -l -c \"./Pods/Target\\ Support\\ Files/Pods-example/expo-configure-project.sh\"\n";
264 | };
265 | 800E24972A6A228C8D4807E9 /* [CP] Copy Pods Resources */ = {
266 | isa = PBXShellScriptBuildPhase;
267 | buildActionMask = 2147483647;
268 | files = (
269 | );
270 | inputPaths = (
271 | "${PODS_ROOT}/Target Support Files/Pods-example/Pods-example-resources.sh",
272 | "${PODS_CONFIGURATION_BUILD_DIR}/EXConstants/EXConstants.bundle",
273 | "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/AccessibilityResources.bundle",
274 | "${PODS_CONFIGURATION_BUILD_DIR}/expo-dev-launcher/EXDevLauncher.bundle",
275 | "${PODS_CONFIGURATION_BUILD_DIR}/expo-dev-menu/EXDevMenu.bundle",
276 | );
277 | name = "[CP] Copy Pods Resources";
278 | outputPaths = (
279 | "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EXConstants.bundle",
280 | "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AccessibilityResources.bundle",
281 | "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EXDevLauncher.bundle",
282 | "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EXDevMenu.bundle",
283 | );
284 | runOnlyForDeploymentPostprocessing = 0;
285 | shellPath = /bin/sh;
286 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-example/Pods-example-resources.sh\"\n";
287 | showEnvVarsInLog = 0;
288 | };
289 | B4937E33A420CDAAE8DF9418 /* [CP] Embed Pods Frameworks */ = {
290 | isa = PBXShellScriptBuildPhase;
291 | buildActionMask = 2147483647;
292 | files = (
293 | );
294 | inputPaths = (
295 | "${PODS_ROOT}/Target Support Files/Pods-example/Pods-example-frameworks.sh",
296 | "${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/Pre-built/hermes.framework/hermes",
297 | );
298 | name = "[CP] Embed Pods Frameworks";
299 | outputPaths = (
300 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework",
301 | );
302 | runOnlyForDeploymentPostprocessing = 0;
303 | shellPath = /bin/sh;
304 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-example/Pods-example-frameworks.sh\"\n";
305 | showEnvVarsInLog = 0;
306 | };
307 | FD10A7F022414F080027D42C /* Start Packager */ = {
308 | isa = PBXShellScriptBuildPhase;
309 | buildActionMask = 2147483647;
310 | files = (
311 | );
312 | inputFileListPaths = (
313 | );
314 | inputPaths = (
315 | );
316 | name = "Start Packager";
317 | outputFileListPaths = (
318 | );
319 | outputPaths = (
320 | );
321 | runOnlyForDeploymentPostprocessing = 0;
322 | shellPath = /bin/sh;
323 | shellScript = "if [[ -f \"$PODS_ROOT/../.xcode.env\" ]]; then\n source \"$PODS_ROOT/../.xcode.env\"\nfi\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\nexport RCT_METRO_PORT=\"${RCT_METRO_PORT:=8081}\"\necho \"export RCT_METRO_PORT=${RCT_METRO_PORT}\" > `$NODE_BINARY --print \"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/.packager.env'\"`\nif [ -z \"${RCT_NO_LAUNCH_PACKAGER+xxx}\" ] ; then\n if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\n if ! curl -s \"http://localhost:${RCT_METRO_PORT}/status\" | grep -q \"packager-status:running\" ; then\n echo \"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\"\n exit 2\n fi\n else\n open `$NODE_BINARY --print \"require('path').dirname(require.resolve('expo/package.json')) + '/scripts/launchPackager.command'\"` || echo \"Can't start packager automatically\"\n fi\nfi\n";
324 | showEnvVarsInLog = 0;
325 | };
326 | /* End PBXShellScriptBuildPhase section */
327 |
328 | /* Begin PBXSourcesBuildPhase section */
329 | 13B07F871A680F5B00A75B9A /* Sources */ = {
330 | isa = PBXSourcesBuildPhase;
331 | buildActionMask = 2147483647;
332 | files = (
333 | 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */,
334 | 13B07FC11A68108700A75B9A /* main.m in Sources */,
335 | B18059E884C0ABDD17F3DC3D /* ExpoModulesProvider.swift in Sources */,
336 | 14A5021F1FE44EE4842A077B /* noop-file.swift in Sources */,
337 | );
338 | runOnlyForDeploymentPostprocessing = 0;
339 | };
340 | /* End PBXSourcesBuildPhase section */
341 |
342 | /* Begin XCBuildConfiguration section */
343 | 13B07F941A680F5B00A75B9A /* Debug */ = {
344 | isa = XCBuildConfiguration;
345 | baseConfigurationReference = 6C2E3173556A471DD304B334 /* Pods-example.debug.xcconfig */;
346 | buildSettings = {
347 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
348 | CLANG_ENABLE_MODULES = YES;
349 | CODE_SIGN_ENTITLEMENTS = example/example.entitlements;
350 | CURRENT_PROJECT_VERSION = 1;
351 | ENABLE_BITCODE = NO;
352 | GCC_PREPROCESSOR_DEFINITIONS = (
353 | "$(inherited)",
354 | "FB_SONARKIT_ENABLED=1",
355 | );
356 | INFOPLIST_FILE = example/Info.plist;
357 | IPHONEOS_DEPLOYMENT_TARGET = 13.0;
358 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
359 | MARKETING_VERSION = 1.0;
360 | OTHER_LDFLAGS = (
361 | "$(inherited)",
362 | "-ObjC",
363 | "-lc++",
364 | );
365 | OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG";
366 | PRODUCT_BUNDLE_IDENTIFIER = com.roninoss.icons;
367 | PRODUCT_NAME = example;
368 | SWIFT_OBJC_BRIDGING_HEADER = "example/example-Bridging-Header.h";
369 | SWIFT_OPTIMIZATION_LEVEL = "-Onone";
370 | SWIFT_VERSION = 5.0;
371 | TARGETED_DEVICE_FAMILY = "1,2";
372 | VERSIONING_SYSTEM = "apple-generic";
373 | };
374 | name = Debug;
375 | };
376 | 13B07F951A680F5B00A75B9A /* Release */ = {
377 | isa = XCBuildConfiguration;
378 | baseConfigurationReference = 7A4D352CD337FB3A3BF06240 /* Pods-example.release.xcconfig */;
379 | buildSettings = {
380 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
381 | CLANG_ENABLE_MODULES = YES;
382 | CODE_SIGN_ENTITLEMENTS = example/example.entitlements;
383 | CURRENT_PROJECT_VERSION = 1;
384 | INFOPLIST_FILE = example/Info.plist;
385 | IPHONEOS_DEPLOYMENT_TARGET = 13.0;
386 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
387 | MARKETING_VERSION = 1.0;
388 | OTHER_LDFLAGS = (
389 | "$(inherited)",
390 | "-ObjC",
391 | "-lc++",
392 | );
393 | OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
394 | PRODUCT_BUNDLE_IDENTIFIER = com.roninoss.icons;
395 | PRODUCT_NAME = example;
396 | SWIFT_OBJC_BRIDGING_HEADER = "example/example-Bridging-Header.h";
397 | SWIFT_VERSION = 5.0;
398 | TARGETED_DEVICE_FAMILY = "1,2";
399 | VERSIONING_SYSTEM = "apple-generic";
400 | };
401 | name = Release;
402 | };
403 | 83CBBA201A601CBA00E9B192 /* Debug */ = {
404 | isa = XCBuildConfiguration;
405 | buildSettings = {
406 | ALWAYS_SEARCH_USER_PATHS = NO;
407 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
408 | CLANG_CXX_LANGUAGE_STANDARD = "c++17";
409 | CLANG_CXX_LIBRARY = "libc++";
410 | CLANG_ENABLE_MODULES = YES;
411 | CLANG_ENABLE_OBJC_ARC = YES;
412 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
413 | CLANG_WARN_BOOL_CONVERSION = YES;
414 | CLANG_WARN_COMMA = YES;
415 | CLANG_WARN_CONSTANT_CONVERSION = YES;
416 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
417 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
418 | CLANG_WARN_EMPTY_BODY = YES;
419 | CLANG_WARN_ENUM_CONVERSION = YES;
420 | CLANG_WARN_INFINITE_RECURSION = YES;
421 | CLANG_WARN_INT_CONVERSION = YES;
422 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
423 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
424 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
425 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
426 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
427 | CLANG_WARN_STRICT_PROTOTYPES = YES;
428 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
429 | CLANG_WARN_UNREACHABLE_CODE = YES;
430 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
431 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
432 | COPY_PHASE_STRIP = NO;
433 | ENABLE_STRICT_OBJC_MSGSEND = YES;
434 | ENABLE_TESTABILITY = YES;
435 | "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386;
436 | GCC_C_LANGUAGE_STANDARD = gnu99;
437 | GCC_DYNAMIC_NO_PIC = NO;
438 | GCC_NO_COMMON_BLOCKS = YES;
439 | GCC_OPTIMIZATION_LEVEL = 0;
440 | GCC_PREPROCESSOR_DEFINITIONS = (
441 | "DEBUG=1",
442 | "$(inherited)",
443 | _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION,
444 | );
445 | GCC_SYMBOLS_PRIVATE_EXTERN = NO;
446 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
447 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
448 | GCC_WARN_UNDECLARED_SELECTOR = YES;
449 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
450 | GCC_WARN_UNUSED_FUNCTION = YES;
451 | GCC_WARN_UNUSED_VARIABLE = YES;
452 | IPHONEOS_DEPLOYMENT_TARGET = 13.0;
453 | LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)";
454 | LIBRARY_SEARCH_PATHS = "$(SDKROOT)/usr/lib/swift\"$(inherited)\"";
455 | MTL_ENABLE_DEBUG_INFO = YES;
456 | ONLY_ACTIVE_ARCH = YES;
457 | OTHER_CFLAGS = "$(inherited)";
458 | OTHER_CPLUSPLUSFLAGS = "$(inherited)";
459 | OTHER_LDFLAGS = (
460 | "$(inherited)",
461 | " ",
462 | );
463 | REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
464 | SDKROOT = iphoneos;
465 | };
466 | name = Debug;
467 | };
468 | 83CBBA211A601CBA00E9B192 /* Release */ = {
469 | isa = XCBuildConfiguration;
470 | buildSettings = {
471 | ALWAYS_SEARCH_USER_PATHS = NO;
472 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
473 | CLANG_CXX_LANGUAGE_STANDARD = "c++17";
474 | CLANG_CXX_LIBRARY = "libc++";
475 | CLANG_ENABLE_MODULES = YES;
476 | CLANG_ENABLE_OBJC_ARC = YES;
477 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
478 | CLANG_WARN_BOOL_CONVERSION = YES;
479 | CLANG_WARN_COMMA = YES;
480 | CLANG_WARN_CONSTANT_CONVERSION = YES;
481 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
482 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
483 | CLANG_WARN_EMPTY_BODY = YES;
484 | CLANG_WARN_ENUM_CONVERSION = YES;
485 | CLANG_WARN_INFINITE_RECURSION = YES;
486 | CLANG_WARN_INT_CONVERSION = YES;
487 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
488 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
489 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
490 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
491 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
492 | CLANG_WARN_STRICT_PROTOTYPES = YES;
493 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
494 | CLANG_WARN_UNREACHABLE_CODE = YES;
495 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
496 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
497 | COPY_PHASE_STRIP = YES;
498 | ENABLE_NS_ASSERTIONS = NO;
499 | ENABLE_STRICT_OBJC_MSGSEND = YES;
500 | "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386;
501 | GCC_C_LANGUAGE_STANDARD = gnu99;
502 | GCC_NO_COMMON_BLOCKS = YES;
503 | GCC_PREPROCESSOR_DEFINITIONS = (
504 | "$(inherited)",
505 | _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION,
506 | );
507 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
508 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
509 | GCC_WARN_UNDECLARED_SELECTOR = YES;
510 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
511 | GCC_WARN_UNUSED_FUNCTION = YES;
512 | GCC_WARN_UNUSED_VARIABLE = YES;
513 | IPHONEOS_DEPLOYMENT_TARGET = 13.0;
514 | LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)";
515 | LIBRARY_SEARCH_PATHS = "$(SDKROOT)/usr/lib/swift\"$(inherited)\"";
516 | MTL_ENABLE_DEBUG_INFO = NO;
517 | OTHER_CFLAGS = "$(inherited)";
518 | OTHER_CPLUSPLUSFLAGS = "$(inherited)";
519 | OTHER_LDFLAGS = (
520 | "$(inherited)",
521 | " ",
522 | );
523 | REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
524 | SDKROOT = iphoneos;
525 | VALIDATE_PRODUCT = YES;
526 | };
527 | name = Release;
528 | };
529 | /* End XCBuildConfiguration section */
530 |
531 | /* Begin XCConfigurationList section */
532 | 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "example" */ = {
533 | isa = XCConfigurationList;
534 | buildConfigurations = (
535 | 13B07F941A680F5B00A75B9A /* Debug */,
536 | 13B07F951A680F5B00A75B9A /* Release */,
537 | );
538 | defaultConfigurationIsVisible = 0;
539 | defaultConfigurationName = Release;
540 | };
541 | 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "example" */ = {
542 | isa = XCConfigurationList;
543 | buildConfigurations = (
544 | 83CBBA201A601CBA00E9B192 /* Debug */,
545 | 83CBBA211A601CBA00E9B192 /* Release */,
546 | );
547 | defaultConfigurationIsVisible = 0;
548 | defaultConfigurationName = Release;
549 | };
550 | /* End XCConfigurationList section */
551 | };
552 | rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */;
553 | }
554 |
--------------------------------------------------------------------------------
/apps/example/ios/Podfile.lock:
--------------------------------------------------------------------------------
1 | PODS:
2 | - boost (1.76.0)
3 | - DoubleConversion (1.1.6)
4 | - EXApplication (5.3.1):
5 | - ExpoModulesCore
6 | - EXConstants (14.4.2):
7 | - ExpoModulesCore
8 | - EXFileSystem (15.4.5):
9 | - ExpoModulesCore
10 | - EXFont (11.4.0):
11 | - ExpoModulesCore
12 | - EXJSONUtils (0.7.1)
13 | - EXManifests (0.7.2):
14 | - ExpoModulesCore
15 | - Expo (49.0.23):
16 | - ExpoModulesCore
17 | - expo-dev-client (2.4.13):
18 | - EXManifests
19 | - expo-dev-launcher
20 | - expo-dev-menu
21 | - expo-dev-menu-interface
22 | - EXUpdatesInterface
23 | - expo-dev-launcher (2.4.15):
24 | - EXManifests
25 | - expo-dev-launcher/Main (= 2.4.15)
26 | - expo-dev-menu
27 | - expo-dev-menu-interface
28 | - ExpoModulesCore
29 | - EXUpdatesInterface
30 | - RCT-Folly (= 2021.07.22.00)
31 | - React-Core
32 | - React-RCTAppDelegate
33 | - expo-dev-launcher/Main (2.4.15):
34 | - EXManifests
35 | - expo-dev-launcher/Unsafe
36 | - expo-dev-menu
37 | - expo-dev-menu-interface
38 | - ExpoModulesCore
39 | - EXUpdatesInterface
40 | - RCT-Folly (= 2021.07.22.00)
41 | - React-Core
42 | - React-RCTAppDelegate
43 | - expo-dev-launcher/Unsafe (2.4.15):
44 | - EXManifests
45 | - expo-dev-menu
46 | - expo-dev-menu-interface
47 | - ExpoModulesCore
48 | - EXUpdatesInterface
49 | - RCT-Folly (= 2021.07.22.00)
50 | - React-Core
51 | - React-RCTAppDelegate
52 | - expo-dev-menu (3.2.4):
53 | - expo-dev-menu/Main (= 3.2.4)
54 | - RCT-Folly (= 2021.07.22.00)
55 | - React-Core
56 | - expo-dev-menu-interface (1.3.0)
57 | - expo-dev-menu/Main (3.2.4):
58 | - EXManifests
59 | - expo-dev-menu-interface
60 | - expo-dev-menu/Vendored
61 | - ExpoModulesCore
62 | - RCT-Folly (= 2021.07.22.00)
63 | - React-Core
64 | - expo-dev-menu/SafeAreaView (3.2.4):
65 | - ExpoModulesCore
66 | - RCT-Folly (= 2021.07.22.00)
67 | - React-Core
68 | - expo-dev-menu/Vendored (3.2.4):
69 | - expo-dev-menu/SafeAreaView
70 | - RCT-Folly (= 2021.07.22.00)
71 | - React-Core
72 | - ExpoKeepAwake (12.3.0):
73 | - ExpoModulesCore
74 | - ExpoModulesCore (1.5.13):
75 | - RCT-Folly (= 2021.07.22.00)
76 | - React-Core
77 | - React-NativeModulesApple
78 | - React-RCTAppDelegate
79 | - ReactCommon/turbomodule/core
80 | - EXSplashScreen (0.20.5):
81 | - ExpoModulesCore
82 | - RCT-Folly (= 2021.07.22.00)
83 | - React-Core
84 | - EXUpdatesInterface (0.10.1)
85 | - FBLazyVector (0.72.10)
86 | - FBReactNativeSpec (0.72.10):
87 | - RCT-Folly (= 2021.07.22.00)
88 | - RCTRequired (= 0.72.10)
89 | - RCTTypeSafety (= 0.72.10)
90 | - React-Core (= 0.72.10)
91 | - React-jsi (= 0.72.10)
92 | - ReactCommon/turbomodule/core (= 0.72.10)
93 | - fmt (6.2.1)
94 | - glog (0.3.5)
95 | - hermes-engine (0.72.10):
96 | - hermes-engine/Pre-built (= 0.72.10)
97 | - hermes-engine/Pre-built (0.72.10)
98 | - libevent (2.1.12)
99 | - RCT-Folly (2021.07.22.00):
100 | - boost
101 | - DoubleConversion
102 | - fmt (~> 6.2.1)
103 | - glog
104 | - RCT-Folly/Default (= 2021.07.22.00)
105 | - RCT-Folly/Default (2021.07.22.00):
106 | - boost
107 | - DoubleConversion
108 | - fmt (~> 6.2.1)
109 | - glog
110 | - RCT-Folly/Futures (2021.07.22.00):
111 | - boost
112 | - DoubleConversion
113 | - fmt (~> 6.2.1)
114 | - glog
115 | - libevent
116 | - RCTRequired (0.72.10)
117 | - RCTTypeSafety (0.72.10):
118 | - FBLazyVector (= 0.72.10)
119 | - RCTRequired (= 0.72.10)
120 | - React-Core (= 0.72.10)
121 | - React (0.72.10):
122 | - React-Core (= 0.72.10)
123 | - React-Core/DevSupport (= 0.72.10)
124 | - React-Core/RCTWebSocket (= 0.72.10)
125 | - React-RCTActionSheet (= 0.72.10)
126 | - React-RCTAnimation (= 0.72.10)
127 | - React-RCTBlob (= 0.72.10)
128 | - React-RCTImage (= 0.72.10)
129 | - React-RCTLinking (= 0.72.10)
130 | - React-RCTNetwork (= 0.72.10)
131 | - React-RCTSettings (= 0.72.10)
132 | - React-RCTText (= 0.72.10)
133 | - React-RCTVibration (= 0.72.10)
134 | - React-callinvoker (0.72.10)
135 | - React-Codegen (0.72.10):
136 | - DoubleConversion
137 | - FBReactNativeSpec
138 | - glog
139 | - hermes-engine
140 | - RCT-Folly
141 | - RCTRequired
142 | - RCTTypeSafety
143 | - React-Core
144 | - React-jsi
145 | - React-jsiexecutor
146 | - React-NativeModulesApple
147 | - React-rncore
148 | - ReactCommon/turbomodule/bridging
149 | - ReactCommon/turbomodule/core
150 | - React-Core (0.72.10):
151 | - glog
152 | - hermes-engine
153 | - RCT-Folly (= 2021.07.22.00)
154 | - React-Core/Default (= 0.72.10)
155 | - React-cxxreact
156 | - React-hermes
157 | - React-jsi
158 | - React-jsiexecutor
159 | - React-perflogger
160 | - React-runtimeexecutor
161 | - React-utils
162 | - SocketRocket (= 0.6.1)
163 | - Yoga
164 | - React-Core/CoreModulesHeaders (0.72.10):
165 | - glog
166 | - hermes-engine
167 | - RCT-Folly (= 2021.07.22.00)
168 | - React-Core/Default
169 | - React-cxxreact
170 | - React-hermes
171 | - React-jsi
172 | - React-jsiexecutor
173 | - React-perflogger
174 | - React-runtimeexecutor
175 | - React-utils
176 | - SocketRocket (= 0.6.1)
177 | - Yoga
178 | - React-Core/Default (0.72.10):
179 | - glog
180 | - hermes-engine
181 | - RCT-Folly (= 2021.07.22.00)
182 | - React-cxxreact
183 | - React-hermes
184 | - React-jsi
185 | - React-jsiexecutor
186 | - React-perflogger
187 | - React-runtimeexecutor
188 | - React-utils
189 | - SocketRocket (= 0.6.1)
190 | - Yoga
191 | - React-Core/DevSupport (0.72.10):
192 | - glog
193 | - hermes-engine
194 | - RCT-Folly (= 2021.07.22.00)
195 | - React-Core/Default (= 0.72.10)
196 | - React-Core/RCTWebSocket (= 0.72.10)
197 | - React-cxxreact
198 | - React-hermes
199 | - React-jsi
200 | - React-jsiexecutor
201 | - React-jsinspector (= 0.72.10)
202 | - React-perflogger
203 | - React-runtimeexecutor
204 | - React-utils
205 | - SocketRocket (= 0.6.1)
206 | - Yoga
207 | - React-Core/RCTActionSheetHeaders (0.72.10):
208 | - glog
209 | - hermes-engine
210 | - RCT-Folly (= 2021.07.22.00)
211 | - React-Core/Default
212 | - React-cxxreact
213 | - React-hermes
214 | - React-jsi
215 | - React-jsiexecutor
216 | - React-perflogger
217 | - React-runtimeexecutor
218 | - React-utils
219 | - SocketRocket (= 0.6.1)
220 | - Yoga
221 | - React-Core/RCTAnimationHeaders (0.72.10):
222 | - glog
223 | - hermes-engine
224 | - RCT-Folly (= 2021.07.22.00)
225 | - React-Core/Default
226 | - React-cxxreact
227 | - React-hermes
228 | - React-jsi
229 | - React-jsiexecutor
230 | - React-perflogger
231 | - React-runtimeexecutor
232 | - React-utils
233 | - SocketRocket (= 0.6.1)
234 | - Yoga
235 | - React-Core/RCTBlobHeaders (0.72.10):
236 | - glog
237 | - hermes-engine
238 | - RCT-Folly (= 2021.07.22.00)
239 | - React-Core/Default
240 | - React-cxxreact
241 | - React-hermes
242 | - React-jsi
243 | - React-jsiexecutor
244 | - React-perflogger
245 | - React-runtimeexecutor
246 | - React-utils
247 | - SocketRocket (= 0.6.1)
248 | - Yoga
249 | - React-Core/RCTImageHeaders (0.72.10):
250 | - glog
251 | - hermes-engine
252 | - RCT-Folly (= 2021.07.22.00)
253 | - React-Core/Default
254 | - React-cxxreact
255 | - React-hermes
256 | - React-jsi
257 | - React-jsiexecutor
258 | - React-perflogger
259 | - React-runtimeexecutor
260 | - React-utils
261 | - SocketRocket (= 0.6.1)
262 | - Yoga
263 | - React-Core/RCTLinkingHeaders (0.72.10):
264 | - glog
265 | - hermes-engine
266 | - RCT-Folly (= 2021.07.22.00)
267 | - React-Core/Default
268 | - React-cxxreact
269 | - React-hermes
270 | - React-jsi
271 | - React-jsiexecutor
272 | - React-perflogger
273 | - React-runtimeexecutor
274 | - React-utils
275 | - SocketRocket (= 0.6.1)
276 | - Yoga
277 | - React-Core/RCTNetworkHeaders (0.72.10):
278 | - glog
279 | - hermes-engine
280 | - RCT-Folly (= 2021.07.22.00)
281 | - React-Core/Default
282 | - React-cxxreact
283 | - React-hermes
284 | - React-jsi
285 | - React-jsiexecutor
286 | - React-perflogger
287 | - React-runtimeexecutor
288 | - React-utils
289 | - SocketRocket (= 0.6.1)
290 | - Yoga
291 | - React-Core/RCTSettingsHeaders (0.72.10):
292 | - glog
293 | - hermes-engine
294 | - RCT-Folly (= 2021.07.22.00)
295 | - React-Core/Default
296 | - React-cxxreact
297 | - React-hermes
298 | - React-jsi
299 | - React-jsiexecutor
300 | - React-perflogger
301 | - React-runtimeexecutor
302 | - React-utils
303 | - SocketRocket (= 0.6.1)
304 | - Yoga
305 | - React-Core/RCTTextHeaders (0.72.10):
306 | - glog
307 | - hermes-engine
308 | - RCT-Folly (= 2021.07.22.00)
309 | - React-Core/Default
310 | - React-cxxreact
311 | - React-hermes
312 | - React-jsi
313 | - React-jsiexecutor
314 | - React-perflogger
315 | - React-runtimeexecutor
316 | - React-utils
317 | - SocketRocket (= 0.6.1)
318 | - Yoga
319 | - React-Core/RCTVibrationHeaders (0.72.10):
320 | - glog
321 | - hermes-engine
322 | - RCT-Folly (= 2021.07.22.00)
323 | - React-Core/Default
324 | - React-cxxreact
325 | - React-hermes
326 | - React-jsi
327 | - React-jsiexecutor
328 | - React-perflogger
329 | - React-runtimeexecutor
330 | - React-utils
331 | - SocketRocket (= 0.6.1)
332 | - Yoga
333 | - React-Core/RCTWebSocket (0.72.10):
334 | - glog
335 | - hermes-engine
336 | - RCT-Folly (= 2021.07.22.00)
337 | - React-Core/Default (= 0.72.10)
338 | - React-cxxreact
339 | - React-hermes
340 | - React-jsi
341 | - React-jsiexecutor
342 | - React-perflogger
343 | - React-runtimeexecutor
344 | - React-utils
345 | - SocketRocket (= 0.6.1)
346 | - Yoga
347 | - React-CoreModules (0.72.10):
348 | - RCT-Folly (= 2021.07.22.00)
349 | - RCTTypeSafety (= 0.72.10)
350 | - React-Codegen (= 0.72.10)
351 | - React-Core/CoreModulesHeaders (= 0.72.10)
352 | - React-jsi (= 0.72.10)
353 | - React-RCTBlob
354 | - React-RCTImage (= 0.72.10)
355 | - ReactCommon/turbomodule/core (= 0.72.10)
356 | - SocketRocket (= 0.6.1)
357 | - React-cxxreact (0.72.10):
358 | - boost (= 1.76.0)
359 | - DoubleConversion
360 | - glog
361 | - hermes-engine
362 | - RCT-Folly (= 2021.07.22.00)
363 | - React-callinvoker (= 0.72.10)
364 | - React-debug (= 0.72.10)
365 | - React-jsi (= 0.72.10)
366 | - React-jsinspector (= 0.72.10)
367 | - React-logger (= 0.72.10)
368 | - React-perflogger (= 0.72.10)
369 | - React-runtimeexecutor (= 0.72.10)
370 | - React-debug (0.72.10)
371 | - React-hermes (0.72.10):
372 | - DoubleConversion
373 | - glog
374 | - hermes-engine
375 | - RCT-Folly (= 2021.07.22.00)
376 | - RCT-Folly/Futures (= 2021.07.22.00)
377 | - React-cxxreact (= 0.72.10)
378 | - React-jsi
379 | - React-jsiexecutor (= 0.72.10)
380 | - React-jsinspector (= 0.72.10)
381 | - React-perflogger (= 0.72.10)
382 | - React-jsi (0.72.10):
383 | - boost (= 1.76.0)
384 | - DoubleConversion
385 | - glog
386 | - hermes-engine
387 | - RCT-Folly (= 2021.07.22.00)
388 | - React-jsiexecutor (0.72.10):
389 | - DoubleConversion
390 | - glog
391 | - hermes-engine
392 | - RCT-Folly (= 2021.07.22.00)
393 | - React-cxxreact (= 0.72.10)
394 | - React-jsi (= 0.72.10)
395 | - React-perflogger (= 0.72.10)
396 | - React-jsinspector (0.72.10)
397 | - React-logger (0.72.10):
398 | - glog
399 | - React-NativeModulesApple (0.72.10):
400 | - hermes-engine
401 | - React-callinvoker
402 | - React-Core
403 | - React-cxxreact
404 | - React-jsi
405 | - React-runtimeexecutor
406 | - ReactCommon/turbomodule/bridging
407 | - ReactCommon/turbomodule/core
408 | - React-perflogger (0.72.10)
409 | - React-RCTActionSheet (0.72.10):
410 | - React-Core/RCTActionSheetHeaders (= 0.72.10)
411 | - React-RCTAnimation (0.72.10):
412 | - RCT-Folly (= 2021.07.22.00)
413 | - RCTTypeSafety (= 0.72.10)
414 | - React-Codegen (= 0.72.10)
415 | - React-Core/RCTAnimationHeaders (= 0.72.10)
416 | - React-jsi (= 0.72.10)
417 | - ReactCommon/turbomodule/core (= 0.72.10)
418 | - React-RCTAppDelegate (0.72.10):
419 | - RCT-Folly
420 | - RCTRequired
421 | - RCTTypeSafety
422 | - React-Core
423 | - React-CoreModules
424 | - React-hermes
425 | - React-NativeModulesApple
426 | - React-RCTImage
427 | - React-RCTNetwork
428 | - React-runtimescheduler
429 | - ReactCommon/turbomodule/core
430 | - React-RCTBlob (0.72.10):
431 | - hermes-engine
432 | - RCT-Folly (= 2021.07.22.00)
433 | - React-Codegen (= 0.72.10)
434 | - React-Core/RCTBlobHeaders (= 0.72.10)
435 | - React-Core/RCTWebSocket (= 0.72.10)
436 | - React-jsi (= 0.72.10)
437 | - React-RCTNetwork (= 0.72.10)
438 | - ReactCommon/turbomodule/core (= 0.72.10)
439 | - React-RCTImage (0.72.10):
440 | - RCT-Folly (= 2021.07.22.00)
441 | - RCTTypeSafety (= 0.72.10)
442 | - React-Codegen (= 0.72.10)
443 | - React-Core/RCTImageHeaders (= 0.72.10)
444 | - React-jsi (= 0.72.10)
445 | - React-RCTNetwork (= 0.72.10)
446 | - ReactCommon/turbomodule/core (= 0.72.10)
447 | - React-RCTLinking (0.72.10):
448 | - React-Codegen (= 0.72.10)
449 | - React-Core/RCTLinkingHeaders (= 0.72.10)
450 | - React-jsi (= 0.72.10)
451 | - ReactCommon/turbomodule/core (= 0.72.10)
452 | - React-RCTNetwork (0.72.10):
453 | - RCT-Folly (= 2021.07.22.00)
454 | - RCTTypeSafety (= 0.72.10)
455 | - React-Codegen (= 0.72.10)
456 | - React-Core/RCTNetworkHeaders (= 0.72.10)
457 | - React-jsi (= 0.72.10)
458 | - ReactCommon/turbomodule/core (= 0.72.10)
459 | - React-RCTSettings (0.72.10):
460 | - RCT-Folly (= 2021.07.22.00)
461 | - RCTTypeSafety (= 0.72.10)
462 | - React-Codegen (= 0.72.10)
463 | - React-Core/RCTSettingsHeaders (= 0.72.10)
464 | - React-jsi (= 0.72.10)
465 | - ReactCommon/turbomodule/core (= 0.72.10)
466 | - React-RCTText (0.72.10):
467 | - React-Core/RCTTextHeaders (= 0.72.10)
468 | - React-RCTVibration (0.72.10):
469 | - RCT-Folly (= 2021.07.22.00)
470 | - React-Codegen (= 0.72.10)
471 | - React-Core/RCTVibrationHeaders (= 0.72.10)
472 | - React-jsi (= 0.72.10)
473 | - ReactCommon/turbomodule/core (= 0.72.10)
474 | - React-rncore (0.72.10)
475 | - React-runtimeexecutor (0.72.10):
476 | - React-jsi (= 0.72.10)
477 | - React-runtimescheduler (0.72.10):
478 | - glog
479 | - hermes-engine
480 | - RCT-Folly (= 2021.07.22.00)
481 | - React-callinvoker
482 | - React-debug
483 | - React-jsi
484 | - React-runtimeexecutor
485 | - React-utils (0.72.10):
486 | - glog
487 | - RCT-Folly (= 2021.07.22.00)
488 | - React-debug
489 | - ReactCommon/turbomodule/bridging (0.72.10):
490 | - DoubleConversion
491 | - glog
492 | - hermes-engine
493 | - RCT-Folly (= 2021.07.22.00)
494 | - React-callinvoker (= 0.72.10)
495 | - React-cxxreact (= 0.72.10)
496 | - React-jsi (= 0.72.10)
497 | - React-logger (= 0.72.10)
498 | - React-perflogger (= 0.72.10)
499 | - ReactCommon/turbomodule/core (0.72.10):
500 | - DoubleConversion
501 | - glog
502 | - hermes-engine
503 | - RCT-Folly (= 2021.07.22.00)
504 | - React-callinvoker (= 0.72.10)
505 | - React-cxxreact (= 0.72.10)
506 | - React-jsi (= 0.72.10)
507 | - React-logger (= 0.72.10)
508 | - React-perflogger (= 0.72.10)
509 | - SocketRocket (0.6.1)
510 | - SweetSFSymbols (0.7.0):
511 | - ExpoModulesCore
512 | - Yoga (1.14.0)
513 |
514 | DEPENDENCIES:
515 | - boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`)
516 | - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`)
517 | - EXApplication (from `../../../node_modules/expo-application/ios`)
518 | - EXConstants (from `../../../node_modules/expo-constants/ios`)
519 | - EXFileSystem (from `../../../node_modules/expo-file-system/ios`)
520 | - EXFont (from `../../../node_modules/expo-font/ios`)
521 | - EXJSONUtils (from `../../../node_modules/expo-json-utils/ios`)
522 | - EXManifests (from `../../../node_modules/expo-manifests/ios`)
523 | - Expo (from `../../../node_modules/expo`)
524 | - expo-dev-client (from `../../../node_modules/expo-dev-client/ios`)
525 | - expo-dev-launcher (from `../../../node_modules/expo-dev-launcher`)
526 | - expo-dev-menu (from `../../../node_modules/expo-dev-menu`)
527 | - expo-dev-menu-interface (from `../../../node_modules/expo-dev-menu-interface/ios`)
528 | - ExpoKeepAwake (from `../../../node_modules/expo-keep-awake/ios`)
529 | - ExpoModulesCore (from `../../../node_modules/expo-modules-core`)
530 | - EXSplashScreen (from `../../../node_modules/expo-splash-screen/ios`)
531 | - EXUpdatesInterface (from `../../../node_modules/expo-updates-interface/ios`)
532 | - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`)
533 | - FBReactNativeSpec (from `../node_modules/react-native/React/FBReactNativeSpec`)
534 | - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
535 | - hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`)
536 | - libevent (~> 2.1.12)
537 | - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
538 | - RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`)
539 | - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`)
540 | - React (from `../node_modules/react-native/`)
541 | - React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`)
542 | - React-Codegen (from `build/generated/ios`)
543 | - React-Core (from `../node_modules/react-native/`)
544 | - React-Core/RCTWebSocket (from `../node_modules/react-native/`)
545 | - React-CoreModules (from `../node_modules/react-native/React/CoreModules`)
546 | - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`)
547 | - React-debug (from `../node_modules/react-native/ReactCommon/react/debug`)
548 | - React-hermes (from `../node_modules/react-native/ReactCommon/hermes`)
549 | - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`)
550 | - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`)
551 | - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`)
552 | - React-logger (from `../node_modules/react-native/ReactCommon/logger`)
553 | - React-NativeModulesApple (from `../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios`)
554 | - React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`)
555 | - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`)
556 | - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`)
557 | - React-RCTAppDelegate (from `../node_modules/react-native/Libraries/AppDelegate`)
558 | - React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`)
559 | - React-RCTImage (from `../node_modules/react-native/Libraries/Image`)
560 | - React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`)
561 | - React-RCTNetwork (from `../node_modules/react-native/Libraries/Network`)
562 | - React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`)
563 | - React-RCTText (from `../node_modules/react-native/Libraries/Text`)
564 | - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`)
565 | - React-rncore (from `../node_modules/react-native/ReactCommon`)
566 | - React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`)
567 | - React-runtimescheduler (from `../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler`)
568 | - React-utils (from `../node_modules/react-native/ReactCommon/react/utils`)
569 | - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`)
570 | - SweetSFSymbols (from `../../../node_modules/sweet-sfsymbols/ios`)
571 | - Yoga (from `../node_modules/react-native/ReactCommon/yoga`)
572 |
573 | SPEC REPOS:
574 | trunk:
575 | - fmt
576 | - libevent
577 | - SocketRocket
578 |
579 | EXTERNAL SOURCES:
580 | boost:
581 | :podspec: "../node_modules/react-native/third-party-podspecs/boost.podspec"
582 | DoubleConversion:
583 | :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec"
584 | EXApplication:
585 | :path: "../../../node_modules/expo-application/ios"
586 | EXConstants:
587 | :path: "../../../node_modules/expo-constants/ios"
588 | EXFileSystem:
589 | :path: "../../../node_modules/expo-file-system/ios"
590 | EXFont:
591 | :path: "../../../node_modules/expo-font/ios"
592 | EXJSONUtils:
593 | :path: "../../../node_modules/expo-json-utils/ios"
594 | EXManifests:
595 | :path: "../../../node_modules/expo-manifests/ios"
596 | Expo:
597 | :path: "../../../node_modules/expo"
598 | expo-dev-client:
599 | :path: "../../../node_modules/expo-dev-client/ios"
600 | expo-dev-launcher:
601 | :path: "../../../node_modules/expo-dev-launcher"
602 | expo-dev-menu:
603 | :path: "../../../node_modules/expo-dev-menu"
604 | expo-dev-menu-interface:
605 | :path: "../../../node_modules/expo-dev-menu-interface/ios"
606 | ExpoKeepAwake:
607 | :path: "../../../node_modules/expo-keep-awake/ios"
608 | ExpoModulesCore:
609 | :path: "../../../node_modules/expo-modules-core"
610 | EXSplashScreen:
611 | :path: "../../../node_modules/expo-splash-screen/ios"
612 | EXUpdatesInterface:
613 | :path: "../../../node_modules/expo-updates-interface/ios"
614 | FBLazyVector:
615 | :path: "../node_modules/react-native/Libraries/FBLazyVector"
616 | FBReactNativeSpec:
617 | :path: "../node_modules/react-native/React/FBReactNativeSpec"
618 | glog:
619 | :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec"
620 | hermes-engine:
621 | :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec"
622 | RCT-Folly:
623 | :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec"
624 | RCTRequired:
625 | :path: "../node_modules/react-native/Libraries/RCTRequired"
626 | RCTTypeSafety:
627 | :path: "../node_modules/react-native/Libraries/TypeSafety"
628 | React:
629 | :path: "../node_modules/react-native/"
630 | React-callinvoker:
631 | :path: "../node_modules/react-native/ReactCommon/callinvoker"
632 | React-Codegen:
633 | :path: build/generated/ios
634 | React-Core:
635 | :path: "../node_modules/react-native/"
636 | React-CoreModules:
637 | :path: "../node_modules/react-native/React/CoreModules"
638 | React-cxxreact:
639 | :path: "../node_modules/react-native/ReactCommon/cxxreact"
640 | React-debug:
641 | :path: "../node_modules/react-native/ReactCommon/react/debug"
642 | React-hermes:
643 | :path: "../node_modules/react-native/ReactCommon/hermes"
644 | React-jsi:
645 | :path: "../node_modules/react-native/ReactCommon/jsi"
646 | React-jsiexecutor:
647 | :path: "../node_modules/react-native/ReactCommon/jsiexecutor"
648 | React-jsinspector:
649 | :path: "../node_modules/react-native/ReactCommon/jsinspector"
650 | React-logger:
651 | :path: "../node_modules/react-native/ReactCommon/logger"
652 | React-NativeModulesApple:
653 | :path: "../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios"
654 | React-perflogger:
655 | :path: "../node_modules/react-native/ReactCommon/reactperflogger"
656 | React-RCTActionSheet:
657 | :path: "../node_modules/react-native/Libraries/ActionSheetIOS"
658 | React-RCTAnimation:
659 | :path: "../node_modules/react-native/Libraries/NativeAnimation"
660 | React-RCTAppDelegate:
661 | :path: "../node_modules/react-native/Libraries/AppDelegate"
662 | React-RCTBlob:
663 | :path: "../node_modules/react-native/Libraries/Blob"
664 | React-RCTImage:
665 | :path: "../node_modules/react-native/Libraries/Image"
666 | React-RCTLinking:
667 | :path: "../node_modules/react-native/Libraries/LinkingIOS"
668 | React-RCTNetwork:
669 | :path: "../node_modules/react-native/Libraries/Network"
670 | React-RCTSettings:
671 | :path: "../node_modules/react-native/Libraries/Settings"
672 | React-RCTText:
673 | :path: "../node_modules/react-native/Libraries/Text"
674 | React-RCTVibration:
675 | :path: "../node_modules/react-native/Libraries/Vibration"
676 | React-rncore:
677 | :path: "../node_modules/react-native/ReactCommon"
678 | React-runtimeexecutor:
679 | :path: "../node_modules/react-native/ReactCommon/runtimeexecutor"
680 | React-runtimescheduler:
681 | :path: "../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler"
682 | React-utils:
683 | :path: "../node_modules/react-native/ReactCommon/react/utils"
684 | ReactCommon:
685 | :path: "../node_modules/react-native/ReactCommon"
686 | SweetSFSymbols:
687 | :path: "../../../node_modules/sweet-sfsymbols/ios"
688 | Yoga:
689 | :path: "../node_modules/react-native/ReactCommon/yoga"
690 |
691 | SPEC CHECKSUMS:
692 | boost: 7dcd2de282d72e344012f7d6564d024930a6a440
693 | DoubleConversion: 5189b271737e1565bdce30deb4a08d647e3f5f54
694 | EXApplication: 042aa2e3f05258a16962ea1a9914bf288db9c9a1
695 | EXConstants: ce5bbea779da8031ac818c36bea41b10e14d04e1
696 | EXFileSystem: f8b838a880254de42a5a7da20ed5ce12e2697c1b
697 | EXFont: 738c44c390953ebcbab075a4848bfbef025fd9ee
698 | EXJSONUtils: 6802be4282d42b97c51682468ddc1026a06f8276
699 | EXManifests: cf66451b11b2c2f6464917528d792759f7fd6ce0
700 | Expo: ba9abdf444dc6d2c05a82c4c1b51a2400beb6167
701 | expo-dev-client: f350e6ddced33d2c14008c6d70c7904c0cd78b1f
702 | expo-dev-launcher: 3c29a60a0e17e62d02cddcb6c106a25f63f1c75c
703 | expo-dev-menu: c5f789b6228f4176f83a1f47dba54350e63437e1
704 | expo-dev-menu-interface: bda969497e73dadc2663c479e0fa726ca79a306e
705 | ExpoKeepAwake: be4cbd52d9b177cde0fd66daa1913afa3161fc1d
706 | ExpoModulesCore: 30fd49da9efd50f3ab0ca14b7be39b663e09bcf5
707 | EXSplashScreen: c0e7f2d4a640f3b875808ed0b88575538daf6d82
708 | EXUpdatesInterface: 82ed48d417cdcd376c12ca1c2ce390d35500bed6
709 | FBLazyVector: f91d538f197fa71a7d5b77ec2069d49550c0eb96
710 | FBReactNativeSpec: b13d1c23d6ed82d6b66aad7a253edf8ba76c4a4c
711 | fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9
712 | glog: 04b94705f318337d7ead9e6d17c019bd9b1f6b1b
713 | hermes-engine: 90e4033deb00bee33330a9f15eff0f874bd82f6d
714 | libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913
715 | RCT-Folly: 424b8c9a7a0b9ab2886ffe9c3b041ef628fd4fb1
716 | RCTRequired: b4d3068afa6f52ec5260a8417053b1f1b421483d
717 | RCTTypeSafety: a4551b3d338c96435f63bf06d564055c1d3cc0ac
718 | React: 66caa2a8192a35d7ba466a5fdf5dc06ee4a5f6dd
719 | React-callinvoker: e5b55e46894c2dd1bcdc19d4f82b0f7f631d1237
720 | React-Codegen: 0cf41e00026c5eba61f6bdcabd6e4bf659754f33
721 | React-Core: 2ce84187a00913f287b96753c56c7819ed7d90d5
722 | React-CoreModules: 893e7c5eed1ef8fe9e1ee1d913581c946e55b305
723 | React-cxxreact: 075d98dc664c0e9607cc0c45d41dc052bcc7313b
724 | React-debug: abc6213dcb9eafcf5242cbb194fef4c70c91871f
725 | React-hermes: 133cfa220ef836406f693ed7db56a509032ce433
726 | React-jsi: 9b45fd040d575f8ae6771bf1960641a58eb0bdd4
727 | React-jsiexecutor: 45ef2ec6dcde31b90469175ec76ddac77b91dfc3
728 | React-jsinspector: de0198127395fec3058140a20c045167f761bb16
729 | React-logger: dc3a2b174d79c2da635059212747d8d929b54e06
730 | React-NativeModulesApple: c3e696ff867e4bc212266cbdf7e862e48a0166fd
731 | React-perflogger: 43287389ea08993c300897a46f95cfac04bb6c1a
732 | React-RCTActionSheet: 923afe77f9bb89da7c1f98e2730bfc9dde0eed6d
733 | React-RCTAnimation: afd4d94c5e1f731e32ac99800850be06564ac642
734 | React-RCTAppDelegate: fb2e1447d014557f29e214fe2eb777442f808a3b
735 | React-RCTBlob: 167e2c6c3643f093058c51e76ecc653fc8236033
736 | React-RCTImage: 867de82a17630a08a3fa64b0cd6677dd19bf6eaf
737 | React-RCTLinking: 885dde8bc5d397c3e72c76315f1f9b5030b3a70e
738 | React-RCTNetwork: efec71102220b96ac8605d0253debd859ca0c817
739 | React-RCTSettings: 077065d0a4e925b017fe8538afa574d8fb52391f
740 | React-RCTText: 7adddb518ac362b2398fedf0c64105e0dab29441
741 | React-RCTVibration: de6b7218e415d82788e0965f278dddb2ef88b372
742 | React-rncore: f0d8c23481a6c263a343fa7fd3816d943754b720
743 | React-runtimeexecutor: 2b2c09edbca4c9a667428e8c93959f66b3b53140
744 | React-runtimescheduler: 6ca43e8deadf01ff06b3f01abf8f0e4d508e23c3
745 | React-utils: 372b83030a74347331636909278bf0a60ec30d59
746 | ReactCommon: 38824bfffaf4c51fbe03a2730b4fd874ef34d67b
747 | SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17
748 | SweetSFSymbols: 75e9d61f69fd934b0a32d87f739360a8eda22f4c
749 | Yoga: d0003f849d2b5224c072cef6568b540d8bb15cd3
750 |
751 | PODFILE CHECKSUM: 329483eb6daf495a1eab8db2c188f13aaa25dcf9
752 |
753 | COCOAPODS: 1.15.2
754 |
--------------------------------------------------------------------------------
/packages/icons/src/icon-mapping.ts:
--------------------------------------------------------------------------------
1 | export const ICON_MAPPING = {
2 | 'format-font': {
3 | sfSymbol: 'textformat',
4 | type: 'MaterialCommunityIcons'
5 | },
6 | 'format-size': {
7 | sfSymbol: 'textformat.size',
8 | type: 'MaterialIcons',
9 | },
10 | 'tray-arrow-up': {
11 | sfSymbol: 'square.and.arrow.up',
12 | type: 'MaterialCommunityIcons',
13 | },
14 | 'tray-arrow-down': {
15 | sfSymbol: 'square.and.arrow.down',
16 | type: 'MaterialCommunityIcons',
17 | },
18 | 'arrow-down-bold-box-outline': {
19 | sfSymbol: 'square.and.arrow.down.on.square',
20 | type: 'MaterialCommunityIcons',
21 | },
22 | 'arrow-down-bold-box': {
23 | sfSymbol: 'square.and.arrow.down.on.square.fill',
24 | type: 'MaterialCommunityIcons',
25 | },
26 | 'arrow-right-bold-box-outline': {
27 | sfSymbol: 'rectangle.portrait.and.arrow.right',
28 | type: 'MaterialCommunityIcons',
29 | },
30 | 'arrow-right-bold-box': {
31 | sfSymbol: 'rectangle.portrait.and.arrow.right.fill',
32 | type: 'MaterialCommunityIcons',
33 | },
34 | pencil: {
35 | sfSymbol: 'pencil',
36 | type: 'MaterialCommunityIcons',
37 | },
38 | 'pencil-circle-outline': {
39 | sfSymbol: 'pencil.circle',
40 | type: 'MaterialCommunityIcons',
41 | },
42 | 'pencil-circle': {
43 | sfSymbol: 'pencil.circle.fill',
44 | type: 'MaterialCommunityIcons',
45 | },
46 | 'pencil-off': {
47 | sfSymbol: 'pencil.slash',
48 | type: 'MaterialCommunityIcons',
49 | },
50 | 'progress-pencil': {
51 | sfSymbol: 'pencil.line',
52 | type: 'MaterialCommunityIcons',
53 | },
54 | eraser: {
55 | sfSymbol: 'eraser',
56 | type: 'MaterialCommunityIcons',
57 | },
58 | 'eraser-variant': {
59 | sfSymbol: 'eraser.fill',
60 | type: 'MaterialCommunityIcons',
61 | },
62 | 'pencil-box-outline': {
63 | sfSymbol: 'square.and.pencil',
64 | type: 'MaterialCommunityIcons',
65 | },
66 | 'drive-file-rename-outline': {
67 | sfSymbol: 'rectangle.and.pencil.and.ellipsis',
68 | type: 'MaterialIcons',
69 | },
70 | draw: {
71 | sfSymbol: 'pencil.and.scribble',
72 | type: 'MaterialCommunityIcons',
73 | },
74 | marker: {
75 | sfSymbol: 'highlighter',
76 | type: 'MaterialCommunityIcons',
77 | },
78 | 'fountain-pen-tip': {
79 | sfSymbol: 'pencil.tip',
80 | type: 'MaterialCommunityIcons',
81 | },
82 | 'pencil-plus-outline': {
83 | sfSymbol: 'pencil.tip.crop.circle.badge.plus',
84 | type: 'MaterialCommunityIcons',
85 | },
86 | 'pen-plus': {
87 | sfSymbol: 'pencil.tip.crop.circle.badge.plus.fill',
88 | type: 'MaterialCommunityIcons',
89 | },
90 | 'pencil-minus-outline': {
91 | sfSymbol: 'pencil.tip.crop.circle.badge.minus',
92 | type: 'MaterialCommunityIcons',
93 | },
94 | 'pen-minus': {
95 | sfSymbol: 'pencil.tip.crop.circle.badge.minus.fill',
96 | type: 'MaterialCommunityIcons',
97 | },
98 | lasso: {
99 | sfSymbol: 'lasso',
100 | type: 'MaterialCommunityIcons',
101 | },
102 | 'trash-can-outline': {
103 | sfSymbol: 'trash',
104 | type: 'MaterialCommunityIcons',
105 | },
106 | 'trash-can': {
107 | sfSymbol: 'trash.fill',
108 | type: 'MaterialCommunityIcons',
109 | },
110 | 'delete-circle-outline': {
111 | sfSymbol: 'trash.circle',
112 | type: 'MaterialCommunityIcons',
113 | },
114 | 'delete-circle': {
115 | sfSymbol: 'trash.circle.fill',
116 | type: 'MaterialCommunityIcons',
117 | },
118 | 'delete-off-outline': {
119 | sfSymbol: 'trash.slash',
120 | type: 'MaterialCommunityIcons',
121 | },
122 | 'delete-off': {
123 | sfSymbol: 'trash.slash.fill',
124 | type: 'MaterialCommunityIcons',
125 | },
126 | 'restore-from-trash': {
127 | sfSymbol: 'arrow.up.trash.fill',
128 | type: 'MaterialIcons',
129 | },
130 | 'folder-open': {
131 | sfSymbol: 'folder',
132 | type: 'MaterialIcons',
133 | },
134 | //
135 | folder: {
136 | sfSymbol: 'folder.fill',
137 | type: 'MaterialCommunityIcons',
138 | },
139 | 'folder-plus-outline': {
140 | sfSymbol: 'folder.badge.plus',
141 | type: 'MaterialCommunityIcons',
142 | },
143 | 'folder-plus': {
144 | sfSymbol: 'folder.fill.badge.plus',
145 | type: 'MaterialCommunityIcons',
146 | },
147 | 'folder-remove-outline': {
148 | sfSymbol: 'folder.badge.minus',
149 | type: 'MaterialCommunityIcons',
150 | },
151 | 'folder-remove': {
152 | sfSymbol: 'folder.fill.badge.minus',
153 | type: 'MaterialCommunityIcons',
154 | },
155 | 'folder-account-outline': {
156 | sfSymbol: 'folder.badge.person.crop',
157 | type: 'MaterialCommunityIcons',
158 | },
159 | 'folder-account': {
160 | sfSymbol: 'folder.fill.badge.person.crop',
161 | type: 'MaterialCommunityIcons',
162 | },
163 | 'folder-cog-outline': {
164 | sfSymbol: 'folder.badge.gearshape',
165 | type: 'MaterialCommunityIcons',
166 | },
167 | 'folder-cog': {
168 | sfSymbol: 'folder.fill.badge.gearshape',
169 | type: 'MaterialCommunityIcons',
170 | },
171 | 'send-outline': {
172 | sfSymbol: 'paperplane',
173 | type: 'MaterialCommunityIcons',
174 | },
175 | send: {
176 | sfSymbol: 'paperplane.fill',
177 | type: 'MaterialCommunityIcons',
178 | },
179 | 'send-circle-outline': {
180 | sfSymbol: 'paperplane.circle',
181 | type: 'MaterialCommunityIcons',
182 | },
183 | 'send-circle': {
184 | sfSymbol: 'paperplane.circle.fill',
185 | type: 'MaterialCommunityIcons',
186 | },
187 | tray: {
188 | sfSymbol: 'tray',
189 | type: 'MaterialCommunityIcons',
190 | },
191 | inbox: {
192 | sfSymbol: 'tray.fill',
193 | type: 'MaterialCommunityIcons',
194 | },
195 | 'inbox-full-outline': {
196 | sfSymbol: 'tray.full',
197 | type: 'MaterialCommunityIcons',
198 | },
199 | 'inbox-full': {
200 | sfSymbol: 'tray.full.fill',
201 | type: 'MaterialCommunityIcons',
202 | },
203 | 'inbox-arrow-up-outline': {
204 | sfSymbol: 'tray.and.arrow.up',
205 | type: 'MaterialCommunityIcons',
206 | },
207 | 'inbox-arrow-up': {
208 | sfSymbol: 'tray.and.arrow.up.fill',
209 | type: 'MaterialCommunityIcons',
210 | },
211 | 'inbox-arrow-down-outline': {
212 | sfSymbol: 'tray.and.arrow.down',
213 | type: 'MaterialCommunityIcons',
214 | },
215 | 'inbox-arrow-down': {
216 | sfSymbol: 'tray.and.arrow.down.fill',
217 | type: 'MaterialCommunityIcons',
218 | },
219 | 'inbox-multiple-outline': {
220 | sfSymbol: 'tray.2',
221 | type: 'MaterialCommunityIcons',
222 | },
223 | 'inbox-multiple': {
224 | sfSymbol: 'tray.2.fill',
225 | type: 'MaterialCommunityIcons',
226 | },
227 | 'database-outline': {
228 | sfSymbol: 'externaldrive',
229 | type: 'MaterialCommunityIcons',
230 | },
231 | database: {
232 | sfSymbol: 'externaldrive.fill',
233 | type: 'MaterialCommunityIcons',
234 | },
235 | 'database-plus-outline': {
236 | sfSymbol: 'externaldrive.badge.plus',
237 | type: 'MaterialCommunityIcons',
238 | },
239 | 'database-plus': {
240 | sfSymbol: 'externaldrive.fill.badge.plus',
241 | type: 'MaterialCommunityIcons',
242 | },
243 | 'database-minus-outline': {
244 | sfSymbol: 'externaldrive.badge.minus',
245 | type: 'MaterialCommunityIcons',
246 | },
247 | 'database-minus': {
248 | sfSymbol: 'externaldrive.fill.badge.minus',
249 | type: 'MaterialCommunityIcons',
250 | },
251 | 'database-check-outline': {
252 | sfSymbol: 'externaldrive.badge.checkmark',
253 | type: 'MaterialCommunityIcons',
254 | },
255 | 'database-check': {
256 | sfSymbol: 'externaldrive.fill.badge.checkmark',
257 | type: 'MaterialCommunityIcons',
258 | },
259 | 'database-remove-outline': {
260 | sfSymbol: 'externaldrive.badge.xmark',
261 | type: 'MaterialCommunityIcons',
262 | },
263 | 'database-remove': {
264 | sfSymbol: 'externaldrive.fill.badge.xmark',
265 | type: 'MaterialCommunityIcons',
266 | },
267 | 'database-alert-outline': {
268 | sfSymbol: 'externaldrive.badge.exclamationmark',
269 | type: 'MaterialCommunityIcons',
270 | },
271 | 'database-alert': {
272 | sfSymbol: 'externaldrive.fill.badge.exclamationmark',
273 | type: 'MaterialCommunityIcons',
274 | },
275 | 'database-clock-outline': {
276 | sfSymbol: 'externaldrive.badge.timemachine',
277 | type: 'MaterialCommunityIcons',
278 | },
279 | 'database-clock': {
280 | sfSymbol: 'externaldrive.fill.badge.timemachine',
281 | type: 'MaterialCommunityIcons',
282 | },
283 | 'archive-outline': {
284 | sfSymbol: 'archivebox',
285 | type: 'MaterialCommunityIcons',
286 | },
287 | archive: {
288 | sfSymbol: 'archivebox.fill',
289 | type: 'MaterialCommunityIcons',
290 | },
291 | 'archive-remove-outline': {
292 | sfSymbol: 'xmark.bin',
293 | type: 'MaterialCommunityIcons',
294 | },
295 | 'archive-remove': {
296 | sfSymbol: 'xmark.bin.fill',
297 | type: 'MaterialCommunityIcons',
298 | },
299 | 'archive-arrow-up-outline': {
300 | sfSymbol: 'arrow.up.bin',
301 | type: 'MaterialCommunityIcons',
302 | },
303 | 'archive-arrow-up': {
304 | sfSymbol: 'arrow.up.bin.fill',
305 | type: 'MaterialCommunityIcons',
306 | },
307 | 'file-document-outline': {
308 | sfSymbol: 'doc',
309 | type: 'MaterialCommunityIcons',
310 | },
311 | 'file-document': {
312 | sfSymbol: 'doc.fill',
313 | type: 'MaterialCommunityIcons',
314 | },
315 | 'file-plus-outline': {
316 | sfSymbol: 'doc.badge.plus',
317 | type: 'MaterialCommunityIcons',
318 | },
319 | 'file-plus': {
320 | sfSymbol: 'doc.fill.badge.plus',
321 | type: 'MaterialCommunityIcons',
322 | },
323 | 'file-upload-outline': {
324 | sfSymbol: 'arrow.up.doc',
325 | type: 'MaterialCommunityIcons',
326 | },
327 | 'file-upload': {
328 | sfSymbol: 'arrow.up.doc.fill',
329 | type: 'MaterialCommunityIcons',
330 | },
331 | 'file-clock-outline': {
332 | sfSymbol: 'doc.badge.clock',
333 | type: 'MaterialCommunityIcons',
334 | },
335 | 'file-clock': {
336 | sfSymbol: 'doc.badge.clock.fill',
337 | type: 'MaterialCommunityIcons',
338 | },
339 | 'file-cog-outline': {
340 | sfSymbol: 'doc.badge.gearshape',
341 | type: 'MaterialCommunityIcons',
342 | },
343 | 'file-cog': {
344 | sfSymbol: 'doc.badge.gearshape.fill',
345 | type: 'MaterialCommunityIcons',
346 | },
347 | 'file-lock-outline': {
348 | sfSymbol: 'lock.doc',
349 | type: 'MaterialCommunityIcons',
350 | },
351 | 'file-lock': {
352 | sfSymbol: 'lock.doc.fill',
353 | type: 'MaterialCommunityIcons',
354 | },
355 | 'file-download-outline': {
356 | sfSymbol: 'arrow.down.doc',
357 | type: 'MaterialCommunityIcons',
358 | },
359 | 'file-download': {
360 | sfSymbol: 'arrow.down.doc.fill',
361 | type: 'MaterialCommunityIcons',
362 | },
363 | 'file-document-multiple-outline': {
364 | sfSymbol: 'doc.on.doc',
365 | type: 'MaterialCommunityIcons',
366 | },
367 | 'file-document-multiple': {
368 | sfSymbol: 'doc.on.doc.fill',
369 | type: 'MaterialCommunityIcons',
370 | },
371 | 'file-copy': {
372 | sfSymbol: 'doc.on.clipboard.fill',
373 | type: 'MaterialIcons',
374 | },
375 | 'clipboard-outline': {
376 | sfSymbol: 'clipboard',
377 | type: 'MaterialCommunityIcons',
378 | },
379 | clipboard: {
380 | sfSymbol: 'clipboard.fill',
381 | type: 'MaterialCommunityIcons',
382 | },
383 | 'clipboard-list-outline': {
384 | sfSymbol: 'list.clipboard',
385 | type: 'MaterialCommunityIcons',
386 | },
387 | 'clipboard-list': {
388 | sfSymbol: 'list.clipboard.fill',
389 | type: 'MaterialCommunityIcons',
390 | },
391 | 'clipboard-edit-outline': {
392 | sfSymbol: 'pencil.and.list.clipboard',
393 | type: 'MaterialCommunityIcons',
394 | },
395 | 'image-text': {
396 | sfSymbol: 'doc.richtext',
397 | type: 'MaterialCommunityIcons',
398 | },
399 | 'file-question-outline': {
400 | sfSymbol: 'doc.questionmark',
401 | type: 'MaterialCommunityIcons',
402 | },
403 | 'file-question': {
404 | sfSymbol: 'doc.questionmark.fill',
405 | type: 'MaterialCommunityIcons',
406 | },
407 | 'card-bulleted-outline': {
408 | sfSymbol: 'list.bullet.rectangle',
409 | type: 'MaterialCommunityIcons',
410 | },
411 | 'card-bulleted': {
412 | sfSymbol: 'list.bullet.rectangle.fill',
413 | type: 'MaterialCommunityIcons',
414 | },
415 | 'file-search-outline': {
416 | sfSymbol: 'doc.text.magnifyingglass',
417 | type: 'MaterialCommunityIcons',
418 | },
419 | 'note-outline': {
420 | sfSymbol: 'note',
421 | type: 'MaterialCommunityIcons',
422 | },
423 | 'note-text-outline': {
424 | sfSymbol: 'note.text',
425 | type: 'MaterialCommunityIcons',
426 | },
427 | 'calendar-month': {
428 | sfSymbol: 'calendar',
429 | type: 'MaterialCommunityIcons',
430 | },
431 | 'calendar-plus': {
432 | sfSymbol: 'calendar.badge.plus',
433 | type: 'MaterialCommunityIcons',
434 | },
435 | 'calendar-minus': {
436 | sfSymbol: 'calendar.badge.minus',
437 | type: 'MaterialCommunityIcons',
438 | },
439 | 'calendar-clock': {
440 | sfSymbol: 'calendar.badge.clock',
441 | type: 'MaterialCommunityIcons',
442 | },
443 | 'calendar-alert': {
444 | sfSymbol: 'calendar.badge.exclamationmark',
445 | type: 'MaterialCommunityIcons',
446 | },
447 | 'calendar-check': {
448 | sfSymbol: 'calendar.badge.checkmark',
449 | type: 'MaterialCommunityIcons',
450 | },
451 | 'arrow-left-bold-outline': {
452 | sfSymbol: 'arrowshape.left',
453 | type: 'MaterialCommunityIcons',
454 | },
455 | 'arrow-left-bold': {
456 | sfSymbol: 'arrowshape.left.fill',
457 | type: 'MaterialCommunityIcons',
458 | },
459 | 'arrow-left-bold-circle-outline': {
460 | sfSymbol: 'arrowshape.left.circle',
461 | type: 'MaterialCommunityIcons',
462 | },
463 | 'arrow-left-bold-circle': {
464 | sfSymbol: 'arrowshape.left.circle.fill',
465 | type: 'MaterialCommunityIcons',
466 | },
467 | 'arrow-right-bold-outline': {
468 | sfSymbol: 'arrowshape.right',
469 | type: 'MaterialCommunityIcons',
470 | },
471 | 'arrow-right-bold': {
472 | sfSymbol: 'arrowshape.right.fill',
473 | type: 'MaterialCommunityIcons',
474 | },
475 | 'arrow-right-bold-circle-outline': {
476 | sfSymbol: 'arrowshape.right.circle',
477 | type: 'MaterialCommunityIcons',
478 | },
479 | 'arrow-right-bold-circle': {
480 | sfSymbol: 'arrowshape.right.circle.fill',
481 | type: 'MaterialCommunityIcons',
482 | },
483 | 'arrow-up-bold-outline': {
484 | sfSymbol: 'arrowshape.up',
485 | type: 'MaterialCommunityIcons',
486 | },
487 | 'arrow-up-bold': {
488 | sfSymbol: 'arrowshape.up.fill',
489 | type: 'MaterialCommunityIcons',
490 | },
491 | 'arrow-up-bold-circle-outline': {
492 | sfSymbol: 'arrowshape.up.circle',
493 | type: 'MaterialCommunityIcons',
494 | },
495 | 'arrow-up-bold-circle': {
496 | sfSymbol: 'arrowshape.up.circle.fill',
497 | type: 'MaterialCommunityIcons',
498 | },
499 | 'arrow-down-bold-outline': {
500 | sfSymbol: 'arrowshape.down',
501 | type: 'MaterialCommunityIcons',
502 | },
503 | 'arrow-down-bold': {
504 | sfSymbol: 'arrowshape.down.fill',
505 | type: 'MaterialCommunityIcons',
506 | },
507 | 'arrow-down-bold-circle-outline': {
508 | sfSymbol: 'arrowshape.down.circle',
509 | type: 'MaterialCommunityIcons',
510 | },
511 | 'arrow-down-bold-circle': {
512 | sfSymbol: 'arrowshape.down.circle.fill',
513 | type: 'MaterialCommunityIcons',
514 | },
515 | 'arrow-left-right-bold-outline': {
516 | sfSymbol: 'arrowshape.left.arrowshape.right',
517 | type: 'MaterialCommunityIcons',
518 | },
519 | 'arrow-left-right-bold': {
520 | sfSymbol: 'arrowshape.left.arrowshape.right.fill',
521 | type: 'MaterialCommunityIcons',
522 | },
523 | 'arrow-left-top': {
524 | sfSymbol: 'arrowshape.turn.up.left',
525 | type: 'MaterialCommunityIcons',
526 | },
527 | 'arrow-left-top-bold': {
528 | sfSymbol: 'arrowshape.turn.up.left.fill',
529 | type: 'MaterialCommunityIcons',
530 | },
531 | 'arrow-right-top': {
532 | sfSymbol: 'arrowshape.turn.up.right',
533 | type: 'MaterialCommunityIcons',
534 | },
535 | 'arrow-right-top-bold': {
536 | sfSymbol: 'arrowshape.turn.up.right.fill',
537 | type: 'MaterialCommunityIcons',
538 | },
539 | 'book-open-outline': {
540 | sfSymbol: 'book',
541 | type: 'MaterialCommunityIcons',
542 | },
543 | 'book-open': {
544 | sfSymbol: 'book.fill',
545 | type: 'MaterialCommunityIcons',
546 | },
547 | bookshelf: {
548 | sfSymbol: 'books.vertical.fill',
549 | type: 'MaterialCommunityIcons',
550 | },
551 | 'menu-book': {
552 | sfSymbol: 'menucard.fill',
553 | type: 'MaterialIcons',
554 | },
555 | newspaper: {
556 | sfSymbol: 'newspaper',
557 | type: 'MaterialCommunityIcons',
558 | },
559 | 'newspaper-variant': {
560 | sfSymbol: 'newspaper.fill',
561 | type: 'MaterialCommunityIcons',
562 | },
563 | 'bookmark-outline': {
564 | sfSymbol: 'bookmark',
565 | type: 'MaterialCommunityIcons',
566 | },
567 | bookmark: {
568 | sfSymbol: 'bookmark.fill',
569 | type: 'MaterialCommunityIcons',
570 | },
571 | 'bookmark-off-outline': {
572 | sfSymbol: 'bookmark.slash',
573 | type: 'MaterialCommunityIcons',
574 | },
575 | 'bookmark-off': {
576 | sfSymbol: 'bookmark.slash.fill',
577 | type: 'MaterialCommunityIcons',
578 | },
579 | 'pencil-ruler': {
580 | sfSymbol: 'pencil.and.ruler.fill',
581 | type: 'MaterialCommunityIcons',
582 | },
583 | ruler: {
584 | sfSymbol: 'ruler.fill',
585 | type: 'MaterialCommunityIcons',
586 | },
587 | backpack: {
588 | sfSymbol: 'backpack.fill',
589 | type: 'MaterialIcons',
590 | },
591 | paperclip: {
592 | sfSymbol: 'paperclip',
593 | type: 'MaterialCommunityIcons',
594 | },
595 | link: {
596 | sfSymbol: 'link',
597 | type: 'MaterialCommunityIcons',
598 | },
599 | 'link-plus': {
600 | sfSymbol: 'link.badge.plus',
601 | type: 'MaterialCommunityIcons',
602 | },
603 | 'vector-link': {
604 | sfSymbol: 'personalhotspot',
605 | type: 'MaterialCommunityIcons',
606 | },
607 | 'person-outline': {
608 | sfSymbol: 'person',
609 | type: 'MaterialIcons',
610 | },
611 | person: {
612 | sfSymbol: 'person.fill',
613 | type: 'MaterialIcons',
614 | },
615 | 'account-circle-outline': {
616 | sfSymbol: 'person.circle',
617 | type: 'MaterialCommunityIcons',
618 | },
619 | 'account-circle': {
620 | sfSymbol: 'person.circle.fill',
621 | type: 'MaterialCommunityIcons',
622 | },
623 | 'account-off-outline': {
624 | sfSymbol: 'person.slash',
625 | type: 'MaterialCommunityIcons',
626 | },
627 | 'account-off': {
628 | sfSymbol: 'person.slash.fill',
629 | type: 'MaterialCommunityIcons',
630 | },
631 | 'account-check': {
632 | sfSymbol: 'person.fill.checkmark',
633 | type: 'MaterialCommunityIcons',
634 | },
635 | 'account-remove': {
636 | sfSymbol: 'person.fill.xmark',
637 | type: 'MaterialCommunityIcons',
638 | },
639 | 'account-question': {
640 | sfSymbol: 'person.fill.questionmark',
641 | type: 'MaterialCommunityIcons',
642 | },
643 | 'account-plus-outline': {
644 | sfSymbol: 'person.badge.plus',
645 | type: 'MaterialCommunityIcons',
646 | },
647 | 'account-minus-outline': {
648 | sfSymbol: 'person.badge.minus',
649 | type: 'MaterialCommunityIcons',
650 | },
651 | 'account-clock-outline': {
652 | sfSymbol: 'person.badge.clock',
653 | type: 'MaterialCommunityIcons',
654 | },
655 | 'account-clock': {
656 | sfSymbol: 'person.badge.clock.fill',
657 | type: 'MaterialCommunityIcons',
658 | },
659 | 'account-key-outline': {
660 | sfSymbol: 'person.badge.key',
661 | type: 'MaterialCommunityIcons',
662 | },
663 | 'account-key': {
664 | sfSymbol: 'person.badge.key.fill',
665 | type: 'MaterialCommunityIcons',
666 | },
667 | 'account-multiple-outline': {
668 | sfSymbol: 'person.2',
669 | type: 'MaterialCommunityIcons',
670 | },
671 | 'account-multiple': {
672 | sfSymbol: 'person.2.fill',
673 | type: 'MaterialCommunityIcons',
674 | },
675 | 'account-voice': {
676 | sfSymbol: 'person.wave.2.fill',
677 | type: 'MaterialCommunityIcons',
678 | },
679 | 'image-frame': {
680 | sfSymbol: 'photo.artframe',
681 | type: 'MaterialCommunityIcons',
682 | },
683 | checkerboard: {
684 | sfSymbol: 'rectangle.checkered',
685 | type: 'MaterialCommunityIcons',
686 | },
687 | accessibility: {
688 | sfSymbol: 'accessibility',
689 | type: 'MaterialIcons',
690 | },
691 | dumbbell: {
692 | sfSymbol: 'dumbbell.fill',
693 | type: 'MaterialCommunityIcons',
694 | },
695 | 'soccer-field': {
696 | sfSymbol: 'sportscourt',
697 | type: 'MaterialCommunityIcons',
698 | },
699 | soccer: {
700 | sfSymbol: 'soccerball',
701 | type: 'MaterialCommunityIcons',
702 | },
703 | baseball: {
704 | sfSymbol: 'baseball.fill',
705 | type: 'MaterialCommunityIcons',
706 | },
707 | basketball: {
708 | sfSymbol: 'basketball.fill',
709 | type: 'MaterialCommunityIcons',
710 | },
711 | football: {
712 | sfSymbol: 'football.fill',
713 | type: 'MaterialCommunityIcons',
714 | },
715 | tennis: {
716 | sfSymbol: 'tennis.racket',
717 | type: 'MaterialCommunityIcons',
718 | },
719 | 'hockey-puck': {
720 | sfSymbol: 'hockey.puck.fill',
721 | type: 'MaterialCommunityIcons',
722 | },
723 | cricket: {
724 | sfSymbol: 'cricket.ball.fill',
725 | type: 'MaterialCommunityIcons',
726 | },
727 | 'tennis-ball': {
728 | sfSymbol: 'tennisball.fill',
729 | type: 'MaterialCommunityIcons',
730 | },
731 | volleyball: {
732 | sfSymbol: 'volleyball.fill',
733 | type: 'MaterialCommunityIcons',
734 | },
735 | skateboard: {
736 | sfSymbol: 'skateboard',
737 | type: 'MaterialCommunityIcons',
738 | },
739 | ski: {
740 | sfSymbol: 'skis',
741 | type: 'MaterialCommunityIcons',
742 | },
743 | surfing: {
744 | sfSymbol: 'surfboard',
745 | type: 'MaterialCommunityIcons',
746 | },
747 | 'trophy-outline': {
748 | sfSymbol: 'trophy',
749 | type: 'MaterialCommunityIcons',
750 | },
751 | trophy: {
752 | sfSymbol: 'trophy.fill',
753 | type: 'MaterialCommunityIcons',
754 | },
755 | 'medal-outline': {
756 | sfSymbol: 'medal',
757 | type: 'MaterialCommunityIcons',
758 | },
759 | medal: {
760 | sfSymbol: 'medal.fill',
761 | type: 'MaterialCommunityIcons',
762 | },
763 | 'apple-keyboard-command': {
764 | sfSymbol: 'command',
765 | type: 'MaterialCommunityIcons',
766 | },
767 | 'keyboard-space': {
768 | sfSymbol: 'space',
769 | type: 'MaterialCommunityIcons',
770 | },
771 | 'apple-keyboard-option': {
772 | sfSymbol: 'option',
773 | type: 'MaterialCommunityIcons',
774 | },
775 | restart: {
776 | sfSymbol: 'restart',
777 | type: 'MaterialCommunityIcons',
778 | },
779 | sleep: {
780 | sfSymbol: 'zzz',
781 | type: 'MaterialCommunityIcons',
782 | },
783 | power: {
784 | sfSymbol: 'power',
785 | type: 'MaterialCommunityIcons',
786 | },
787 | 'power-cycle': {
788 | sfSymbol: 'togglepower',
789 | type: 'MaterialCommunityIcons',
790 | },
791 | 'power-on': {
792 | sfSymbol: 'poweron',
793 | type: 'MaterialCommunityIcons',
794 | },
795 | 'power-off': {
796 | sfSymbol: 'poweroff',
797 | type: 'MaterialCommunityIcons',
798 | },
799 | 'power-sleep': {
800 | sfSymbol: 'powersleep',
801 | type: 'MaterialCommunityIcons',
802 | },
803 | 'alpha-x-box-outline': {
804 | sfSymbol: 'clear',
805 | type: 'MaterialCommunityIcons',
806 | },
807 | 'alpha-x-box': {
808 | sfSymbol: 'clear.fill',
809 | type: 'MaterialCommunityIcons',
810 | },
811 | 'keyboard-backspace': {
812 | sfSymbol: 'delete.left',
813 | type: 'MaterialCommunityIcons',
814 | },
815 | 'apple-keyboard-shift': {
816 | sfSymbol: 'shift',
817 | type: 'MaterialCommunityIcons',
818 | },
819 | 'apple-keyboard-caps': {
820 | sfSymbol: 'capslock',
821 | type: 'MaterialCommunityIcons',
822 | },
823 | 'keyboard-outline': {
824 | sfSymbol: 'keyboard',
825 | type: 'MaterialCommunityIcons',
826 | },
827 | keyboard: {
828 | sfSymbol: 'keyboard.fill',
829 | type: 'MaterialCommunityIcons',
830 | },
831 | 'keyboard-settings-outline': {
832 | sfSymbol: 'keyboard.badge.ellipsis',
833 | type: 'MaterialCommunityIcons',
834 | },
835 | 'keyboard-settings': {
836 | sfSymbol: 'keyboard.badge.ellipsis.fill',
837 | type: 'MaterialCommunityIcons',
838 | },
839 | web: {
840 | sfSymbol: 'globe',
841 | type: 'MaterialCommunityIcons',
842 | },
843 | 'access-point-network': {
844 | sfSymbol: 'network',
845 | type: 'MaterialCommunityIcons',
846 | },
847 | 'access-point-network-off': {
848 | sfSymbol: 'network.slash',
849 | type: 'MaterialCommunityIcons',
850 | },
851 | 'weather-sunny': {
852 | sfSymbol: 'sun.min',
853 | type: 'MaterialCommunityIcons',
854 | },
855 | 'white-balance-sunny': {
856 | sfSymbol: 'sun.max.fill',
857 | type: 'MaterialCommunityIcons',
858 | },
859 | 'weather-sunny-alert': {
860 | sfSymbol: 'sun.max.trianglebadge.exclamationmark',
861 | type: 'MaterialCommunityIcons',
862 | },
863 | 'weather-night': {
864 | sfSymbol: 'moon.stars',
865 | type: 'MaterialCommunityIcons',
866 | },
867 | 'nightlight-round': {
868 | sfSymbol: 'moon.fill',
869 | type: 'MaterialIcons',
870 | },
871 | 'star-four-points': {
872 | sfSymbol: 'sparkle',
873 | type: 'MaterialCommunityIcons',
874 | },
875 | 'cloud-outline': {
876 | sfSymbol: 'cloud',
877 | type: 'MaterialCommunityIcons',
878 | },
879 | cloud: {
880 | sfSymbol: 'cloud.fill',
881 | type: 'MaterialCommunityIcons',
882 | },
883 | 'weather-rainy': {
884 | sfSymbol: 'cloud.rain',
885 | type: 'MaterialCommunityIcons',
886 | },
887 | 'weather-lightning': {
888 | sfSymbol: 'cloud.bolt',
889 | type: 'MaterialCommunityIcons',
890 | },
891 | 'weather-tornado': {
892 | sfSymbol: 'tornado',
893 | type: 'MaterialCommunityIcons',
894 | },
895 | 'sun-thermometer-outline': {
896 | sfSymbol: 'thermometer.sun',
897 | type: 'MaterialCommunityIcons',
898 | },
899 | 'sun-thermometer': {
900 | sfSymbol: 'thermometer.sun.fill',
901 | type: 'MaterialCommunityIcons',
902 | },
903 | 'water-outline': {
904 | sfSymbol: 'drop',
905 | type: 'MaterialCommunityIcons',
906 | },
907 | water: {
908 | sfSymbol: 'drop.fill',
909 | type: 'MaterialCommunityIcons',
910 | },
911 | 'water-circle': {
912 | sfSymbol: 'drop.circle.fill',
913 | type: 'MaterialCommunityIcons',
914 | },
915 | fire: {
916 | sfSymbol: 'flame',
917 | type: 'MaterialCommunityIcons',
918 | },
919 | 'fire-circle': {
920 | sfSymbol: 'flame.circle',
921 | type: 'MaterialCommunityIcons',
922 | },
923 | 'umbrella-outline': {
924 | sfSymbol: 'umbrella',
925 | type: 'MaterialCommunityIcons',
926 | },
927 | umbrella: {
928 | sfSymbol: 'umbrella.fill',
929 | type: 'MaterialCommunityIcons',
930 | },
931 | 'play-outline': {
932 | sfSymbol: 'play',
933 | type: 'MaterialCommunityIcons',
934 | },
935 | play: {
936 | sfSymbol: 'play.fill',
937 | type: 'MaterialCommunityIcons',
938 | },
939 | 'play-circle-outline': {
940 | sfSymbol: 'play.circle',
941 | type: 'MaterialCommunityIcons',
942 | },
943 | 'play-circle': {
944 | sfSymbol: 'play.circle.fill',
945 | type: 'MaterialCommunityIcons',
946 | },
947 | 'play-box-outline': {
948 | sfSymbol: 'play.square',
949 | type: 'MaterialCommunityIcons',
950 | },
951 | 'play-box': {
952 | sfSymbol: 'play.square.fill',
953 | type: 'MaterialCommunityIcons',
954 | },
955 | 'play-box-multiple-outline': {
956 | sfSymbol: 'play.square.stack',
957 | type: 'MaterialCommunityIcons',
958 | },
959 | 'play-box-multiple': {
960 | sfSymbol: 'play.square.stack.fill',
961 | type: 'MaterialCommunityIcons',
962 | },
963 | pause: {
964 | sfSymbol: 'pause',
965 | type: 'MaterialCommunityIcons',
966 | },
967 | 'pause-circle-outline': {
968 | sfSymbol: 'pause.circle',
969 | type: 'MaterialCommunityIcons',
970 | },
971 | 'pause-circle': {
972 | sfSymbol: 'pause.circle.fill',
973 | type: 'MaterialCommunityIcons',
974 | },
975 | stop: {
976 | sfSymbol: 'stop.fill',
977 | type: 'MaterialCommunityIcons',
978 | },
979 | 'stop-circle-outline': {
980 | sfSymbol: 'stop.circle',
981 | type: 'MaterialCommunityIcons',
982 | },
983 | 'stop-circle': {
984 | sfSymbol: 'stop.circle.fill',
985 | type: 'MaterialCommunityIcons',
986 | },
987 | 'record-circle-outline': {
988 | sfSymbol: 'record.circle',
989 | type: 'MaterialCommunityIcons',
990 | },
991 | 'record-circle': {
992 | sfSymbol: 'record.circle.fill',
993 | type: 'MaterialCommunityIcons',
994 | },
995 | 'play-pause': {
996 | sfSymbol: 'playpause.fill',
997 | type: 'MaterialCommunityIcons',
998 | },
999 | 'rewind-outline': {
1000 | sfSymbol: 'backward',
1001 | type: 'MaterialCommunityIcons',
1002 | },
1003 | rewind: {
1004 | sfSymbol: 'backward.fill',
1005 | type: 'MaterialCommunityIcons',
1006 | },
1007 | 'fast-forward-outline': {
1008 | sfSymbol: 'forward',
1009 | type: 'MaterialCommunityIcons',
1010 | },
1011 | 'fast-forward': {
1012 | sfSymbol: 'forward.fill',
1013 | type: 'MaterialCommunityIcons',
1014 | },
1015 | 'skip-backward-outline': {
1016 | sfSymbol: 'backward.end',
1017 | type: 'MaterialCommunityIcons',
1018 | },
1019 | 'skip-backward': {
1020 | sfSymbol: 'backward.end.fill',
1021 | type: 'MaterialCommunityIcons',
1022 | },
1023 | 'skip-forward-outline': {
1024 | sfSymbol: 'forward.end',
1025 | type: 'MaterialCommunityIcons',
1026 | },
1027 | 'skip-forward': {
1028 | sfSymbol: 'forward.end.fill',
1029 | type: 'MaterialCommunityIcons',
1030 | },
1031 | 'step-backward': {
1032 | sfSymbol: 'backward.frame.fill',
1033 | type: 'MaterialCommunityIcons',
1034 | },
1035 | 'step-forward': {
1036 | sfSymbol: 'forward.frame.fill',
1037 | type: 'MaterialCommunityIcons',
1038 | },
1039 | shuffle: {
1040 | sfSymbol: 'shuffle',
1041 | type: 'MaterialCommunityIcons',
1042 | },
1043 | repeat: {
1044 | sfSymbol: 'repeat',
1045 | type: 'MaterialCommunityIcons',
1046 | },
1047 | 'repeat-once': {
1048 | sfSymbol: 'repeat.1',
1049 | type: 'MaterialCommunityIcons',
1050 | },
1051 | infinity: {
1052 | sfSymbol: 'infinity',
1053 | type: 'MaterialCommunityIcons',
1054 | },
1055 | 'bullhorn-outline': {
1056 | sfSymbol: 'megaphone',
1057 | type: 'MaterialCommunityIcons',
1058 | },
1059 | bullhorn: {
1060 | sfSymbol: 'megaphone.fill',
1061 | type: 'MaterialCommunityIcons',
1062 | },
1063 | 'volume-low': {
1064 | sfSymbol: 'speaker.fill',
1065 | type: 'MaterialCommunityIcons',
1066 | },
1067 | 'volume-plus': {
1068 | sfSymbol: 'speaker.plus.fill',
1069 | type: 'MaterialCommunityIcons',
1070 | },
1071 | 'volume-minus': {
1072 | sfSymbol: 'speaker.minus.fill',
1073 | type: 'MaterialCommunityIcons',
1074 | },
1075 | 'volume-variant-off': {
1076 | sfSymbol: 'speaker.slash.fill',
1077 | type: 'MaterialCommunityIcons',
1078 | },
1079 | 'volume-medium': {
1080 | sfSymbol: 'speaker.wave.1.fill',
1081 | type: 'MaterialCommunityIcons',
1082 | },
1083 | 'volume-high': {
1084 | sfSymbol: 'speaker.wave.3.fill',
1085 | type: 'MaterialCommunityIcons',
1086 | },
1087 | 'music-note': {
1088 | sfSymbol: 'music.note',
1089 | type: 'MaterialCommunityIcons',
1090 | },
1091 | 'playlist-music': {
1092 | sfSymbol: 'music.note.list',
1093 | type: 'MaterialCommunityIcons',
1094 | },
1095 | 'microphone-variant': {
1096 | sfSymbol: 'music.mic',
1097 | type: 'MaterialCommunityIcons',
1098 | },
1099 | magnify: {
1100 | sfSymbol: 'magnifyingglass',
1101 | type: 'MaterialCommunityIcons',
1102 | },
1103 | 'magnify-minus-outline': {
1104 | sfSymbol: 'minus.magnifyingglass',
1105 | type: 'MaterialCommunityIcons',
1106 | },
1107 | 'magnify-plus-outline': {
1108 | sfSymbol: 'plus.magnifyingglass',
1109 | type: 'MaterialCommunityIcons',
1110 | },
1111 | 'microphone-outline': {
1112 | sfSymbol: 'mic',
1113 | type: 'MaterialCommunityIcons',
1114 | },
1115 | microphone: {
1116 | sfSymbol: 'mic.fill',
1117 | type: 'MaterialCommunityIcons',
1118 | },
1119 | 'microphone-off': {
1120 | sfSymbol: 'mic.slash.fill',
1121 | type: 'MaterialCommunityIcons',
1122 | },
1123 | 'microphone-plus': {
1124 | sfSymbol: 'mic.fill.badge.plus',
1125 | type: 'MaterialCommunityIcons',
1126 | },
1127 | 'circle-outline': {
1128 | sfSymbol: 'circle',
1129 | type: 'MaterialCommunityIcons',
1130 | },
1131 | circle: {
1132 | sfSymbol: 'circle.fill',
1133 | type: 'MaterialCommunityIcons',
1134 | },
1135 | cancel: {
1136 | sfSymbol: 'circle.slash',
1137 | type: 'MaterialCommunityIcons',
1138 | },
1139 | target: {
1140 | sfSymbol: 'target',
1141 | type: 'MaterialCommunityIcons',
1142 | },
1143 | 'square-outline': {
1144 | sfSymbol: 'square',
1145 | type: 'MaterialCommunityIcons',
1146 | },
1147 | square: {
1148 | sfSymbol: 'square.fill',
1149 | type: 'MaterialCommunityIcons',
1150 | },
1151 | 'star-box-multiple-outline': {
1152 | sfSymbol: 'star.square.on.square',
1153 | type: 'MaterialCommunityIcons',
1154 | },
1155 | 'star-box-multiple': {
1156 | sfSymbol: 'star.square.on.square.fill',
1157 | type: 'MaterialCommunityIcons',
1158 | },
1159 | 'plus-box-outline': {
1160 | sfSymbol: 'plus.app',
1161 | type: 'MaterialCommunityIcons',
1162 | },
1163 | 'plus-box': {
1164 | sfSymbol: 'plus.app.fill',
1165 | type: 'MaterialCommunityIcons',
1166 | },
1167 | 'checkbox-blank-badge-outline': {
1168 | sfSymbol: 'app.badge',
1169 | type: 'MaterialCommunityIcons',
1170 | },
1171 | 'checkbox-blank-badge': {
1172 | sfSymbol: 'app.badge.fill',
1173 | type: 'MaterialCommunityIcons',
1174 | },
1175 | 'check-decagram-outline': {
1176 | sfSymbol: 'checkmark.seal',
1177 | type: 'MaterialCommunityIcons',
1178 | },
1179 | 'check-decagram': {
1180 | sfSymbol: 'checkmark.seal.fill',
1181 | type: 'MaterialCommunityIcons',
1182 | },
1183 | 'heart-outline': {
1184 | sfSymbol: 'heart',
1185 | type: 'MaterialCommunityIcons',
1186 | },
1187 | heart: {
1188 | sfSymbol: 'heart.fill',
1189 | type: 'MaterialCommunityIcons',
1190 | },
1191 | 'heart-flash': {
1192 | sfSymbol: 'bolt.heart.fill',
1193 | type: 'MaterialCommunityIcons',
1194 | },
1195 | 'star-outline': {
1196 | sfSymbol: 'star',
1197 | type: 'MaterialCommunityIcons',
1198 | },
1199 | star: {
1200 | sfSymbol: 'star.fill',
1201 | type: 'MaterialCommunityIcons',
1202 | },
1203 | 'shield-outline': {
1204 | sfSymbol: 'shield',
1205 | type: 'MaterialCommunityIcons',
1206 | },
1207 | shield: {
1208 | sfSymbol: 'shield.fill',
1209 | type: 'MaterialCommunityIcons',
1210 | },
1211 | 'flag-outline': {
1212 | sfSymbol: 'flag',
1213 | type: 'MaterialCommunityIcons',
1214 | },
1215 | flag: {
1216 | sfSymbol: 'flag.fill',
1217 | type: 'MaterialCommunityIcons',
1218 | },
1219 | 'bell-outline': {
1220 | sfSymbol: 'bell',
1221 | type: 'MaterialCommunityIcons',
1222 | },
1223 | bell: {
1224 | sfSymbol: 'bell.fill',
1225 | type: 'MaterialCommunityIcons',
1226 | },
1227 | 'tag-outline': {
1228 | sfSymbol: 'tag',
1229 | type: 'MaterialCommunityIcons',
1230 | },
1231 | tag: {
1232 | sfSymbol: 'tag.fill',
1233 | type: 'MaterialCommunityIcons',
1234 | },
1235 | 'lightning-bolt-outline': {
1236 | sfSymbol: 'bolt',
1237 | type: 'MaterialCommunityIcons',
1238 | },
1239 | 'lightning-bolt': {
1240 | sfSymbol: 'bolt.fill',
1241 | type: 'MaterialCommunityIcons',
1242 | },
1243 | 'square-root': {
1244 | sfSymbol: 'x.squareroot',
1245 | type: 'MaterialCommunityIcons',
1246 | },
1247 | flashlight: {
1248 | sfSymbol: 'flashlight.on.fill',
1249 | type: 'MaterialCommunityIcons',
1250 | },
1251 | 'flashlight-off': {
1252 | sfSymbol: 'flashlight.off.fill',
1253 | type: 'MaterialCommunityIcons',
1254 | },
1255 | 'camera-outline': {
1256 | sfSymbol: 'camera',
1257 | type: 'MaterialCommunityIcons',
1258 | },
1259 | camera: {
1260 | sfSymbol: 'camera.fill',
1261 | type: 'MaterialCommunityIcons',
1262 | },
1263 | 'message-outline': {
1264 | sfSymbol: 'message',
1265 | type: 'MaterialCommunityIcons',
1266 | },
1267 | message: {
1268 | sfSymbol: 'message.fill',
1269 | type: 'MaterialCommunityIcons',
1270 | },
1271 | 'message-plus-outline': {
1272 | sfSymbol: 'plus.message',
1273 | type: 'MaterialCommunityIcons',
1274 | },
1275 | 'message-plus': {
1276 | sfSymbol: 'plus.message.fill',
1277 | type: 'MaterialCommunityIcons',
1278 | },
1279 | 'message-processing-outline': {
1280 | sfSymbol: 'ellipsis.message',
1281 | type: 'MaterialCommunityIcons',
1282 | },
1283 | 'message-processing': {
1284 | sfSymbol: 'ellipsis.message.fill',
1285 | type: 'MaterialCommunityIcons',
1286 | },
1287 | 'format-quote-open': {
1288 | sfSymbol: 'quote.opening',
1289 | type: 'MaterialCommunityIcons',
1290 | },
1291 | 'format-quote-close': {
1292 | sfSymbol: 'quote.closing',
1293 | type: 'MaterialCommunityIcons',
1294 | },
1295 | 'comment-quote-outline': {
1296 | sfSymbol: 'quote.bubble',
1297 | type: 'MaterialCommunityIcons',
1298 | },
1299 | 'comment-quote': {
1300 | sfSymbol: 'quote.bubble.fill',
1301 | type: 'MaterialCommunityIcons',
1302 | },
1303 | 'message-star-outline': {
1304 | sfSymbol: 'star.bubble',
1305 | type: 'MaterialCommunityIcons',
1306 | },
1307 | 'message-star': {
1308 | sfSymbol: 'star.bubble.fill',
1309 | type: 'MaterialCommunityIcons',
1310 | },
1311 | 'message-question-outline': {
1312 | sfSymbol: 'questionmark.bubble',
1313 | type: 'MaterialCommunityIcons',
1314 | },
1315 | 'message-question': {
1316 | sfSymbol: 'questionmark.bubble.fill',
1317 | type: 'MaterialCommunityIcons',
1318 | },
1319 | 'phone-outline': {
1320 | sfSymbol: 'phone',
1321 | type: 'MaterialCommunityIcons',
1322 | },
1323 | phone: {
1324 | sfSymbol: 'phone.fill',
1325 | type: 'MaterialCommunityIcons',
1326 | },
1327 | 'phone-plus-outline': {
1328 | sfSymbol: 'phone.badge.plus',
1329 | type: 'MaterialCommunityIcons',
1330 | },
1331 | 'phone-plus': {
1332 | sfSymbol: 'phone.fill.badge.plus',
1333 | type: 'MaterialCommunityIcons',
1334 | },
1335 | 'phone-check-outline': {
1336 | sfSymbol: 'phone.badge.checkmark',
1337 | type: 'MaterialCommunityIcons',
1338 | },
1339 | 'phone-check': {
1340 | sfSymbol: 'phone.fill.badge.checkmark',
1341 | type: 'MaterialCommunityIcons',
1342 | },
1343 | 'video-outline': {
1344 | sfSymbol: 'video',
1345 | type: 'MaterialCommunityIcons',
1346 | },
1347 | video: {
1348 | sfSymbol: 'video.fill',
1349 | type: 'MaterialCommunityIcons',
1350 | },
1351 | 'email-outline': {
1352 | sfSymbol: 'envelope',
1353 | type: 'MaterialCommunityIcons',
1354 | },
1355 | email: {
1356 | sfSymbol: 'envelope.fill',
1357 | type: 'MaterialCommunityIcons',
1358 | },
1359 | 'email-open': {
1360 | sfSymbol: 'envelope.open.fill',
1361 | type: 'MaterialCommunityIcons',
1362 | },
1363 | 'cog-outline': {
1364 | sfSymbol: 'gearshape',
1365 | type: 'MaterialCommunityIcons',
1366 | },
1367 | cog: {
1368 | sfSymbol: 'gearshape.fill',
1369 | type: 'MaterialCommunityIcons',
1370 | },
1371 | 'signature-freehand': {
1372 | sfSymbol: 'signature',
1373 | type: 'MaterialCommunityIcons',
1374 | },
1375 | 'dots-horizontal': {
1376 | sfSymbol: 'ellipsis',
1377 | type: 'MaterialCommunityIcons',
1378 | },
1379 | 'dots-horizontal-circle-outline': {
1380 | sfSymbol: 'ellipsis.circle',
1381 | type: 'MaterialCommunityIcons',
1382 | },
1383 | 'dots-horizontal-circle': {
1384 | sfSymbol: 'ellipsis.circle.fill',
1385 | type: 'MaterialCommunityIcons',
1386 | },
1387 | 'shopping-outline': {
1388 | sfSymbol: 'bag',
1389 | type: 'MaterialCommunityIcons',
1390 | },
1391 | shopping: {
1392 | sfSymbol: 'bag.fill',
1393 | type: 'MaterialCommunityIcons',
1394 | },
1395 | 'cart-outline': {
1396 | sfSymbol: 'cart',
1397 | type: 'MaterialCommunityIcons',
1398 | },
1399 | cart: {
1400 | sfSymbol: 'cart.fill',
1401 | type: 'MaterialCommunityIcons',
1402 | },
1403 | 'basket-outline': {
1404 | sfSymbol: 'basket',
1405 | type: 'MaterialCommunityIcons',
1406 | },
1407 | basket: {
1408 | sfSymbol: 'basket.fill',
1409 | type: 'MaterialCommunityIcons',
1410 | },
1411 | 'credit-card-outline': {
1412 | sfSymbol: 'creditcard',
1413 | type: 'MaterialCommunityIcons',
1414 | },
1415 | 'credit-card': {
1416 | sfSymbol: 'creditcard.fill',
1417 | type: 'MaterialCommunityIcons',
1418 | },
1419 | 'card-giftcard': {
1420 | sfSymbol: 'giftcard',
1421 | type: 'MaterialIcons',
1422 | },
1423 | crop: {
1424 | sfSymbol: 'crop',
1425 | type: 'MaterialCommunityIcons',
1426 | },
1427 | 'crop-rotate': {
1428 | sfSymbol: 'crop.rotate',
1429 | type: 'MaterialCommunityIcons',
1430 | },
1431 | 'brush-variant': {
1432 | sfSymbol: 'paintbrush',
1433 | type: 'MaterialCommunityIcons',
1434 | },
1435 | 'spirit-level': {
1436 | sfSymbol: 'level',
1437 | type: 'MaterialCommunityIcons',
1438 | },
1439 | 'wrench-outline': {
1440 | sfSymbol: 'wrench.adjustable',
1441 | type: 'MaterialCommunityIcons',
1442 | },
1443 | wrench: {
1444 | sfSymbol: 'wrench.adjustable.fill',
1445 | type: 'MaterialCommunityIcons',
1446 | },
1447 | hammer: {
1448 | sfSymbol: 'hammer.fill',
1449 | type: 'MaterialCommunityIcons',
1450 | },
1451 | screwdriver: {
1452 | sfSymbol: 'screwdriver',
1453 | type: 'MaterialCommunityIcons',
1454 | },
1455 | eyedropper: {
1456 | sfSymbol: 'eyedropper',
1457 | type: 'MaterialCommunityIcons',
1458 | },
1459 | 'hammer-screwdriver': {
1460 | sfSymbol: 'wrench.and.screwdriver.fill',
1461 | type: 'MaterialCommunityIcons',
1462 | },
1463 | 'script-outline': {
1464 | sfSymbol: 'scroll',
1465 | type: 'MaterialCommunityIcons',
1466 | },
1467 | script: {
1468 | sfSymbol: 'scroll.fill',
1469 | type: 'MaterialCommunityIcons',
1470 | },
1471 | 'printer-outline': {
1472 | sfSymbol: 'printer',
1473 | type: 'MaterialCommunityIcons',
1474 | },
1475 | printer: {
1476 | sfSymbol: 'printer.fill',
1477 | type: 'MaterialCommunityIcons',
1478 | },
1479 | scanner: {
1480 | sfSymbol: 'scanner',
1481 | type: 'MaterialCommunityIcons',
1482 | },
1483 | 'drama-masks': {
1484 | sfSymbol: 'theatermasks',
1485 | type: 'MaterialCommunityIcons',
1486 | },
1487 | 'puzzle-outline': {
1488 | sfSymbol: 'puzzlepiece',
1489 | type: 'MaterialCommunityIcons',
1490 | },
1491 | puzzle: {
1492 | sfSymbol: 'puzzlepiece.fill',
1493 | type: 'MaterialCommunityIcons',
1494 | },
1495 | 'home-outline': {
1496 | sfSymbol: 'house',
1497 | type: 'MaterialCommunityIcons',
1498 | },
1499 | home: {
1500 | sfSymbol: 'house.fill',
1501 | type: 'MaterialCommunityIcons',
1502 | },
1503 | 'home-circle-outline': {
1504 | sfSymbol: 'house.circle',
1505 | type: 'MaterialCommunityIcons',
1506 | },
1507 | 'home-circle': {
1508 | sfSymbol: 'house.circle.fill',
1509 | type: 'MaterialCommunityIcons',
1510 | },
1511 | 'storefront-outline': {
1512 | sfSymbol: 'storefront',
1513 | type: 'MaterialCommunityIcons',
1514 | },
1515 | storefront: {
1516 | sfSymbol: 'storefront.fill',
1517 | type: 'MaterialCommunityIcons',
1518 | },
1519 | 'lightbulb-outline': {
1520 | sfSymbol: 'lightbulb',
1521 | type: 'MaterialCommunityIcons',
1522 | },
1523 | lightbulb: {
1524 | sfSymbol: 'lightbulb.fill',
1525 | type: 'MaterialCommunityIcons',
1526 | },
1527 | 'lightbulb-off-outline': {
1528 | sfSymbol: 'lightbulb.slash',
1529 | type: 'MaterialCommunityIcons',
1530 | },
1531 | 'lightbulb-off': {
1532 | sfSymbol: 'lightbulb.slash.fill',
1533 | type: 'MaterialCommunityIcons',
1534 | },
1535 | 'power-socket-us': {
1536 | sfSymbol: 'poweroutlet.type.b',
1537 | type: 'MaterialCommunityIcons',
1538 | },
1539 | 'power-plug-outline': {
1540 | sfSymbol: 'powerplug',
1541 | type: 'MaterialCommunityIcons',
1542 | },
1543 | 'power-plug': {
1544 | sfSymbol: 'powerplug.fill',
1545 | type: 'MaterialCommunityIcons',
1546 | },
1547 | webcam: {
1548 | sfSymbol: 'web.camera.fill',
1549 | type: 'MaterialCommunityIcons',
1550 | },
1551 | 'water-pump': {
1552 | sfSymbol: 'spigot.fill',
1553 | type: 'MaterialCommunityIcons',
1554 | },
1555 | router: {
1556 | sfSymbol: 'wifi.router.fill',
1557 | type: 'MaterialIcons',
1558 | },
1559 | 'party-popper': {
1560 | sfSymbol: 'party.popper.fill',
1561 | type: 'MaterialCommunityIcons',
1562 | },
1563 | balloon: {
1564 | sfSymbol: 'balloon.fill',
1565 | type: 'MaterialCommunityIcons',
1566 | },
1567 | firework: {
1568 | sfSymbol: 'fireworks',
1569 | type: 'MaterialCommunityIcons',
1570 | },
1571 | 'office-building-outline': {
1572 | sfSymbol: 'building',
1573 | type: 'MaterialCommunityIcons',
1574 | },
1575 | 'office-building': {
1576 | sfSymbol: 'building.fill',
1577 | type: 'MaterialCommunityIcons',
1578 | },
1579 | 'city-variant-outline': {
1580 | sfSymbol: 'building.2',
1581 | type: 'MaterialCommunityIcons',
1582 | },
1583 | 'city-variant': {
1584 | sfSymbol: 'building.2.fill',
1585 | type: 'MaterialCommunityIcons',
1586 | },
1587 | 'lock-outline': {
1588 | sfSymbol: 'lock',
1589 | type: 'MaterialCommunityIcons',
1590 | },
1591 | lock: {
1592 | sfSymbol: 'lock.fill',
1593 | type: 'MaterialCommunityIcons',
1594 | },
1595 | 'shield-lock-outline': {
1596 | sfSymbol: 'lock.shield',
1597 | type: 'MaterialCommunityIcons',
1598 | },
1599 | 'shield-lock': {
1600 | sfSymbol: 'lock.shield.fill',
1601 | type: 'MaterialCommunityIcons',
1602 | },
1603 | 'lock-off-outline': {
1604 | sfSymbol: 'lock.slash',
1605 | type: 'MaterialCommunityIcons',
1606 | },
1607 | 'lock-off': {
1608 | sfSymbol: 'lock.slash.fill',
1609 | type: 'MaterialCommunityIcons',
1610 | },
1611 | 'lock-alert-outline': {
1612 | sfSymbol: 'exclamationmark.lock',
1613 | type: 'MaterialCommunityIcons',
1614 | },
1615 | 'lock-alert': {
1616 | sfSymbol: 'exclamationmark.lock.fill',
1617 | type: 'MaterialCommunityIcons',
1618 | },
1619 | 'lock-clock': {
1620 | sfSymbol: 'lock.badge.clock.fill',
1621 | type: 'MaterialCommunityIcons',
1622 | },
1623 | 'lock-open': {
1624 | sfSymbol: 'lock.open',
1625 | type: 'MaterialCommunityIcons',
1626 | },
1627 | 'lock-open-outline': {
1628 | sfSymbol: 'lock.open.fill',
1629 | type: 'MaterialCommunityIcons',
1630 | },
1631 | 'lock-open-alert': {
1632 | sfSymbol: 'lock.open.trianglebadge.exclamationmark',
1633 | type: 'MaterialCommunityIcons',
1634 | },
1635 | 'lock-open-alert-outline': {
1636 | sfSymbol: 'lock.open.trianglebadge.exclamationmark.fill',
1637 | type: 'MaterialCommunityIcons',
1638 | },
1639 | 'lock-reset': {
1640 | sfSymbol: 'lock.rotation',
1641 | type: 'MaterialCommunityIcons',
1642 | },
1643 | 'key-outline': {
1644 | sfSymbol: 'key',
1645 | type: 'MaterialCommunityIcons',
1646 | },
1647 | key: {
1648 | sfSymbol: 'key.fill',
1649 | type: 'MaterialCommunityIcons',
1650 | },
1651 | wifi: {
1652 | sfSymbol: 'wifi',
1653 | type: 'MaterialCommunityIcons',
1654 | },
1655 | 'wifi-off': {
1656 | sfSymbol: 'wifi.slash',
1657 | type: 'MaterialCommunityIcons',
1658 | },
1659 | 'wifi-alert': {
1660 | sfSymbol: 'wifi.exclamationmark',
1661 | type: 'MaterialCommunityIcons',
1662 | },
1663 | 'pin-outline': {
1664 | sfSymbol: 'pin',
1665 | type: 'MaterialCommunityIcons',
1666 | },
1667 | pin: {
1668 | sfSymbol: 'pin.fill',
1669 | type: 'MaterialCommunityIcons',
1670 | },
1671 | 'pin-off-outline': {
1672 | sfSymbol: 'pin.slash',
1673 | type: 'MaterialCommunityIcons',
1674 | },
1675 | 'pin-off': {
1676 | sfSymbol: 'pin.slash.fill',
1677 | type: 'MaterialCommunityIcons',
1678 | },
1679 | 'map-marker-outline': {
1680 | sfSymbol: 'mappin',
1681 | type: 'MaterialCommunityIcons',
1682 | },
1683 | 'map-marker-radius-outline': {
1684 | sfSymbol: 'mappin.circle',
1685 | type: 'MaterialCommunityIcons',
1686 | },
1687 | 'map-marker-radius': {
1688 | sfSymbol: 'mappin.circle.fill',
1689 | type: 'MaterialCommunityIcons',
1690 | },
1691 | 'map-marker-off-outline': {
1692 | sfSymbol: 'mappin.slash',
1693 | type: 'MaterialCommunityIcons',
1694 | },
1695 | 'map-outline': {
1696 | sfSymbol: 'map',
1697 | type: 'MaterialCommunityIcons',
1698 | },
1699 | map: {
1700 | sfSymbol: 'map.fill',
1701 | type: 'MaterialCommunityIcons',
1702 | },
1703 | monitor: {
1704 | sfSymbol: 'display',
1705 | type: 'MaterialCommunityIcons',
1706 | },
1707 | 'monitor-lock': {
1708 | sfSymbol: 'lock.display',
1709 | type: 'MaterialCommunityIcons',
1710 | },
1711 | 'monitor-multiple': {
1712 | sfSymbol: 'display.2',
1713 | type: 'MaterialCommunityIcons',
1714 | },
1715 | server: {
1716 | sfSymbol: 'server.rack',
1717 | type: 'MaterialCommunityIcons',
1718 | },
1719 | laptop: {
1720 | sfSymbol: 'laptopcomputer',
1721 | type: 'MaterialCommunityIcons',
1722 | },
1723 | 'laptop-off': {
1724 | sfSymbol: 'laptopcomputer.slash',
1725 | type: 'MaterialCommunityIcons',
1726 | },
1727 | cellphone: {
1728 | sfSymbol: 'smartphone',
1729 | type: 'MaterialCommunityIcons',
1730 | },
1731 | headphones: {
1732 | sfSymbol: 'headphones',
1733 | type: 'MaterialCommunityIcons',
1734 | },
1735 | 'live-tv': {
1736 | sfSymbol: 'play.tv',
1737 | type: 'MaterialIcons',
1738 | },
1739 | 'youtube-tv': {
1740 | sfSymbol: 'play.tv.fill',
1741 | type: 'MaterialCommunityIcons',
1742 | },
1743 | 'connected-tv': {
1744 | sfSymbol: 'tv.badge.wifi',
1745 | type: 'MaterialIcons',
1746 | },
1747 | 'bullhorn-variant-outline': {
1748 | sfSymbol: 'horn',
1749 | type: 'MaterialCommunityIcons',
1750 | },
1751 | 'bullhorn-variant': {
1752 | sfSymbol: 'horn.fill',
1753 | type: 'MaterialCommunityIcons',
1754 | },
1755 | bandage: {
1756 | sfSymbol: 'bandage.fill',
1757 | type: 'MaterialCommunityIcons',
1758 | },
1759 | 'crown-outline': {
1760 | sfSymbol: 'crown',
1761 | type: 'MaterialCommunityIcons',
1762 | },
1763 | crown: {
1764 | sfSymbol: 'crown.fill',
1765 | type: 'MaterialCommunityIcons',
1766 | },
1767 | filmstrip: {
1768 | sfSymbol: 'film.fill',
1769 | type: 'MaterialCommunityIcons',
1770 | },
1771 | 'filmstrip-box-multiple': {
1772 | sfSymbol: 'film.stack.fill',
1773 | type: 'MaterialCommunityIcons',
1774 | },
1775 | 'movie-open-outline': {
1776 | sfSymbol: 'movieclapper',
1777 | type: 'MaterialCommunityIcons',
1778 | },
1779 | 'movie-open': {
1780 | sfSymbol: 'movieclapper.fill',
1781 | type: 'MaterialCommunityIcons',
1782 | },
1783 | 'ticket-confirmation-outline': {
1784 | sfSymbol: 'ticket',
1785 | type: 'MaterialCommunityIcons',
1786 | },
1787 | 'ticket-confirmation': {
1788 | sfSymbol: 'ticket.fill',
1789 | type: 'MaterialCommunityIcons',
1790 | },
1791 | 'eye-outline': {
1792 | sfSymbol: 'eye',
1793 | type: 'MaterialCommunityIcons',
1794 | },
1795 | eye: {
1796 | sfSymbol: 'eye.fill',
1797 | type: 'MaterialCommunityIcons',
1798 | },
1799 | 'eye-off-outline': {
1800 | sfSymbol: 'eye.slash',
1801 | type: 'MaterialCommunityIcons',
1802 | },
1803 | 'eye-off': {
1804 | sfSymbol: 'eye.slash.fill',
1805 | type: 'MaterialCommunityIcons',
1806 | },
1807 | brain: {
1808 | sfSymbol: 'brain',
1809 | type: 'MaterialCommunityIcons',
1810 | },
1811 | qrcode: {
1812 | sfSymbol: 'qrcode',
1813 | type: 'MaterialCommunityIcons',
1814 | },
1815 | barcode: {
1816 | sfSymbol: 'barcode',
1817 | type: 'MaterialCommunityIcons',
1818 | },
1819 | 'image-outline': {
1820 | sfSymbol: 'photo',
1821 | type: 'MaterialCommunityIcons',
1822 | },
1823 | image: {
1824 | sfSymbol: 'photo.fill',
1825 | type: 'MaterialCommunityIcons',
1826 | },
1827 | 'image-plus': {
1828 | sfSymbol: 'photo.badge.plus.fill',
1829 | type: 'MaterialCommunityIcons',
1830 | },
1831 | 'image-multiple-outline': {
1832 | sfSymbol: 'photo.stack',
1833 | type: 'MaterialCommunityIcons',
1834 | },
1835 | 'image-multiple': {
1836 | sfSymbol: 'photo.stack.fill',
1837 | type: 'MaterialCommunityIcons',
1838 | },
1839 | 'clock-outline': {
1840 | sfSymbol: 'clock',
1841 | type: 'MaterialCommunityIcons',
1842 | },
1843 | clock: {
1844 | sfSymbol: 'clock.fill',
1845 | type: 'MaterialCommunityIcons',
1846 | },
1847 | 'clock-check-outline': {
1848 | sfSymbol: 'clock.badge.checkmark',
1849 | type: 'MaterialCommunityIcons',
1850 | },
1851 | 'clock-check': {
1852 | sfSymbol: 'clock.badge.checkmark.fill',
1853 | type: 'MaterialCommunityIcons',
1854 | },
1855 | 'clock-remove-outline': {
1856 | sfSymbol: 'clock.badge.xmark',
1857 | type: 'MaterialCommunityIcons',
1858 | },
1859 | 'clock-remove': {
1860 | sfSymbol: 'clock.badge.xmark.fill',
1861 | type: 'MaterialCommunityIcons',
1862 | },
1863 | 'clock-alert-outline': {
1864 | sfSymbol: 'clock.badge.exclamationmark',
1865 | type: 'MaterialCommunityIcons',
1866 | },
1867 | 'clock-alert': {
1868 | sfSymbol: 'clock.badge.exclamationmark.fill',
1869 | type: 'MaterialCommunityIcons',
1870 | },
1871 | alarm: {
1872 | sfSymbol: 'alarm',
1873 | type: 'MaterialCommunityIcons',
1874 | },
1875 | 'timer-outline': {
1876 | sfSymbol: 'stopwatch',
1877 | type: 'MaterialCommunityIcons',
1878 | },
1879 | timer: {
1880 | sfSymbol: 'stopwatch.fill',
1881 | type: 'MaterialCommunityIcons',
1882 | },
1883 | 'chart-timeline-variant': {
1884 | sfSymbol: 'chart.xyaxis.line',
1885 | type: 'MaterialCommunityIcons',
1886 | },
1887 | 'camera-timer': {
1888 | sfSymbol: 'timer',
1889 | type: 'MaterialCommunityIcons',
1890 | },
1891 | 'controller-classic-outline': {
1892 | sfSymbol: 'gamecontroller',
1893 | type: 'MaterialCommunityIcons',
1894 | },
1895 | 'controller-classic': {
1896 | sfSymbol: 'gamecontroller.fill',
1897 | type: 'MaterialCommunityIcons',
1898 | },
1899 | 'sony-playstation': {
1900 | sfSymbol: 'playstation.logo',
1901 | type: 'MaterialCommunityIcons',
1902 | },
1903 | 'microsoft-xbox': {
1904 | sfSymbol: 'xbox.logo',
1905 | type: 'MaterialCommunityIcons',
1906 | },
1907 | 'palette-outline': {
1908 | sfSymbol: 'paintpalette',
1909 | type: 'MaterialCommunityIcons',
1910 | },
1911 | palette: {
1912 | sfSymbol: 'paintpalette.fill',
1913 | type: 'MaterialCommunityIcons',
1914 | },
1915 | 'palette-swatch-outline': {
1916 | sfSymbol: 'swatchpalette',
1917 | type: 'MaterialCommunityIcons',
1918 | },
1919 | 'palette-swatch': {
1920 | sfSymbol: 'swatchpalette.fill',
1921 | type: 'MaterialCommunityIcons',
1922 | },
1923 | 'silverware-fork-knife': {
1924 | sfSymbol: 'fork.knife',
1925 | type: 'MaterialCommunityIcons',
1926 | },
1927 | 'chart-box-outline': {
1928 | sfSymbol: 'chart.bar',
1929 | type: 'MaterialCommunityIcons',
1930 | },
1931 | 'chart-box': {
1932 | sfSymbol: 'chart.bar.fill',
1933 | type: 'MaterialCommunityIcons',
1934 | },
1935 | 'signal-cellular-3': {
1936 | sfSymbol: 'cellularbars',
1937 | type: 'MaterialCommunityIcons',
1938 | },
1939 | 'chart-pie': {
1940 | sfSymbol: 'chart.pie.fill',
1941 | type: 'MaterialCommunityIcons',
1942 | },
1943 | sd: {
1944 | sfSymbol: 'sdcard.fill',
1945 | type: 'MaterialCommunityIcons',
1946 | },
1947 | atom: {
1948 | sfSymbol: 'atom',
1949 | type: 'MaterialCommunityIcons',
1950 | },
1951 | 'angle-acute': {
1952 | sfSymbol: 'angle',
1953 | type: 'MaterialCommunityIcons',
1954 | },
1955 | 'math-compass': {
1956 | sfSymbol: 'compass.drawing',
1957 | type: 'MaterialCommunityIcons',
1958 | },
1959 | 'globe-model': {
1960 | sfSymbol: 'globe.desk',
1961 | type: 'MaterialCommunityIcons',
1962 | },
1963 | 'gift-outline': {
1964 | sfSymbol: 'gift',
1965 | type: 'MaterialCommunityIcons',
1966 | },
1967 | gift: {
1968 | sfSymbol: 'gift.fill',
1969 | type: 'MaterialCommunityIcons',
1970 | },
1971 | cash: {
1972 | sfSymbol: 'banknote',
1973 | type: 'MaterialCommunityIcons',
1974 | },
1975 | grid: {
1976 | sfSymbol: 'grid',
1977 | type: 'MaterialCommunityIcons',
1978 | },
1979 | 'format-list-checks': {
1980 | sfSymbol: 'checklist',
1981 | type: 'MaterialCommunityIcons',
1982 | },
1983 | 'format-list-bulleted': {
1984 | sfSymbol: 'list.bullet',
1985 | type: 'MaterialCommunityIcons',
1986 | },
1987 | 'reorder-horizontal': {
1988 | sfSymbol: 'line.3.horizontal',
1989 | type: 'MaterialCommunityIcons',
1990 | },
1991 | 'format-bold': {
1992 | sfSymbol: 'bold',
1993 | type: 'MaterialCommunityIcons',
1994 | },
1995 | 'format-italic': {
1996 | sfSymbol: 'italic',
1997 | type: 'MaterialCommunityIcons',
1998 | },
1999 | 'format-underline': {
2000 | sfSymbol: 'underline',
2001 | type: 'MaterialCommunityIcons',
2002 | },
2003 | 'format-strikethrough': {
2004 | sfSymbol: 'strikethrough',
2005 | type: 'MaterialCommunityIcons',
2006 | },
2007 | percent: {
2008 | sfSymbol: 'percent',
2009 | type: 'MaterialCommunityIcons',
2010 | },
2011 | 'information-outline': {
2012 | sfSymbol: 'info.circle',
2013 | type: 'MaterialCommunityIcons',
2014 | },
2015 | information: {
2016 | sfSymbol: 'info.circle.fill',
2017 | type: 'MaterialCommunityIcons',
2018 | },
2019 | 'alternate-email': {
2020 | sfSymbol: 'at',
2021 | type: 'MaterialIcons',
2022 | },
2023 | help: {
2024 | sfSymbol: 'questionmark',
2025 | type: 'MaterialCommunityIcons',
2026 | },
2027 | exclamation: {
2028 | sfSymbol: 'exclamationmark',
2029 | type: 'MaterialCommunityIcons',
2030 | },
2031 | plus: {
2032 | sfSymbol: 'plus',
2033 | type: 'MaterialCommunityIcons',
2034 | },
2035 | minus: {
2036 | sfSymbol: 'minus',
2037 | type: 'MaterialCommunityIcons',
2038 | },
2039 | 'plus-minus': {
2040 | sfSymbol: 'plusminus',
2041 | type: 'MaterialCommunityIcons',
2042 | },
2043 | close: {
2044 | sfSymbol: 'multiply',
2045 | type: 'MaterialCommunityIcons',
2046 | },
2047 | division: {
2048 | sfSymbol: 'divide',
2049 | type: 'MaterialCommunityIcons',
2050 | },
2051 | equal: {
2052 | sfSymbol: 'equal',
2053 | type: 'MaterialCommunityIcons',
2054 | },
2055 | 'less-than': {
2056 | sfSymbol: 'lessthan',
2057 | type: 'MaterialCommunityIcons',
2058 | },
2059 | 'greater-than': {
2060 | sfSymbol: 'greaterthan',
2061 | type: 'MaterialCommunityIcons',
2062 | },
2063 | 'code-parentheses': {
2064 | sfSymbol: 'parentheses',
2065 | type: 'MaterialCommunityIcons',
2066 | },
2067 | 'code-braces': {
2068 | sfSymbol: 'curlybraces',
2069 | type: 'MaterialCommunityIcons',
2070 | },
2071 | 'code-json': {
2072 | sfSymbol: 'ellipsis.curlybraces',
2073 | type: 'MaterialCommunityIcons',
2074 | },
2075 | 'close-thick': {
2076 | sfSymbol: 'xmark',
2077 | type: 'MaterialCommunityIcons',
2078 | },
2079 | 'close-circle-outline': {
2080 | sfSymbol: 'xmark.circle',
2081 | type: 'MaterialCommunityIcons',
2082 | },
2083 | 'close-circle': {
2084 | sfSymbol: 'xmark.circle.fill',
2085 | type: 'MaterialCommunityIcons',
2086 | },
2087 | 'close-box-outline': {
2088 | sfSymbol: 'xmark.square',
2089 | type: 'MaterialCommunityIcons',
2090 | },
2091 | 'close-box': {
2092 | sfSymbol: 'xmark.square.fill',
2093 | type: 'MaterialCommunityIcons',
2094 | },
2095 | 'shield-remove-outline': {
2096 | sfSymbol: 'xmark.shield',
2097 | type: 'MaterialCommunityIcons',
2098 | },
2099 | 'shield-remove': {
2100 | sfSymbol: 'xmark.shield.fill',
2101 | type: 'MaterialCommunityIcons',
2102 | },
2103 | 'close-octagon-outline': {
2104 | sfSymbol: 'xmark.octagon',
2105 | type: 'MaterialCommunityIcons',
2106 | },
2107 | 'close-octagon': {
2108 | sfSymbol: 'xmark.octagon.fill',
2109 | type: 'MaterialCommunityIcons',
2110 | },
2111 | check: {
2112 | sfSymbol: 'checkmark',
2113 | type: 'MaterialCommunityIcons',
2114 | },
2115 | 'check-circle-outline': {
2116 | sfSymbol: 'checkmark.circle',
2117 | type: 'MaterialCommunityIcons',
2118 | },
2119 | 'check-circle': {
2120 | sfSymbol: 'checkmark.circle.fill',
2121 | type: 'MaterialCommunityIcons',
2122 | },
2123 | 'check-box': {
2124 | sfSymbol: 'checkmark.square.fill',
2125 | type: 'MaterialIcons',
2126 | },
2127 | 'shield-check-outline': {
2128 | sfSymbol: 'checkmark.shield',
2129 | type: 'MaterialCommunityIcons',
2130 | },
2131 | 'shield-check': {
2132 | sfSymbol: 'checkmark.shield.fill',
2133 | type: 'MaterialCommunityIcons',
2134 | },
2135 | 'chevron-left': {
2136 | sfSymbol: 'chevron.left',
2137 | type: 'MaterialCommunityIcons',
2138 | },
2139 | 'chevron-left-circle-outline': {
2140 | sfSymbol: 'chevron.left.circle',
2141 | type: 'MaterialCommunityIcons',
2142 | },
2143 | 'chevron-left-circle': {
2144 | sfSymbol: 'chevron.left.circle.fill',
2145 | type: 'MaterialCommunityIcons',
2146 | },
2147 | 'chevron-left-box-outline': {
2148 | sfSymbol: 'chevron.left.square',
2149 | type: 'MaterialCommunityIcons',
2150 | },
2151 | 'chevron-left-box': {
2152 | sfSymbol: 'chevron.left.square.fill',
2153 | type: 'MaterialCommunityIcons',
2154 | },
2155 | 'chevron-right': {
2156 | sfSymbol: 'chevron.right',
2157 | type: 'MaterialCommunityIcons',
2158 | },
2159 | 'chevron-right-circle-outline': {
2160 | sfSymbol: 'chevron.right.circle',
2161 | type: 'MaterialCommunityIcons',
2162 | },
2163 | 'chevron-right-circle': {
2164 | sfSymbol: 'chevron.right.circle.fill',
2165 | type: 'MaterialCommunityIcons',
2166 | },
2167 | 'chevron-right-box-outline': {
2168 | sfSymbol: 'chevron.right.square',
2169 | type: 'MaterialCommunityIcons',
2170 | },
2171 | 'chevron-right-box': {
2172 | sfSymbol: 'chevron.right.square.fill',
2173 | type: 'MaterialCommunityIcons',
2174 | },
2175 | 'chevron-double-left': {
2176 | sfSymbol: 'chevron.left.2',
2177 | type: 'MaterialCommunityIcons',
2178 | },
2179 | 'chevron-double-right': {
2180 | sfSymbol: 'chevron.right.2',
2181 | type: 'MaterialCommunityIcons',
2182 | },
2183 | 'chevron-up': {
2184 | sfSymbol: 'chevron.up',
2185 | type: 'MaterialCommunityIcons',
2186 | },
2187 | 'chevron-up-circle-outline': {
2188 | sfSymbol: 'chevron.up.circle',
2189 | type: 'MaterialCommunityIcons',
2190 | },
2191 | 'chevron-up-circle': {
2192 | sfSymbol: 'chevron.up.circle.fill',
2193 | type: 'MaterialCommunityIcons',
2194 | },
2195 | 'chevron-up-box-outline': {
2196 | sfSymbol: 'chevron.up.square',
2197 | type: 'MaterialCommunityIcons',
2198 | },
2199 | 'chevron-up-box': {
2200 | sfSymbol: 'chevron.up.square.fill',
2201 | type: 'MaterialCommunityIcons',
2202 | },
2203 | 'chevron-down': {
2204 | sfSymbol: 'chevron.down',
2205 | type: 'MaterialCommunityIcons',
2206 | },
2207 | 'chevron-down-circle-outline': {
2208 | sfSymbol: 'chevron.down.circle',
2209 | type: 'MaterialCommunityIcons',
2210 | },
2211 | 'chevron-down-circle': {
2212 | sfSymbol: 'chevron.down.circle.fill',
2213 | type: 'MaterialCommunityIcons',
2214 | },
2215 | 'chevron-down-box-outline': {
2216 | sfSymbol: 'chevron.down.square',
2217 | type: 'MaterialCommunityIcons',
2218 | },
2219 | 'chevron-down-box': {
2220 | sfSymbol: 'chevron.down.square.fill',
2221 | type: 'MaterialCommunityIcons',
2222 | },
2223 | 'unfold-more-horizontal': {
2224 | sfSymbol: 'chevron.up.chevron.down',
2225 | type: 'MaterialCommunityIcons',
2226 | },
2227 | 'arrow-left': {
2228 | sfSymbol: 'arrow.left',
2229 | type: 'MaterialCommunityIcons',
2230 | },
2231 | 'arrow-left-circle-outline': {
2232 | sfSymbol: 'arrow.left.circle',
2233 | type: 'MaterialCommunityIcons',
2234 | },
2235 | 'arrow-left-circle': {
2236 | sfSymbol: 'arrow.left.circle.fill',
2237 | type: 'MaterialCommunityIcons',
2238 | },
2239 | 'arrow-left-box': {
2240 | sfSymbol: 'arrow.left.square.fill',
2241 | type: 'MaterialCommunityIcons',
2242 | },
2243 | 'arrow-right': {
2244 | sfSymbol: 'arrow.right',
2245 | type: 'MaterialCommunityIcons',
2246 | },
2247 | 'arrow-right-circle-outline': {
2248 | sfSymbol: 'arrow.right.circle',
2249 | type: 'MaterialCommunityIcons',
2250 | },
2251 | 'arrow-right-circle': {
2252 | sfSymbol: 'arrow.right.circle.fill',
2253 | type: 'MaterialCommunityIcons',
2254 | },
2255 | 'arrow-right-box': {
2256 | sfSymbol: 'arrow.right.square.fill',
2257 | type: 'MaterialCommunityIcons',
2258 | },
2259 | 'arrow-up': {
2260 | sfSymbol: 'arrow.up',
2261 | type: 'MaterialCommunityIcons',
2262 | },
2263 | 'arrow-up-circle-outline': {
2264 | sfSymbol: 'arrow.up.circle',
2265 | type: 'MaterialCommunityIcons',
2266 | },
2267 | 'arrow-up-circle': {
2268 | sfSymbol: 'arrow.up.circle.fill',
2269 | type: 'MaterialCommunityIcons',
2270 | },
2271 | 'arrow-up-box': {
2272 | sfSymbol: 'arrow.up.square.fill',
2273 | type: 'MaterialCommunityIcons',
2274 | },
2275 | 'arrow-down': {
2276 | sfSymbol: 'arrow.down',
2277 | type: 'MaterialCommunityIcons',
2278 | },
2279 | 'arrow-down-circle-outline': {
2280 | sfSymbol: 'arrow.down.circle',
2281 | type: 'MaterialCommunityIcons',
2282 | },
2283 | 'arrow-down-circle': {
2284 | sfSymbol: 'arrow.down.circle.fill',
2285 | type: 'MaterialCommunityIcons',
2286 | },
2287 | 'arrow-down-box': {
2288 | sfSymbol: 'arrow.down.square.fill',
2289 | type: 'MaterialCommunityIcons',
2290 | },
2291 | asterisk: {
2292 | sfSymbol: 'asterisk',
2293 | type: 'MaterialCommunityIcons',
2294 | },
2295 | 'attach-money': {
2296 | sfSymbol: 'dollarsign',
2297 | type: 'MaterialIcons',
2298 | },
2299 | apple: {
2300 | sfSymbol: 'apple.logo',
2301 | type: 'MaterialCommunityIcons',
2302 | },
2303 | } as const;
2304 |
--------------------------------------------------------------------------------