├── .editorconfig
├── .eslintignore
├── .eslintrc.js
├── .gitattributes
├── .github
├── ISSUE_TEMPLATE
│ ├── bug_report.yml
│ ├── config.yml
│ └── feature_request.yml
├── funding.yml
└── workflows
│ ├── deploy.yaml
│ ├── lint.yaml
│ └── tests.yaml
├── .gitignore
├── .knip.jsonc
├── .npmrc
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── MIGRATION.md
├── README.md
├── TODO.md
├── biome.jsonc
├── docs
├── CREATE_FONT_PACKAGE.md
├── DEVELOPMENT.md
├── SETUP-EXPO.md
├── SETUP-REACT-NATIVE.md
└── SETUP-WEB.md
├── lefthook.yml
├── nx.json
├── package.json
├── packages
├── ant-design
│ ├── .fontcustom-manifest.json
│ ├── .yo-rc.json
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── android
│ │ ├── build.gradle
│ │ └── src
│ │ │ └── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── AndroidManifestNew.xml
│ │ │ └── java
│ │ │ └── VectorIconsAntDesignPackage.kt
│ ├── babel.config.js
│ ├── fonts
│ │ └── AntDesign.ttf
│ ├── glyphmaps
│ │ └── AntDesign.json
│ ├── package.json
│ ├── react-native-vector-icons-ant-design.podspec
│ ├── src
│ │ └── index.ts
│ ├── tsconfig.build.json
│ └── tsconfig.json
├── codemod
│ ├── CHANGELOG.md
│ ├── package.json
│ ├── src
│ │ ├── 11.0
│ │ │ ├── icon-style-transform.ts
│ │ │ ├── import-transform.ts
│ │ │ ├── index.ts
│ │ │ ├── info-plist.ts
│ │ │ ├── package-json.ts
│ │ │ ├── remove-fonts.ts
│ │ │ └── transform.ts
│ │ ├── 12.0
│ │ │ ├── index.ts
│ │ │ ├── move-fonts.ts
│ │ │ ├── package-json.ts
│ │ │ └── transform.ts
│ │ └── index.ts
│ └── tsconfig.json
├── common
│ ├── .watchmanconfig
│ ├── CHANGELOG.md
│ ├── babel.config.js
│ ├── package.json
│ ├── src
│ │ ├── create-icon-set.tsx
│ │ ├── create-icon-source-cache.ts
│ │ ├── dynamicLoading
│ │ │ ├── dynamic-font-loading.ts
│ │ │ ├── dynamic-font-loading.web.ts
│ │ │ ├── dynamic-loading-setting.ts
│ │ │ └── types.ts
│ │ ├── get-image-library.ts
│ │ ├── index.ts
│ │ └── scripts
│ │ │ ├── common.ts
│ │ │ └── updatePlist.ts
│ ├── tsconfig.build.json
│ └── tsconfig.json
├── directory
│ ├── .env
│ ├── .gitignore
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── bin
│ │ ├── generate-font-styles.js
│ │ └── generate-glyphmap-index.js
│ ├── package.json
│ ├── public
│ │ ├── index.html
│ │ ├── manifest.json
│ │ └── robots.txt
│ ├── src
│ │ ├── App.css
│ │ ├── App.test.tsx
│ │ ├── App.tsx
│ │ ├── index.css
│ │ ├── index.tsx
│ │ ├── react-app-env.d.ts
│ │ ├── reportWebVitals.ts
│ │ └── setupTests.js
│ └── tsconfig.json
├── entypo
│ ├── .fontcustom-manifest.json
│ ├── .yo-rc.json
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── android
│ │ ├── build.gradle
│ │ └── src
│ │ │ └── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── AndroidManifestNew.xml
│ │ │ └── java
│ │ │ └── VectorIconsEntypoPackage.kt
│ ├── babel.config.js
│ ├── fonts
│ │ └── Entypo.ttf
│ ├── glyphmaps
│ │ └── Entypo.json
│ ├── package.json
│ ├── react-native-vector-icons-entypo.podspec
│ ├── src
│ │ └── index.ts
│ ├── tsconfig.build.json
│ └── tsconfig.json
├── evil-icons
│ ├── .fontcustom-manifest.json
│ ├── .yo-rc.json
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── android
│ │ ├── build.gradle
│ │ └── src
│ │ │ └── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── AndroidManifestNew.xml
│ │ │ └── java
│ │ │ └── VectorIconsEvilIconsPackage.kt
│ ├── babel.config.js
│ ├── fonts
│ │ └── EvilIcons.ttf
│ ├── glyphmaps
│ │ └── EvilIcons.json
│ ├── package.json
│ ├── react-native-vector-icons-evil-icons.podspec
│ ├── src
│ │ └── index.ts
│ ├── tsconfig.build.json
│ └── tsconfig.json
├── feather
│ ├── .fontcustom-manifest.json
│ ├── .yo-rc.json
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── android
│ │ ├── build.gradle
│ │ └── src
│ │ │ └── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── AndroidManifestNew.xml
│ │ │ └── java
│ │ │ └── VectorIconsFeatherPackage.kt
│ ├── babel.config.js
│ ├── fonts
│ │ └── Feather.ttf
│ ├── glyphmaps
│ │ └── Feather.json
│ ├── package.json
│ ├── react-native-vector-icons-feather.podspec
│ ├── src
│ │ └── index.ts
│ ├── tsconfig.build.json
│ └── tsconfig.json
├── fontawesome-common
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── bin
│ │ ├── fa-upgrade
│ │ ├── fa-upgrade5
│ │ └── fa-upgrade6
│ ├── generators
│ │ └── app
│ │ │ └── templates
│ │ │ └── src
│ │ │ └── index.tsx
│ ├── package.json
│ └── scripts
│ │ ├── fetch-pro.sh
│ │ └── generate-fontawesome-metadata.js
├── fontawesome
│ ├── .yo-rc.json
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── android
│ │ ├── build.gradle
│ │ └── src
│ │ │ └── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── AndroidManifestNew.xml
│ │ │ └── java
│ │ │ └── VectorIconsFontAwesomePackage.kt
│ ├── babel.config.js
│ ├── fonts
│ │ └── FontAwesome.ttf
│ ├── glyphmaps
│ │ └── FontAwesome.json
│ ├── package.json
│ ├── react-native-vector-icons-fontawesome.podspec
│ ├── src
│ │ └── index.ts
│ ├── tsconfig.build.json
│ └── tsconfig.json
├── fontawesome5-pro
│ ├── .yo-rc.json
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── android
│ │ ├── build.gradle
│ │ └── src
│ │ │ └── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── AndroidManifestNew.xml
│ │ │ └── java
│ │ │ └── VectorIconsFontAwesome5ProPackage.kt
│ ├── babel.config.js
│ ├── glyphmaps
│ │ ├── FontAwesome5Pro.json
│ │ ├── FontAwesome5Pro_brand.json
│ │ ├── FontAwesome5Pro_duotone.json
│ │ ├── FontAwesome5Pro_light.json
│ │ ├── FontAwesome5Pro_meta.json
│ │ ├── FontAwesome5Pro_regular.json
│ │ └── FontAwesome5Pro_solid.json
│ ├── package.json
│ ├── react-native-vector-icons-fontawesome5-pro.podspec
│ ├── src
│ │ └── index.tsx
│ ├── tsconfig.build.json
│ └── tsconfig.json
├── fontawesome5
│ ├── .yo-rc.json
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── android
│ │ ├── build.gradle
│ │ └── src
│ │ │ └── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── AndroidManifestNew.xml
│ │ │ └── java
│ │ │ └── VectorIconsFontAwesome5Package.kt
│ ├── babel.config.js
│ ├── fonts
│ │ ├── FontAwesome5_Brands.ttf
│ │ ├── FontAwesome5_Regular.ttf
│ │ └── FontAwesome5_Solid.ttf
│ ├── glyphmaps
│ │ ├── FontAwesome5.json
│ │ ├── FontAwesome5_brand.json
│ │ ├── FontAwesome5_meta.json
│ │ ├── FontAwesome5_regular.json
│ │ └── FontAwesome5_solid.json
│ ├── package.json
│ ├── react-native-vector-icons-fontawesome5.podspec
│ ├── src
│ │ └── index.tsx
│ ├── tsconfig.build.json
│ └── tsconfig.json
├── fontawesome6-pro
│ ├── .yo-rc.json
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── android
│ │ ├── build.gradle
│ │ └── src
│ │ │ └── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── AndroidManifestNew.xml
│ │ │ └── java
│ │ │ └── VectorIconsFontAwesome6ProPackage.kt
│ ├── babel.config.js
│ ├── glyphmaps
│ │ ├── FontAwesome6Pro.json
│ │ ├── FontAwesome6Pro_brand.json
│ │ ├── FontAwesome6Pro_duotone-light.json
│ │ ├── FontAwesome6Pro_duotone-regular.json
│ │ ├── FontAwesome6Pro_duotone-thin.json
│ │ ├── FontAwesome6Pro_duotone.json
│ │ ├── FontAwesome6Pro_light.json
│ │ ├── FontAwesome6Pro_meta.json
│ │ ├── FontAwesome6Pro_regular.json
│ │ ├── FontAwesome6Pro_sharp-duotone-light.json
│ │ ├── FontAwesome6Pro_sharp-duotone-regular.json
│ │ ├── FontAwesome6Pro_sharp-duotone-solid.json
│ │ ├── FontAwesome6Pro_sharp-duotone-thin.json
│ │ ├── FontAwesome6Pro_sharp.json
│ │ ├── FontAwesome6Pro_sharpLight.json
│ │ ├── FontAwesome6Pro_sharpSolid.json
│ │ ├── FontAwesome6Pro_sharpThin.json
│ │ ├── FontAwesome6Pro_solid.json
│ │ └── FontAwesome6Pro_thin.json
│ ├── package.json
│ ├── react-native-vector-icons-fontawesome6-pro.podspec
│ ├── src
│ │ └── index.tsx
│ ├── tsconfig.build.json
│ └── tsconfig.json
├── fontawesome6
│ ├── .yo-rc.json
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── android
│ │ ├── build.gradle
│ │ └── src
│ │ │ └── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── AndroidManifestNew.xml
│ │ │ └── java
│ │ │ └── VectorIconsFontAwesome6Package.kt
│ ├── babel.config.js
│ ├── fonts
│ │ ├── FontAwesome6_Brands.ttf
│ │ ├── FontAwesome6_Regular.ttf
│ │ └── FontAwesome6_Solid.ttf
│ ├── glyphmaps
│ │ ├── FontAwesome6.json
│ │ ├── FontAwesome6_brand.json
│ │ ├── FontAwesome6_meta.json
│ │ ├── FontAwesome6_regular.json
│ │ └── FontAwesome6_solid.json
│ ├── package.json
│ ├── react-native-vector-icons-fontawesome6.podspec
│ ├── src
│ │ └── index.tsx
│ ├── tsconfig.build.json
│ └── tsconfig.json
├── fontcustom-docker
│ ├── CHANGELOG.md
│ ├── Dockerfile
│ ├── README.md
│ └── package.json
├── fontello
│ ├── .yo-rc.json
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── android
│ │ ├── build.gradle
│ │ └── src
│ │ │ └── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── AndroidManifestNew.xml
│ │ │ └── java
│ │ │ └── VectorIconsFontelloPackage.kt
│ ├── babel.config.js
│ ├── package.json
│ ├── react-native-vector-icons-fontello.podspec
│ ├── src
│ │ └── index.ts
│ ├── tsconfig.build.json
│ └── tsconfig.json
├── fontisto
│ ├── .yo-rc.json
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── android
│ │ ├── build.gradle
│ │ └── src
│ │ │ └── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── AndroidManifestNew.xml
│ │ │ └── java
│ │ │ └── VectorIconsFontistoPackage.kt
│ ├── babel.config.js
│ ├── fonts
│ │ └── Fontisto.ttf
│ ├── glyphmaps
│ │ └── Fontisto.json
│ ├── package.json
│ ├── react-native-vector-icons-fontisto.podspec
│ ├── src
│ │ └── index.ts
│ ├── tsconfig.build.json
│ └── tsconfig.json
├── foundation
│ ├── .yo-rc.json
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── android
│ │ ├── build.gradle
│ │ └── src
│ │ │ └── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── AndroidManifestNew.xml
│ │ │ └── java
│ │ │ └── VectorIconsFoundationPackage.kt
│ ├── babel.config.js
│ ├── fonts
│ │ └── Foundation.ttf
│ ├── glyphmaps
│ │ └── Foundation.json
│ ├── package.json
│ ├── react-native-vector-icons-foundation.podspec
│ ├── src
│ │ └── index.ts
│ ├── tsconfig.build.json
│ └── tsconfig.json
├── generator-react-native-vector-icons
│ ├── .gitignore
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── package.json
│ ├── src
│ │ └── app
│ │ │ ├── fontforge
│ │ │ └── correct-direction.py
│ │ │ ├── generateGlyphmap.ts
│ │ │ ├── index.ts
│ │ │ └── templates
│ │ │ ├── README.md
│ │ │ ├── android
│ │ │ ├── build.gradle
│ │ │ └── src
│ │ │ │ └── main
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ ├── AndroidManifestNew.xml
│ │ │ │ └── java
│ │ │ │ └── Package.kt
│ │ │ ├── babel.config.js
│ │ │ ├── font.podspec
│ │ │ ├── package.json
│ │ │ ├── src
│ │ │ └── index.ts
│ │ │ ├── tsconfig.build.json
│ │ │ └── tsconfig.json
│ └── tsconfig.json
├── get-image
│ ├── .watchmanconfig
│ ├── CHANGELOG.md
│ ├── android
│ │ ├── build.gradle
│ │ ├── gradle.properties
│ │ └── src
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── AndroidManifestNew.xml
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── reactnativevectoricons
│ │ │ │ └── get_image
│ │ │ │ ├── VectorIconsModule.kt
│ │ │ │ └── VectorIconsPackage.kt
│ │ │ ├── newarch
│ │ │ └── VectorIconsSpec.kt
│ │ │ └── oldarch
│ │ │ └── VectorIconsSpec.kt
│ ├── babel.config.js
│ ├── ios
│ │ ├── VectorIcons.h
│ │ └── VectorIcons.mm
│ ├── package.json
│ ├── react-native-vector-icons.podspec
│ ├── react-native.config.js
│ ├── src
│ │ ├── NativeVectorIcons.ts
│ │ ├── NativeVectorIcons.web.ts
│ │ ├── ensure-native-module-available.ts
│ │ └── index.ts
│ ├── tsconfig.build.json
│ ├── tsconfig.json
│ └── turbo.json
├── icomoon
│ ├── .yo-rc.json
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── android
│ │ ├── build.gradle
│ │ └── src
│ │ │ └── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── AndroidManifestNew.xml
│ │ │ └── java
│ │ │ └── VectorIconsIcomoonPackage.kt
│ ├── babel.config.js
│ ├── package.json
│ ├── react-native-vector-icons-icomoon.podspec
│ ├── src
│ │ └── index.ts
│ ├── tsconfig.build.json
│ └── tsconfig.json
├── icon-explorer
│ ├── .gitignore
│ ├── .owl
│ │ ├── .gitignore
│ │ ├── baseline-new
│ │ │ ├── android
│ │ │ │ ├── home-bottom.png
│ │ │ │ ├── home-top.png
│ │ │ │ └── tests.png
│ │ │ └── ios
│ │ │ │ ├── home-bottom.png
│ │ │ │ ├── home-top.png
│ │ │ │ └── tests.png
│ │ └── baseline-old
│ │ │ ├── android
│ │ │ ├── home-bottom.png
│ │ │ ├── home-top.png
│ │ │ └── tests.png
│ │ │ └── ios
│ │ │ ├── home-bottom.png
│ │ │ ├── home-top.png
│ │ │ └── tests.png
│ ├── .watchmanconfig
│ ├── README.md
│ ├── __tests__
│ │ └── App.owl.tsx
│ ├── android
│ │ ├── build.gradle
│ │ ├── gradle.properties
│ │ ├── gradle
│ │ │ └── wrapper
│ │ │ │ ├── gradle-wrapper.jar
│ │ │ │ └── gradle-wrapper.properties
│ │ ├── gradlew
│ │ ├── gradlew.bat
│ │ └── settings.gradle
│ ├── app.json
│ ├── babel.config.js
│ ├── configPlugin.js
│ ├── index.js
│ ├── index.test.js
│ ├── ios
│ │ └── Podfile
│ ├── jest.config.js
│ ├── macos
│ │ └── Podfile
│ ├── metro.config.js
│ ├── owl.config.json
│ ├── package.json
│ ├── react-native.config.js
│ ├── rnvi-fonts
│ │ ├── fontello
│ │ │ └── fontello.ttf
│ │ └── icomoon
│ │ │ └── icomoon.ttf
│ ├── set-rn-version.sh
│ ├── src
│ │ ├── App.tsx
│ │ ├── Home.tsx
│ │ ├── IconList.tsx
│ │ ├── TestMode.tsx
│ │ ├── Types.tsx
│ │ ├── animatable.tsx
│ │ ├── configs
│ │ │ ├── fontello.config.json
│ │ │ └── icomoon.config.json
│ │ ├── icon-sets.tsx
│ │ └── rnvi-fonts
│ │ │ ├── fontello.ttf
│ │ │ └── icomoon.ttf
│ ├── tsconfig.json
│ ├── visionos
│ │ └── Podfile
│ └── windows
│ │ └── .gitignore
├── ionicons
│ ├── .fontcustom-manifest.json
│ ├── .yo-rc.json
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── android
│ │ ├── build.gradle
│ │ └── src
│ │ │ └── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── AndroidManifestNew.xml
│ │ │ └── java
│ │ │ └── VectorIconsIoniconsPackage.kt
│ ├── babel.config.js
│ ├── fonts
│ │ └── Ionicons.ttf
│ ├── glyphmaps
│ │ └── Ionicons.json
│ ├── package.json
│ ├── react-native-vector-icons-ionicons.podspec
│ ├── src
│ │ └── index.ts
│ ├── tsconfig.build.json
│ └── tsconfig.json
├── lucide
│ ├── .fontcustom-manifest.json
│ ├── .yo-rc.json
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── android
│ │ ├── build.gradle
│ │ └── src
│ │ │ └── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── AndroidManifestNew.xml
│ │ │ └── java
│ │ │ └── VectorIconsLucidePackage.kt
│ ├── babel.config.js
│ ├── fonts
│ │ └── Lucide.ttf
│ ├── glyphmaps
│ │ └── Lucide.json
│ ├── package.json
│ ├── react-native-vector-icons-lucide.podspec
│ ├── src
│ │ └── index.ts
│ ├── tsconfig.build.json
│ └── tsconfig.json
├── material-design-icons
│ ├── .yo-rc.json
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── android
│ │ ├── build.gradle
│ │ └── src
│ │ │ └── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── AndroidManifestNew.xml
│ │ │ └── java
│ │ │ └── VectorIconsMaterialDesignIconsPackage.kt
│ ├── babel.config.js
│ ├── fonts
│ │ └── MaterialDesignIcons.ttf
│ ├── glyphmaps
│ │ └── MaterialDesignIcons.json
│ ├── package.json
│ ├── react-native-vector-icons-material-design-icons.podspec
│ ├── src
│ │ └── index.ts
│ ├── tsconfig.build.json
│ └── tsconfig.json
├── material-icons
│ ├── .yo-rc.json
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── android
│ │ ├── build.gradle
│ │ └── src
│ │ │ └── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── AndroidManifestNew.xml
│ │ │ └── java
│ │ │ └── VectorIconsMaterialIconsPackage.kt
│ ├── babel.config.js
│ ├── fonts
│ │ └── MaterialIcons.ttf
│ ├── glyphmaps
│ │ └── MaterialIcons.json
│ ├── package.json
│ ├── react-native-vector-icons-material-icons.podspec
│ ├── src
│ │ └── index.ts
│ ├── tsconfig.build.json
│ └── tsconfig.json
├── octicons
│ ├── .fontcustom-manifest.json
│ ├── .yo-rc.json
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── android
│ │ ├── build.gradle
│ │ └── src
│ │ │ └── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── AndroidManifestNew.xml
│ │ │ └── java
│ │ │ └── VectorIconsOcticonsPackage.kt
│ ├── babel.config.js
│ ├── fonts
│ │ └── Octicons.ttf
│ ├── glyphmaps
│ │ └── Octicons.json
│ ├── package.json
│ ├── react-native-vector-icons-octicons.podspec
│ ├── src
│ │ └── index.ts
│ ├── tsconfig.build.json
│ └── tsconfig.json
├── simple-line-icons
│ ├── .yo-rc.json
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── android
│ │ ├── build.gradle
│ │ └── src
│ │ │ └── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── AndroidManifestNew.xml
│ │ │ └── java
│ │ │ └── VectorIconsSimpleLineIconsPackage.kt
│ ├── babel.config.js
│ ├── fonts
│ │ └── SimpleLineIcons.ttf
│ ├── glyphmaps
│ │ └── SimpleLineIcons.json
│ ├── package.json
│ ├── react-native-vector-icons-simple-line-icons.podspec
│ ├── src
│ │ └── index.ts
│ ├── tsconfig.build.json
│ └── tsconfig.json
└── zocial
│ ├── .yo-rc.json
│ ├── CHANGELOG.md
│ ├── README.md
│ ├── android
│ ├── build.gradle
│ └── src
│ │ └── main
│ │ ├── AndroidManifest.xml
│ │ ├── AndroidManifestNew.xml
│ │ └── java
│ │ └── VectorIconsZocialPackage.kt
│ ├── babel.config.js
│ ├── fonts
│ └── Zocial.ttf
│ ├── glyphmaps
│ └── Zocial.json
│ ├── package.json
│ ├── react-native-vector-icons-zocial.podspec
│ ├── src
│ └── index.ts
│ ├── tsconfig.build.json
│ └── tsconfig.json
├── pnpm-lock.yaml
├── pnpm-workspace.yaml
├── scripts
├── fix-glyphmaps.sh
└── generate-fonts.sh
└── tsconfig.json
/.editorconfig:
--------------------------------------------------------------------------------
1 | # EditorConfig helps developers define and maintain consistent
2 | # coding styles between different editors and IDEs
3 | # editorconfig.org
4 |
5 | root = true
6 |
7 | [*]
8 |
9 | indent_style = space
10 | indent_size = 2
11 |
12 | end_of_line = lf
13 | charset = utf-8
14 | trim_trailing_whitespace = true
15 | insert_final_newline = true
16 |
17 | [*.md]
18 | trim_trailing_whitespace = false
19 |
--------------------------------------------------------------------------------
/.eslintignore:
--------------------------------------------------------------------------------
1 | ##############
2 | # yeoman
3 | ##############
4 |
5 | # Ignore the templates with <%= %> tags, we'll pickup the errors in the generated code
6 | packages/generator-react-native-vector-icons/src/app/templates/src/index.ts
7 |
8 | # Ignore yeomenan generated template
9 | packages/generator-react-native-vector-icons/generators
10 | packages/generator-react-native-vector-icons/src/app/templates
11 | packages/fontawesome-common/generators
12 |
13 | ##############
14 | # packages
15 | ##############
16 |
17 | # Ignore built code
18 | packages/*/lib
19 | packages/directory/build
20 |
21 | # Files we don't manage (react-native-test-app)
22 | packages/icon-explorer/metro.config.js
23 | packages/icon-explorer/react-native.config.js
24 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | *.pbxproj -text
2 | # specific for windows script files
3 | *.bat text eol=crlf
4 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/config.yml:
--------------------------------------------------------------------------------
1 | blank_issues_enabled: false
2 | contact_links:
3 | - name: Community Support
4 | url: https://github.com/react-native-vector-icons/discussions
5 | about: Please ask and answer questions here.
6 |
--------------------------------------------------------------------------------
/.github/funding.yml:
--------------------------------------------------------------------------------
1 | github: [oblador]
2 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # OSX
2 | .DS_Store
3 |
4 | # Xcode
5 | build/
6 | *.pbxuser
7 | !default.pbxuser
8 | *.mode1v3
9 | !default.mode1v3
10 | *.mode2v3
11 | !default.mode2v3
12 | *.perspectivev3
13 | !default.perspectivev3
14 | xcuserdata
15 | *.xccheckout
16 | *.moved-aside
17 | DerivedData
18 | *.hmap
19 | *.ipa
20 | *.xcuserstate
21 | project.xcworkspace
22 |
23 | # Android/IJ
24 | .classpath
25 | .cxx
26 | .gradle
27 | .idea
28 | .project
29 | .settings
30 | local.properties
31 | android.iml
32 |
33 | # node.js
34 | node_modules/
35 |
36 | # BUCK
37 | buck-out/
38 | \.buckd/
39 | android/app/libs
40 | android/keystores/debug.keystore
41 |
42 | # generated by bob
43 | lib/
44 |
45 | # Turborepo
46 | .turbo/
47 |
48 | # React Native Codegen
49 | ios/generated
50 | android/generated
51 |
52 | # Nx
53 | .nx/cache
54 | .nx/workspace-data
55 |
56 | # Diffenator
57 | diffenator
58 |
--------------------------------------------------------------------------------
/.npmrc:
--------------------------------------------------------------------------------
1 | node-linker=hoisted
2 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2015 Joel Arvidsson
4 | Permission is hereby granted, free of charge, to any person obtaining a copy
5 | of this software and associated documentation files (the "Software"), to deal
6 | in the Software without restriction, including without limitation the rights
7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 | copies of the Software, and to permit persons to whom the Software is
9 | furnished to do so, subject to the following conditions:
10 |
11 | The above copyright notice and this permission notice shall be included in all
12 | copies or substantial portions of the Software.
13 |
14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20 | SOFTWARE.
21 |
--------------------------------------------------------------------------------
/TODO.md:
--------------------------------------------------------------------------------
1 | # TODO
2 |
3 | * Test the other targets
4 | * macOS
5 | * windows
6 | * web
7 | * When we stop supporting 0.73 move to generating codegen artifcats and shipping them in libraries
8 |
--------------------------------------------------------------------------------
/docs/DEVELOPMENT.md:
--------------------------------------------------------------------------------
1 | # Handy reminders for developers
2 |
3 | Things we use
4 |
5 | * nx - for building and releasing (all behind pnpm scripts)
6 |
7 | ## Font versioning
8 |
9 | Font package versions are now independent of upstream font versions and we track the mapping in the README.md
10 |
11 | ## Publishing
12 |
13 | This will auto detect which packages need to be published on NPM and ask which versions you want to set the packages to.
14 |
15 | ```sh
16 | pnpm release --verbose
17 | ```
18 |
19 | ## Building
20 |
21 | ```sh
22 | # Regenerate and update the font packages
23 | pnpm run generate
24 |
25 | # Build everything
26 | pnpm run prepare
27 | ```
28 |
29 | ## Alpha release
30 |
31 | ```sh
32 | # Remove --dry-run to actually publish
33 | pnpm nx release prerelease --verbose --skip-publish --dry-run
34 | pnpm nx release publish --verbose --tag alpha --dry-run
35 |
36 | # A single package
37 | pnpm nx release prerelease --verbose --skip-publish --package @react-native-vector-icons/lucide --dry-run
38 | pnpm nx release publish --verbose --tag alpha --package @react-native-vector-icons/lucide --dry-run
39 | ```
40 |
--------------------------------------------------------------------------------
/lefthook.yml:
--------------------------------------------------------------------------------
1 | pre-commit:
2 | parallel: true
3 | commands:
4 | eslint:
5 | run: pnpm run lint:eslint
6 | biome:
7 | run: pnpm run lint:biome
8 | # NOTE: Disabled because it is too slow
9 | # types:
10 | # glob: "*.{json,js,ts,tsx}"
11 | # run: npm run lint:types
12 | commit-msg:
13 | parallel: true
14 | commands:
15 | commitlint:
16 | run: npx commitlint --edit
17 |
--------------------------------------------------------------------------------
/nx.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "./node_modules/nx/schemas/nx-schema.json",
3 | "targetDefaults": {
4 | "clean": {
5 | "dependsOn": ["^clean"]
6 | },
7 | "prepare": {
8 | "dependsOn": ["^prepare"]
9 | },
10 | "prepack": {
11 | "dependsOn": ["^prepack"]
12 | },
13 | "postpack": {
14 | "dependsOn": ["^postpack"]
15 | }
16 | },
17 | "defaultBase": "master",
18 | "release": {
19 | "projects": [
20 | "*",
21 | "!@react-native-vector-icons/icon-explorer",
22 | "!@react-native-vector-icons/fontcustom-docker",
23 | "!@react-native-vector-icons/directory"
24 | ],
25 | "projectsRelationship": "independent",
26 | "changelog": {
27 | "projectChangelogs": {
28 | "createRelease": "github"
29 | },
30 | "workspaceChangelog": {
31 | "createRelease": "github"
32 | }
33 | },
34 | "version": {
35 | "conventionalCommits": true,
36 | "generatorOptions": {
37 | "NOTE": "We want auto but it's overzealous for our purposes, see https://github.com/nrwl/nx/discussions/29135",
38 | "updateDependents": "never",
39 | "preserveLocalDependencyProtocols": true
40 | }
41 | }
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/packages/ant-design/.yo-rc.json:
--------------------------------------------------------------------------------
1 | {
2 | "generator-react-native-vector-icons": {
3 | "packageName": "ant-design",
4 | "upstreamFont": "@ant-design/icons-svg",
5 | "buildSteps": {
6 | "fixSVGPaths": {
7 | "location": "../../node_modules/@ant-design/icons-svg/inline-namespaced-svg/outlined"
8 | },
9 | "fontCustom": {
10 | "location": "fixedSvg",
11 | "cleanup": true
12 | },
13 | "glyphmap": {
14 | "mode": "css",
15 | "cleanup": true
16 | }
17 | },
18 | "versions": [{ "rnvi": "12.0.0", "upstream": "4.4.2" }]
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/packages/ant-design/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # 12.0.0 (2025-05-04)
2 |
3 | ### 🚀 Features
4 |
5 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
6 | - add lucide icon ([#1702](https://github.com/oblador/react-native-vector-icons/pull/1702))
7 |
8 | ### 🩹 Fixes
9 |
10 | - upgrade octicons to 19.14.0 ([#1691](https://github.com/oblador/react-native-vector-icons/pull/1691))
11 | - upgrade fontawesome6 to 6.7.2 ([#1690](https://github.com/oblador/react-native-vector-icons/pull/1690))
12 | - mac osx detection in glyphmap script ([2967ce99](https://github.com/oblador/react-native-vector-icons/commit/2967ce99))
13 |
14 | ### ⚠️ Breaking Changes
15 |
16 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
17 |
18 | ### ❤️ Thank You
19 |
20 | - Chanphirom Sok @chanphiromsok
21 | - John Ferlito @johnf
--------------------------------------------------------------------------------
/packages/ant-design/README.md:
--------------------------------------------------------------------------------
1 | # React Native Vector Icons - Ant Design
2 |
3 | Ant Design font for React Native Vector Icons
4 |
5 | See the [React Native Vector Icons README](../../README.md) for more details.
6 |
7 | ## Installation
8 |
9 | ```sh
10 | npm install @react-native-vector-icons/ant-design
11 | ```
12 |
13 | ## Usage
14 |
15 | ```js
16 | import AntDesign from '@react-native-vector-icons/ant-design';
17 |
18 | // ...
19 |
20 |
21 | ```
22 |
23 |
24 | ## Versions
25 |
26 | Prior to version 12, the version of this font package tracked the upstream version.
27 |
28 | The table below tracks which font version is included in each package version.
29 |
30 | | RNVI version | Upstream version |
31 | | ------------ | ---------------- |
32 | | <= 12.0.0 | 4.4.2 |
33 |
34 | ## Contributing
35 |
36 | See the [contributing guide](../../CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.
37 |
38 | ## License
39 |
40 | MIT
41 |
--------------------------------------------------------------------------------
/packages/ant-design/android/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
--------------------------------------------------------------------------------
/packages/ant-design/android/src/main/AndroidManifestNew.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/packages/ant-design/android/src/main/java/VectorIconsAntDesignPackage.kt:
--------------------------------------------------------------------------------
1 | package com.reactnativevectoricons.ant_design
2 |
3 | import com.facebook.react.TurboReactPackage
4 | import com.facebook.react.bridge.NativeModule
5 | import com.facebook.react.bridge.ReactApplicationContext
6 | import com.facebook.react.module.model.ReactModuleInfoProvider
7 |
8 | class VectorIconsAntDesignPackage : TurboReactPackage() {
9 | override fun getModule(
10 | name: String,
11 | reactContext: ReactApplicationContext,
12 | ): NativeModule? = null
13 |
14 | override fun getReactModuleInfoProvider(): ReactModuleInfoProvider =
15 | ReactModuleInfoProvider {
16 | mapOf()
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/packages/ant-design/babel.config.js:
--------------------------------------------------------------------------------
1 | // NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | // If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | module.exports = {
5 | presets: [['module:react-native-builder-bob/babel-preset', { modules: 'commonjs' }]],
6 | };
7 |
--------------------------------------------------------------------------------
/packages/ant-design/fonts/AntDesign.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oblador/react-native-vector-icons/54ba7a29f90a008ebc668ae572587b746789fceb/packages/ant-design/fonts/AntDesign.ttf
--------------------------------------------------------------------------------
/packages/ant-design/react-native-vector-icons-ant-design.podspec:
--------------------------------------------------------------------------------
1 | # NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | # If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | require 'json'
5 |
6 | package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
7 |
8 | Pod::Spec.new do |s|
9 | s.name = 'react-native-vector-icons-ant-design'
10 | s.version = package['version']
11 | s.summary = package['description']
12 | s.homepage = package['homepage']
13 | s.license = package['license']
14 | s.authors = package['author']
15 |
16 | s.platforms = { ios: min_ios_version_supported, tvos: '9.0', visionos: '1.0' }
17 | s.source = { git: package['repository']['url'], tag: "v#{s.version}" }
18 |
19 | s.resources = 'fonts/*.ttf'
20 | end
21 |
--------------------------------------------------------------------------------
/packages/ant-design/src/index.ts:
--------------------------------------------------------------------------------
1 | // NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | // If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | /**
5 | * This is a generated file. If you modify it manually, your changes will be lost!
6 | * Instead, modify the template in `generator-react-native-vector-icons`.
7 | *
8 | * AntDesign icon set component.
9 | * Usage:
10 | */
11 |
12 | import { createIconSet } from '@react-native-vector-icons/common';
13 | import glyphMap from '../glyphmaps/AntDesign.json';
14 |
15 | const Icon = createIconSet(glyphMap, {
16 | postScriptName: 'AntDesign',
17 | fontFileName: 'AntDesign.ttf',
18 | fontSource: require('../fonts/AntDesign.ttf'), // eslint-disable-line @typescript-eslint/no-require-imports, global-require
19 | });
20 |
21 | export default Icon;
22 |
--------------------------------------------------------------------------------
/packages/ant-design/tsconfig.build.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig",
3 | "exclude": ["example", "lib"]
4 | }
5 |
--------------------------------------------------------------------------------
/packages/ant-design/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "rootDir": ".",
4 | "allowUnreachableCode": false,
5 | "allowUnusedLabels": false,
6 | "esModuleInterop": true,
7 | "forceConsistentCasingInFileNames": true,
8 | "jsx": "react-jsx",
9 | "lib": ["ESNext"],
10 | "module": "ESNext",
11 | "moduleResolution": "Bundler",
12 | "noEmit": true,
13 | "noFallthroughCasesInSwitch": true,
14 | "noImplicitReturns": true,
15 | "noImplicitUseStrict": false,
16 | "noStrictGenericChecks": false,
17 | "noUncheckedIndexedAccess": true,
18 | "noUnusedLocals": true,
19 | "noUnusedParameters": true,
20 | "resolveJsonModule": true,
21 | "skipLibCheck": true,
22 | "strict": true,
23 | "target": "ESNext",
24 | "verbatimModuleSyntax": true
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/packages/codemod/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # 12.0.0 (2025-05-04)
2 |
3 | ### 🚀 Features
4 |
5 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
6 | - add lucide icon ([#1702](https://github.com/oblador/react-native-vector-icons/pull/1702))
7 |
8 | ### 🩹 Fixes
9 |
10 | - upgrade octicons to 19.14.0 ([#1691](https://github.com/oblador/react-native-vector-icons/pull/1691))
11 | - upgrade fontawesome6 to 6.7.2 ([#1690](https://github.com/oblador/react-native-vector-icons/pull/1690))
12 |
13 | ### ⚠️ Breaking Changes
14 |
15 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
16 |
17 | ### ❤️ Thank You
18 |
19 | - Chanphirom Sok @chanphiromsok
20 | - John Ferlito @johnf
--------------------------------------------------------------------------------
/packages/codemod/src/11.0/icon-style-transform.ts:
--------------------------------------------------------------------------------
1 | import type { Collection, JSCodeshift, JSXAttribute } from 'jscodeshift';
2 |
3 | const componentNames = ['FontAwesome5', 'FontAwesome6', 'FontAwesome5Pro', 'FontAwesome6Pro', 'Icon'];
4 | const iconStyles = ['brand', 'solid', 'light', 'thin', 'duotone', 'sharp', 'sharpSolid', 'sharpLight'];
5 |
6 | export default (j: JSCodeshift, root: Collection) =>
7 | root
8 | .find(j.JSXOpeningElement)
9 | .forEach((path) => {
10 | if (path.node.name.type !== 'JSXIdentifier') {
11 | return;
12 | }
13 |
14 | if (!componentNames.includes(path.node.name.name)) {
15 | return;
16 | }
17 |
18 | const { node } = path;
19 | iconStyles.forEach((style) => {
20 | const styleAttr = node.attributes?.find((attr) => attr.type === 'JSXAttribute' && attr.name.name === style) as
21 | | JSXAttribute
22 | | undefined;
23 | if (!styleAttr) {
24 | return;
25 | }
26 |
27 | styleAttr.name = j.jsxIdentifier('iconStyle');
28 | styleAttr.value = j.stringLiteral(style);
29 | });
30 | })
31 | .toSource();
32 |
--------------------------------------------------------------------------------
/packages/codemod/src/11.0/index.ts:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 |
3 | /* eslint-disable no-console */
4 |
5 | import { exec } from 'node:child_process';
6 | import path from 'node:path';
7 |
8 | import infoPlistTransform from './info-plist';
9 | import packageJsonTransform from './package-json';
10 | import removeFonts from './remove-fonts';
11 |
12 | const dir = process.argv[2];
13 | if (!dir) {
14 | console.error('Please specify a directory to transform');
15 | process.exit(1);
16 | }
17 |
18 | const transformFilePath = path.join(__dirname, 'transform.js');
19 | const cmd = `jscodeshift --transform ${transformFilePath} --extensions js,ts,jsx,tsx --parser tsx --ignore-pattern '**/node_modules/**' ${dir}`;
20 |
21 | const proc = exec(cmd, { env: { ...process.env, FORCE_COLOR: 'true' } });
22 |
23 | const pkgs = new Set();
24 | proc.stdout?.on('data', (data: string) => {
25 | console.log(data);
26 |
27 | const lines = data.split('\n');
28 |
29 | lines.forEach((line) => {
30 | if (line.match('DEP_FOUND: ')) {
31 | pkgs.add(line.replace(/.*DEP_FOUND: /, '').trim());
32 | }
33 | });
34 | });
35 |
36 | proc.stderr?.on('data', (data) => {
37 | console.error(data);
38 | });
39 |
40 | proc.on('exit', () => {
41 | packageJsonTransform(pkgs);
42 | infoPlistTransform();
43 | removeFonts();
44 | });
45 |
--------------------------------------------------------------------------------
/packages/codemod/src/11.0/package-json.ts:
--------------------------------------------------------------------------------
1 | import fs from 'node:fs';
2 |
3 | const getVersion = async (pkg: string) => {
4 | const packageJson = await fetch(`https://registry.npmjs.org/${pkg}/latest`).then(
5 | (res) => res.json() as unknown as { version: string },
6 | );
7 | return `^${packageJson.version}`;
8 | };
9 |
10 | export default async (pkgs: Set) => {
11 | const packageJson = JSON.parse(fs.readFileSync('package.json', 'utf8'));
12 | const { dependencies } = packageJson;
13 |
14 | pkgs.forEach(async (pkg) => {
15 | if (!dependencies[pkg]) {
16 | dependencies[pkg] = await getVersion(pkg);
17 | }
18 | });
19 |
20 | if (pkgs.size > 0 && dependencies['react-native-vector-icons']) {
21 | dependencies['react-native-vector-icons'] = undefined;
22 | dependencies['@react-native-vector-icons/common'] = await getVersion('@react-native-vector-icons/common');
23 | fs.writeFileSync('package.json', JSON.stringify(packageJson, null, 2));
24 | }
25 | };
26 |
--------------------------------------------------------------------------------
/packages/codemod/src/11.0/transform.ts:
--------------------------------------------------------------------------------
1 | import type { API, FileInfo } from 'jscodeshift';
2 |
3 | import iconStyleTransform from './icon-style-transform';
4 | import importTransform from './import-transform';
5 |
6 | export default (file: FileInfo, api: API) => {
7 | const j = api.jscodeshift;
8 | const r = api.report;
9 | const root = j(file.source);
10 |
11 | // Apply each transform
12 | importTransform(j, root, r);
13 | iconStyleTransform(j, root);
14 |
15 | return root.toSource();
16 | };
17 |
--------------------------------------------------------------------------------
/packages/codemod/src/12.0/index.ts:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 |
3 | /* eslint-disable no-console */
4 |
5 | import { exec } from 'node:child_process';
6 | import path from 'node:path';
7 |
8 | import moveFonts from './move-fonts';
9 | import packageJsonTransform from './package-json';
10 |
11 | const dir = process.argv[2];
12 | if (!dir) {
13 | console.error('Please specify a directory to transform');
14 | process.exit(1);
15 | }
16 |
17 | const transformFilePath = path.join(__dirname, 'transform.js');
18 | const cmd = `jscodeshift --transform ${transformFilePath} --extensions js,ts,jsx,tsx --parser tsx --ignore-pattern '**/node_modules/**' ${dir}`;
19 |
20 | const proc = exec(cmd, { env: { ...process.env, FORCE_COLOR: 'true' } });
21 |
22 | proc.stdout?.on('data', (data: string) => {
23 | console.log(data);
24 | });
25 |
26 | proc.stderr?.on('data', (data) => {
27 | console.error(data);
28 | });
29 |
30 | proc.on('exit', () => {
31 | packageJsonTransform();
32 | moveFonts(dir);
33 | });
34 |
--------------------------------------------------------------------------------
/packages/codemod/src/12.0/package-json.ts:
--------------------------------------------------------------------------------
1 | import fs from 'node:fs';
2 |
3 | export default () => {
4 | const packageJson = JSON.parse(fs.readFileSync('package.json', 'utf8'));
5 |
6 | const { dependencies } = packageJson;
7 |
8 | if (dependencies['@react-native-vector-icons/common']) {
9 | dependencies['@react-native-vector-icons/common'] = undefined;
10 | fs.writeFileSync('package.json', JSON.stringify(packageJson, null, 2));
11 | }
12 | };
13 |
--------------------------------------------------------------------------------
/packages/codemod/src/12.0/transform.ts:
--------------------------------------------------------------------------------
1 | import type { API, FileInfo } from 'jscodeshift';
2 |
3 | export default (file: FileInfo, api: API) => {
4 | const j = api.jscodeshift;
5 | // const r = api.report;
6 | const root = j(file.source);
7 |
8 | // Apply each transform
9 |
10 | return root.toSource();
11 | };
12 |
--------------------------------------------------------------------------------
/packages/codemod/src/index.ts:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 |
3 | /* eslint-disable no-console */
4 |
5 | import path from 'node:path';
6 |
7 | import semver from 'semver';
8 |
9 | const dir = process.argv[2];
10 | if (!dir) {
11 | console.error('Please specify a directory to transform');
12 | process.exit(1);
13 | }
14 |
15 | // eslint-disable-next-line import/no-dynamic-require,@typescript-eslint/no-require-imports
16 | const projectPkgJson = require(path.join(dir, 'package.json'));
17 |
18 | const { dependencies } = projectPkgJson;
19 |
20 | let version: string;
21 |
22 | if (dependencies['react-native-vector-icons']) {
23 | version = '11.x';
24 | await import('./11.0');
25 | } else {
26 | const currentVersion = dependencies['@react-native-vector-icons/common'];
27 |
28 | if (semver.satisfies(currentVersion, '12.x')) {
29 | version = '12.x';
30 | await import('./12.0');
31 | } else {
32 | console.error('Unsupported version of react-native-vector-icons');
33 | process.exit(1);
34 | }
35 | }
36 |
37 | console.log(`
38 | Transform complete!
39 |
40 | Upgraded to version ${version}
41 |
42 | NOTE: You may need to run again to upgrade to the next version.
43 | NOTE: You may need to run 'npm install' to install new dependencies.
44 |
45 | Please check https://github.com/react-native-vector-icons/react-native-vector-icons/blob/master/MIGRATION.md for any manual steps
46 | `);
47 |
--------------------------------------------------------------------------------
/packages/codemod/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "rootDir": ".",
4 | "allowUnreachableCode": false,
5 | "allowUnusedLabels": false,
6 | "esModuleInterop": true,
7 | "forceConsistentCasingInFileNames": true,
8 | "jsx": "react",
9 | "lib": ["esnext"],
10 | "module": "esnext",
11 | "moduleResolution": "node",
12 | "noFallthroughCasesInSwitch": true,
13 | "noImplicitReturns": true,
14 | "noImplicitUseStrict": false,
15 | "noStrictGenericChecks": false,
16 | "noUncheckedIndexedAccess": true,
17 | "noUnusedLocals": true,
18 | "noUnusedParameters": true,
19 | "resolveJsonModule": true,
20 | "skipLibCheck": true,
21 | "strict": true,
22 | "target": "esnext",
23 | "verbatimModuleSyntax": true
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/packages/common/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/packages/common/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # 12.0.0 (2025-05-04)
2 |
3 | ### 🚀 Features
4 |
5 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
6 | - add lucide icon ([#1702](https://github.com/oblador/react-native-vector-icons/pull/1702))
7 |
8 | ### 🩹 Fixes
9 |
10 | - make the extra font warning yellow ([#1707](https://github.com/oblador/react-native-vector-icons/pull/1707))
11 | - upgrade octicons to 19.14.0 ([#1691](https://github.com/oblador/react-native-vector-icons/pull/1691))
12 | - upgrade fontawesome6 to 6.7.2 ([#1690](https://github.com/oblador/react-native-vector-icons/pull/1690))
13 |
14 | ### ⚠️ Breaking Changes
15 |
16 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
17 |
18 | ### ❤️ Thank You
19 |
20 | - Chanphirom Sok @chanphiromsok
21 | - John Ferlito @johnf
--------------------------------------------------------------------------------
/packages/common/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [['module:react-native-builder-bob/babel-preset', { modules: 'commonjs' }]],
3 | };
4 |
--------------------------------------------------------------------------------
/packages/common/src/create-icon-source-cache.ts:
--------------------------------------------------------------------------------
1 | const TYPE_VALUE = 'value';
2 | const TYPE_ERROR = 'error';
3 |
4 | type ValueData = { uri: string; scale: number };
5 |
6 | type Value = { type: typeof TYPE_VALUE; data: ValueData } | { type: typeof TYPE_ERROR; data: Error };
7 |
8 | export default function createIconSourceCache() {
9 | const cache = new Map();
10 |
11 | const setValue = (key: string, value: ValueData) => cache.set(key, { type: TYPE_VALUE, data: value });
12 |
13 | const setError = (key: string, error: Error) => cache.set(key, { type: TYPE_ERROR, data: error });
14 |
15 | const has = (key: string) => cache.has(key);
16 |
17 | const get = (key: string) => {
18 | const value = cache.get(key);
19 | if (!value) {
20 | return undefined;
21 | }
22 |
23 | const { type, data } = value;
24 | if (type === TYPE_ERROR) {
25 | throw data;
26 | }
27 | return data;
28 | };
29 |
30 | return { setValue, setError, has, get };
31 | }
32 |
--------------------------------------------------------------------------------
/packages/common/src/dynamicLoading/dynamic-font-loading.web.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * dynamic font loading isn't supported on web
3 | * */
4 | import type { DynamicLoader, FontSource } from './types';
5 |
6 | // eslint-disable-next-line @typescript-eslint/no-unused-vars
7 | const loadFontAsync = async (_fontFamily: string, _fontSource: FontSource): Promise => undefined;
8 |
9 | // eslint-disable-next-line @typescript-eslint/no-unused-vars
10 | const isLoaded = (_fontFamily: string) => true;
11 |
12 | export const dynamicLoader: DynamicLoader = {
13 | isLoaded,
14 | loadFontAsync,
15 | };
16 |
--------------------------------------------------------------------------------
/packages/common/src/dynamicLoading/types.ts:
--------------------------------------------------------------------------------
1 | // the result of calling require('path')
2 | type ModuleId = number;
3 | type LocalFileSystemUri = string;
4 |
5 | export type FontSource = ModuleId | LocalFileSystemUri;
6 |
7 | export type DynamicLoader = {
8 | loadFontAsync: (fontFamily: string, fontSource: FontSource) => Promise;
9 | isLoaded: (fontFamily: string) => boolean;
10 | };
11 |
--------------------------------------------------------------------------------
/packages/common/src/get-image-library.ts:
--------------------------------------------------------------------------------
1 | // eslint-disable-next-line import/no-mutable-exports
2 | let NativeIconAPI: typeof import('@react-native-vector-icons/get-image') | null = null;
3 |
4 | try {
5 | // eslint-disable-next-line global-require,import/no-extraneous-dependencies,@typescript-eslint/no-require-imports
6 | NativeIconAPI = require('@react-native-vector-icons/get-image');
7 | } catch {
8 | // No warning at this stage
9 | }
10 |
11 | export const ensureGetImageAvailable = () => {
12 | if (!NativeIconAPI) {
13 | throw new Error(
14 | 'Could not import @react-native-vector-icons/get-image, did you install it? It is required for getImageSource*',
15 | );
16 | }
17 |
18 | NativeIconAPI.ensureNativeModuleAvailable();
19 |
20 | return NativeIconAPI;
21 | };
22 |
--------------------------------------------------------------------------------
/packages/common/src/index.ts:
--------------------------------------------------------------------------------
1 | export { createIconSet, DEFAULT_ICON_SIZE, DEFAULT_ICON_COLOR } from './create-icon-set';
2 | export type { IconProps, CreateIconSetOptions } from './create-icon-set';
3 | export {
4 | setDynamicLoadingEnabled,
5 | isDynamicLoadingEnabled,
6 | isDynamicLoadingSupported,
7 | setDynamicLoadingErrorCallback,
8 | } from './dynamicLoading/dynamic-loading-setting';
9 |
--------------------------------------------------------------------------------
/packages/common/tsconfig.build.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig",
3 | "exclude": ["example", "lib"]
4 | }
5 |
--------------------------------------------------------------------------------
/packages/common/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "rootDir": ".",
4 | "allowUnreachableCode": false,
5 | "allowUnusedLabels": false,
6 | "esModuleInterop": true,
7 | "forceConsistentCasingInFileNames": true,
8 | "jsx": "react-jsx",
9 | "lib": ["ESNext"],
10 | "module": "ESNext",
11 | "moduleResolution": "Bundler",
12 | "noEmit": true,
13 | "noFallthroughCasesInSwitch": true,
14 | "noImplicitReturns": true,
15 | "noImplicitUseStrict": false,
16 | "noStrictGenericChecks": false,
17 | "noUncheckedIndexedAccess": true,
18 | "noUnusedLocals": true,
19 | "noUnusedParameters": true,
20 | "resolveJsonModule": true,
21 | "skipLibCheck": true,
22 | "strict": true,
23 | "target": "ESNext",
24 | "verbatimModuleSyntax": true
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/packages/directory/.env:
--------------------------------------------------------------------------------
1 | SKIP_PREFLIGHT_CHECK=true
2 | DISABLE_ESLINT_PLUGIN=true
3 |
--------------------------------------------------------------------------------
/packages/directory/.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 | # production
12 | /build
13 |
14 | # misc
15 | .DS_Store
16 | .env.local
17 | .env.development.local
18 | .env.test.local
19 | .env.production.local
20 |
21 | npm-debug.log*
22 |
23 | generated
24 |
--------------------------------------------------------------------------------
/packages/directory/CHANGELOG.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oblador/react-native-vector-icons/54ba7a29f90a008ebc668ae572587b746789fceb/packages/directory/CHANGELOG.md
--------------------------------------------------------------------------------
/packages/directory/bin/generate-font-styles.js:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 |
3 | const path = require('node:path'); // eslint-disable-line @typescript-eslint/no-require-imports
4 | const { globSync } = require('glob'); // eslint-disable-line @typescript-eslint/no-require-imports
5 |
6 | const customFontMap = {
7 | 'FontAwesome5_Solid.ttf': 'FontAwesome5',
8 | 'FontAwesome5_Brands.ttf': 'FontAwesome5Brands',
9 | 'FontAwesome6_Solid.ttf': 'FontAwesome6',
10 | 'FontAwesome6_Brands.ttf': 'FontAwesome6Brands',
11 | };
12 |
13 | const fontFiles = globSync('src/generated/fonts/*.ttf');
14 |
15 | const styles = fontFiles
16 | .map((file) => path.basename(file))
17 | .map((file) => ({
18 | file,
19 | fontFamily: customFontMap[file] || path.basename(file, '.ttf'),
20 | }))
21 | .map(
22 | ({ file, fontFamily }) => `
23 | @font-face {
24 | font-family: '${fontFamily}';
25 | src: url('./fonts/${file}') format('truetype');
26 | }
27 | `,
28 | )
29 | .join('\n');
30 |
31 | process.stdout.write(styles);
32 |
--------------------------------------------------------------------------------
/packages/directory/public/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "short_name": "Directory",
3 | "name": "React Native Vector Icons Directory",
4 | "icons": [
5 | {
6 | "src": "favicon.ico",
7 | "sizes": "64x64 32x32 24x24 16x16",
8 | "type": "image/x-icon"
9 | },
10 | {
11 | "src": "logo192.png",
12 | "type": "image/png",
13 | "sizes": "192x192"
14 | },
15 | {
16 | "src": "logo512.png",
17 | "type": "image/png",
18 | "sizes": "512x512"
19 | }
20 | ],
21 | "start_url": ".",
22 | "display": "standalone",
23 | "theme_color": "#000000",
24 | "background_color": "#ffffff"
25 | }
26 |
--------------------------------------------------------------------------------
/packages/directory/public/robots.txt:
--------------------------------------------------------------------------------
1 | # https://www.robotstxt.org/robotstxt.html
2 | User-agent: *
3 | Disallow:
4 |
--------------------------------------------------------------------------------
/packages/directory/src/App.test.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 |
3 | import { render, screen } from '@testing-library/react';
4 | import App from './App';
5 |
6 | test('renders directory link', () => {
7 | render();
8 | const linkElement = screen.getByText(/react-native-vector-icons directory/i);
9 | expect(linkElement).toBeInTheDocument();
10 | });
11 |
--------------------------------------------------------------------------------
/packages/directory/src/index.css:
--------------------------------------------------------------------------------
1 | body {
2 | margin: 0;
3 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans",
4 | "Droid Sans", "Helvetica Neue", sans-serif;
5 | -webkit-font-smoothing: antialiased;
6 | -moz-osx-font-smoothing: grayscale;
7 | }
8 |
9 | code {
10 | font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", monospace;
11 | }
12 |
--------------------------------------------------------------------------------
/packages/directory/src/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ReactDOM from 'react-dom/client';
3 |
4 | import App from './App';
5 | import reportWebVitals from './reportWebVitals';
6 |
7 | import './index.css';
8 |
9 | const root = ReactDOM.createRoot(document.getElementById('root') as HTMLElement);
10 | root.render(
11 |
12 |
13 | ,
14 | );
15 |
16 | // If you want to start measuring performance in your app, pass a function
17 | // to log results (for example: reportWebVitals(console.log))
18 | // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
19 | reportWebVitals();
20 |
--------------------------------------------------------------------------------
/packages/directory/src/react-app-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
--------------------------------------------------------------------------------
/packages/directory/src/reportWebVitals.ts:
--------------------------------------------------------------------------------
1 | import type { MetricType } from 'web-vitals';
2 |
3 | const reportWebVitals = (onPerfEntry?: (metric: MetricType) => void) => {
4 | if (onPerfEntry && onPerfEntry instanceof Function) {
5 | import('web-vitals').then(({ onCLS, onINP, onFCP, onLCP, onTTFB }) => {
6 | onCLS(onPerfEntry);
7 | onINP(onPerfEntry);
8 | onFCP(onPerfEntry);
9 | onLCP(onPerfEntry);
10 | onTTFB(onPerfEntry);
11 | });
12 | }
13 | };
14 |
15 | export default reportWebVitals;
16 |
--------------------------------------------------------------------------------
/packages/directory/src/setupTests.js:
--------------------------------------------------------------------------------
1 | // jest-dom adds custom jest matchers for asserting on DOM nodes.
2 | // allows you to do things like:
3 | // expect(element).toHaveTextContent(/react/i)
4 | // learn more: https://github.com/testing-library/jest-dom
5 | import '@testing-library/jest-dom';
6 |
--------------------------------------------------------------------------------
/packages/directory/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "lib": ["dom", "dom.iterable", "esnext"],
5 | "allowJs": true,
6 | "skipLibCheck": true,
7 | "esModuleInterop": true,
8 | "allowSyntheticDefaultImports": true,
9 | "strict": true,
10 | "forceConsistentCasingInFileNames": true,
11 | "noFallthroughCasesInSwitch": true,
12 | "module": "esnext",
13 | "moduleResolution": "node",
14 | "resolveJsonModule": true,
15 | "isolatedModules": true,
16 | "noEmit": true,
17 | "jsx": "react-jsx"
18 | },
19 | "include": ["src"]
20 | }
21 |
--------------------------------------------------------------------------------
/packages/entypo/.yo-rc.json:
--------------------------------------------------------------------------------
1 | {
2 | "generator-react-native-vector-icons": {
3 | "packageName": "entypo",
4 | "upstreamFont": "@entypo-icons/core",
5 | "buildSteps": {
6 | "fontCustom": {
7 | "location": "node_modules/@entypo-icons/core/icons"
8 | },
9 | "glyphmap": {
10 | "mode": "css",
11 | "cleanup": true
12 | }
13 | },
14 | "versions": [{ "rnvi": "12.0.0", "upstream": "1.0.1" }]
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/packages/entypo/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # 12.0.0 (2025-05-04)
2 |
3 | ### 🚀 Features
4 |
5 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
6 | - add lucide icon ([#1702](https://github.com/oblador/react-native-vector-icons/pull/1702))
7 |
8 | ### 🩹 Fixes
9 |
10 | - upgrade octicons to 19.14.0 ([#1691](https://github.com/oblador/react-native-vector-icons/pull/1691))
11 | - upgrade fontawesome6 to 6.7.2 ([#1690](https://github.com/oblador/react-native-vector-icons/pull/1690))
12 | - mac osx detection in glyphmap script ([2967ce99](https://github.com/oblador/react-native-vector-icons/commit/2967ce99))
13 |
14 | ### ⚠️ Breaking Changes
15 |
16 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
17 |
18 | ### ❤️ Thank You
19 |
20 | - Chanphirom Sok @chanphiromsok
21 | - John Ferlito @johnf
--------------------------------------------------------------------------------
/packages/entypo/README.md:
--------------------------------------------------------------------------------
1 | # React Native Vector Icons - Entypo
2 |
3 | Entypo font for React Native Vector Icons
4 |
5 | See the [React Native Vector Icons README](../../README.md) for more details.
6 |
7 | ## Installation
8 |
9 | ```sh
10 | npm install @react-native-vector-icons/entypo
11 | ```
12 |
13 | ## Usage
14 |
15 | ```js
16 | import Entypo from '@react-native-vector-icons/entypo';
17 |
18 | // ...
19 |
20 |
21 | ```
22 |
23 |
24 | ## Versions
25 |
26 | Prior to version 12, the version of this font package tracked the upstream version.
27 |
28 | The table below tracks which font version is included in each package version.
29 |
30 | | RNVI version | Upstream version |
31 | | ------------ | ---------------- |
32 | | <= 12.0.0 | 1.0.1 |
33 |
34 | ## Contributing
35 |
36 | See the [contributing guide](../../CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.
37 |
38 | ## License
39 |
40 | MIT
41 |
--------------------------------------------------------------------------------
/packages/entypo/android/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
--------------------------------------------------------------------------------
/packages/entypo/android/src/main/AndroidManifestNew.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/packages/entypo/android/src/main/java/VectorIconsEntypoPackage.kt:
--------------------------------------------------------------------------------
1 | package com.reactnativevectoricons.entypo
2 |
3 | import com.facebook.react.TurboReactPackage
4 | import com.facebook.react.bridge.NativeModule
5 | import com.facebook.react.bridge.ReactApplicationContext
6 | import com.facebook.react.module.model.ReactModuleInfoProvider
7 |
8 | class VectorIconsEntypoPackage : TurboReactPackage() {
9 | override fun getModule(
10 | name: String,
11 | reactContext: ReactApplicationContext,
12 | ): NativeModule? = null
13 |
14 | override fun getReactModuleInfoProvider(): ReactModuleInfoProvider =
15 | ReactModuleInfoProvider {
16 | mapOf()
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/packages/entypo/babel.config.js:
--------------------------------------------------------------------------------
1 | // NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | // If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | module.exports = {
5 | presets: [['module:react-native-builder-bob/babel-preset', { modules: 'commonjs' }]],
6 | };
7 |
--------------------------------------------------------------------------------
/packages/entypo/fonts/Entypo.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oblador/react-native-vector-icons/54ba7a29f90a008ebc668ae572587b746789fceb/packages/entypo/fonts/Entypo.ttf
--------------------------------------------------------------------------------
/packages/entypo/react-native-vector-icons-entypo.podspec:
--------------------------------------------------------------------------------
1 | # NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | # If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | require 'json'
5 |
6 | package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
7 |
8 | Pod::Spec.new do |s|
9 | s.name = 'react-native-vector-icons-entypo'
10 | s.version = package['version']
11 | s.summary = package['description']
12 | s.homepage = package['homepage']
13 | s.license = package['license']
14 | s.authors = package['author']
15 |
16 | s.platforms = { ios: min_ios_version_supported, tvos: '9.0', visionos: '1.0' }
17 | s.source = { git: package['repository']['url'], tag: "v#{s.version}" }
18 |
19 | s.resources = 'fonts/*.ttf'
20 | end
21 |
--------------------------------------------------------------------------------
/packages/entypo/src/index.ts:
--------------------------------------------------------------------------------
1 | // NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | // If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | /**
5 | * This is a generated file. If you modify it manually, your changes will be lost!
6 | * Instead, modify the template in `generator-react-native-vector-icons`.
7 | *
8 | * Entypo icon set component.
9 | * Usage:
10 | */
11 |
12 | import { createIconSet } from '@react-native-vector-icons/common';
13 | import glyphMap from '../glyphmaps/Entypo.json';
14 |
15 | const Icon = createIconSet(glyphMap, {
16 | postScriptName: 'Entypo',
17 | fontFileName: 'Entypo.ttf',
18 | fontSource: require('../fonts/Entypo.ttf'), // eslint-disable-line @typescript-eslint/no-require-imports, global-require
19 | });
20 |
21 | export default Icon;
22 |
--------------------------------------------------------------------------------
/packages/entypo/tsconfig.build.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig",
3 | "exclude": ["example", "lib"]
4 | }
5 |
--------------------------------------------------------------------------------
/packages/entypo/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "rootDir": ".",
4 | "allowUnreachableCode": false,
5 | "allowUnusedLabels": false,
6 | "esModuleInterop": true,
7 | "forceConsistentCasingInFileNames": true,
8 | "jsx": "react-jsx",
9 | "lib": ["ESNext"],
10 | "module": "ESNext",
11 | "moduleResolution": "Bundler",
12 | "noEmit": true,
13 | "noFallthroughCasesInSwitch": true,
14 | "noImplicitReturns": true,
15 | "noImplicitUseStrict": false,
16 | "noStrictGenericChecks": false,
17 | "noUncheckedIndexedAccess": true,
18 | "noUnusedLocals": true,
19 | "noUnusedParameters": true,
20 | "resolveJsonModule": true,
21 | "skipLibCheck": true,
22 | "strict": true,
23 | "target": "ESNext",
24 | "verbatimModuleSyntax": true
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/packages/evil-icons/.yo-rc.json:
--------------------------------------------------------------------------------
1 | {
2 | "generator-react-native-vector-icons": {
3 | "packageName": "evil-icons",
4 | "upstreamFont": "evil-icons",
5 | "buildSteps": {
6 | "fontCustom": {
7 | "location": "node_modules/evil-icons/assets/icons"
8 | },
9 | "glyphmap": {
10 | "mode": "css",
11 | "prefix": "icon-ei-",
12 | "cleanup": true
13 | }
14 | },
15 | "versions": [{ "rnvi": "12.0.0", "upstream": "1.10.1" }]
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/packages/evil-icons/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # 12.0.0 (2025-05-04)
2 |
3 | ### 🚀 Features
4 |
5 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
6 | - add lucide icon ([#1702](https://github.com/oblador/react-native-vector-icons/pull/1702))
7 |
8 | ### 🩹 Fixes
9 |
10 | - upgrade octicons to 19.14.0 ([#1691](https://github.com/oblador/react-native-vector-icons/pull/1691))
11 | - upgrade fontawesome6 to 6.7.2 ([#1690](https://github.com/oblador/react-native-vector-icons/pull/1690))
12 | - mac osx detection in glyphmap script ([2967ce99](https://github.com/oblador/react-native-vector-icons/commit/2967ce99))
13 |
14 | ### ⚠️ Breaking Changes
15 |
16 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
17 |
18 | ### ❤️ Thank You
19 |
20 | - Chanphirom Sok @chanphiromsok
21 | - John Ferlito @johnf
--------------------------------------------------------------------------------
/packages/evil-icons/README.md:
--------------------------------------------------------------------------------
1 | # React Native Vector Icons - Evil Icons
2 |
3 | Evil Icons font for React Native Vector Icons
4 |
5 | See the [React Native Vector Icons README](../../README.md) for more details.
6 |
7 | ## Installation
8 |
9 | ```sh
10 | npm install @react-native-vector-icons/evil-icons
11 | ```
12 |
13 | ## Usage
14 |
15 | ```js
16 | import EvilIcons from '@react-native-vector-icons/evil-icons';
17 |
18 | // ...
19 |
20 |
21 | ```
22 |
23 |
24 | ## Versions
25 |
26 | Prior to version 12, the version of this font package tracked the upstream version.
27 |
28 | The table below tracks which font version is included in each package version.
29 |
30 | | RNVI version | Upstream version |
31 | | ------------ | ---------------- |
32 | | <= 12.0.0 | 1.10.1 |
33 |
34 | ## Contributing
35 |
36 | See the [contributing guide](../../CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.
37 |
38 | ## License
39 |
40 | MIT
41 |
--------------------------------------------------------------------------------
/packages/evil-icons/android/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
--------------------------------------------------------------------------------
/packages/evil-icons/android/src/main/AndroidManifestNew.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/packages/evil-icons/android/src/main/java/VectorIconsEvilIconsPackage.kt:
--------------------------------------------------------------------------------
1 | package com.reactnativevectoricons.evil_icons
2 |
3 | import com.facebook.react.TurboReactPackage
4 | import com.facebook.react.bridge.NativeModule
5 | import com.facebook.react.bridge.ReactApplicationContext
6 | import com.facebook.react.module.model.ReactModuleInfoProvider
7 |
8 | class VectorIconsEvilIconsPackage : TurboReactPackage() {
9 | override fun getModule(
10 | name: String,
11 | reactContext: ReactApplicationContext,
12 | ): NativeModule? = null
13 |
14 | override fun getReactModuleInfoProvider(): ReactModuleInfoProvider =
15 | ReactModuleInfoProvider {
16 | mapOf()
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/packages/evil-icons/babel.config.js:
--------------------------------------------------------------------------------
1 | // NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | // If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | module.exports = {
5 | presets: [['module:react-native-builder-bob/babel-preset', { modules: 'commonjs' }]],
6 | };
7 |
--------------------------------------------------------------------------------
/packages/evil-icons/fonts/EvilIcons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oblador/react-native-vector-icons/54ba7a29f90a008ebc668ae572587b746789fceb/packages/evil-icons/fonts/EvilIcons.ttf
--------------------------------------------------------------------------------
/packages/evil-icons/react-native-vector-icons-evil-icons.podspec:
--------------------------------------------------------------------------------
1 | # NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | # If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | require 'json'
5 |
6 | package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
7 |
8 | Pod::Spec.new do |s|
9 | s.name = 'react-native-vector-icons-evil-icons'
10 | s.version = package['version']
11 | s.summary = package['description']
12 | s.homepage = package['homepage']
13 | s.license = package['license']
14 | s.authors = package['author']
15 |
16 | s.platforms = { ios: min_ios_version_supported, tvos: '9.0', visionos: '1.0' }
17 | s.source = { git: package['repository']['url'], tag: "v#{s.version}" }
18 |
19 | s.resources = 'fonts/*.ttf'
20 | end
21 |
--------------------------------------------------------------------------------
/packages/evil-icons/src/index.ts:
--------------------------------------------------------------------------------
1 | // NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | // If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | /**
5 | * This is a generated file. If you modify it manually, your changes will be lost!
6 | * Instead, modify the template in `generator-react-native-vector-icons`.
7 | *
8 | * EvilIcons icon set component.
9 | * Usage:
10 | */
11 |
12 | import { createIconSet } from '@react-native-vector-icons/common';
13 | import glyphMap from '../glyphmaps/EvilIcons.json';
14 |
15 | const Icon = createIconSet(glyphMap, {
16 | postScriptName: 'EvilIcons',
17 | fontFileName: 'EvilIcons.ttf',
18 | fontSource: require('../fonts/EvilIcons.ttf'), // eslint-disable-line @typescript-eslint/no-require-imports, global-require
19 | });
20 |
21 | export default Icon;
22 |
--------------------------------------------------------------------------------
/packages/evil-icons/tsconfig.build.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig",
3 | "exclude": ["example", "lib"]
4 | }
5 |
--------------------------------------------------------------------------------
/packages/evil-icons/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "rootDir": ".",
4 | "allowUnreachableCode": false,
5 | "allowUnusedLabels": false,
6 | "esModuleInterop": true,
7 | "forceConsistentCasingInFileNames": true,
8 | "jsx": "react-jsx",
9 | "lib": ["ESNext"],
10 | "module": "ESNext",
11 | "moduleResolution": "Bundler",
12 | "noEmit": true,
13 | "noFallthroughCasesInSwitch": true,
14 | "noImplicitReturns": true,
15 | "noImplicitUseStrict": false,
16 | "noStrictGenericChecks": false,
17 | "noUncheckedIndexedAccess": true,
18 | "noUnusedLocals": true,
19 | "noUnusedParameters": true,
20 | "resolveJsonModule": true,
21 | "skipLibCheck": true,
22 | "strict": true,
23 | "target": "ESNext",
24 | "verbatimModuleSyntax": true
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/packages/feather/.yo-rc.json:
--------------------------------------------------------------------------------
1 | {
2 | "generator-react-native-vector-icons": {
3 | "packageName": "feather",
4 | "upstreamFont": "feather-icons",
5 | "buildSteps": {
6 | "fontCustom": {
7 | "location": "node_modules/feather-icons/dist/icons"
8 | },
9 | "glyphmap": {
10 | "mode": "css",
11 | "cleanup": true
12 | }
13 | },
14 | "versions": [{ "rnvi": "12.0.0", "upstream": "4.29.2" }]
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/packages/feather/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # 12.0.0 (2025-05-04)
2 |
3 | ### 🚀 Features
4 |
5 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
6 | - add lucide icon ([#1702](https://github.com/oblador/react-native-vector-icons/pull/1702))
7 |
8 | ### 🩹 Fixes
9 |
10 | - removing fixSVGpaths from feather gives better results ([#1721](https://github.com/oblador/react-native-vector-icons/pull/1721))
11 | - upgrade octicons to 19.14.0 ([#1691](https://github.com/oblador/react-native-vector-icons/pull/1691))
12 | - upgrade fontawesome6 to 6.7.2 ([#1690](https://github.com/oblador/react-native-vector-icons/pull/1690))
13 | - mac osx detection in glyphmap script ([2967ce99](https://github.com/oblador/react-native-vector-icons/commit/2967ce99))
14 |
15 | ### ⚠️ Breaking Changes
16 |
17 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
18 |
19 | ### ❤️ Thank You
20 |
21 | - Chanphirom Sok @chanphiromsok
22 | - John Ferlito @johnf
--------------------------------------------------------------------------------
/packages/feather/README.md:
--------------------------------------------------------------------------------
1 | # React Native Vector Icons - Feather
2 |
3 | Feather font for React Native Vector Icons
4 |
5 | See the [React Native Vector Icons README](../../README.md) for more details.
6 |
7 | ## Installation
8 |
9 | ```sh
10 | npm install @react-native-vector-icons/feather
11 | ```
12 |
13 | ## Usage
14 |
15 | ```js
16 | import Feather from '@react-native-vector-icons/feather';
17 |
18 | // ...
19 |
20 |
21 | ```
22 |
23 |
24 | ## Versions
25 |
26 | Prior to version 12, the version of this font package tracked the upstream version.
27 |
28 | The table below tracks which font version is included in each package version.
29 |
30 | | RNVI version | Upstream version |
31 | | ------------ | ---------------- |
32 | | <= 12.0.0 | 4.29.2 |
33 |
34 | ## Contributing
35 |
36 | See the [contributing guide](../../CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.
37 |
38 | ## License
39 |
40 | MIT
41 |
--------------------------------------------------------------------------------
/packages/feather/android/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
--------------------------------------------------------------------------------
/packages/feather/android/src/main/AndroidManifestNew.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/packages/feather/android/src/main/java/VectorIconsFeatherPackage.kt:
--------------------------------------------------------------------------------
1 | package com.reactnativevectoricons.feather
2 |
3 | import com.facebook.react.TurboReactPackage
4 | import com.facebook.react.bridge.NativeModule
5 | import com.facebook.react.bridge.ReactApplicationContext
6 | import com.facebook.react.module.model.ReactModuleInfoProvider
7 |
8 | class VectorIconsFeatherPackage : TurboReactPackage() {
9 | override fun getModule(
10 | name: String,
11 | reactContext: ReactApplicationContext,
12 | ): NativeModule? = null
13 |
14 | override fun getReactModuleInfoProvider(): ReactModuleInfoProvider =
15 | ReactModuleInfoProvider {
16 | mapOf()
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/packages/feather/babel.config.js:
--------------------------------------------------------------------------------
1 | // NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | // If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | module.exports = {
5 | presets: [['module:react-native-builder-bob/babel-preset', { modules: 'commonjs' }]],
6 | };
7 |
--------------------------------------------------------------------------------
/packages/feather/fonts/Feather.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oblador/react-native-vector-icons/54ba7a29f90a008ebc668ae572587b746789fceb/packages/feather/fonts/Feather.ttf
--------------------------------------------------------------------------------
/packages/feather/react-native-vector-icons-feather.podspec:
--------------------------------------------------------------------------------
1 | # NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | # If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | require 'json'
5 |
6 | package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
7 |
8 | Pod::Spec.new do |s|
9 | s.name = 'react-native-vector-icons-feather'
10 | s.version = package['version']
11 | s.summary = package['description']
12 | s.homepage = package['homepage']
13 | s.license = package['license']
14 | s.authors = package['author']
15 |
16 | s.platforms = { ios: min_ios_version_supported, tvos: '9.0', visionos: '1.0' }
17 | s.source = { git: package['repository']['url'], tag: "v#{s.version}" }
18 |
19 | s.resources = 'fonts/*.ttf'
20 | end
21 |
--------------------------------------------------------------------------------
/packages/feather/src/index.ts:
--------------------------------------------------------------------------------
1 | // NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | // If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | /**
5 | * This is a generated file. If you modify it manually, your changes will be lost!
6 | * Instead, modify the template in `generator-react-native-vector-icons`.
7 | *
8 | * Feather icon set component.
9 | * Usage:
10 | */
11 |
12 | import { createIconSet } from '@react-native-vector-icons/common';
13 | import glyphMap from '../glyphmaps/Feather.json';
14 |
15 | const Icon = createIconSet(glyphMap, {
16 | postScriptName: 'Feather',
17 | fontFileName: 'Feather.ttf',
18 | fontSource: require('../fonts/Feather.ttf'), // eslint-disable-line @typescript-eslint/no-require-imports, global-require
19 | });
20 |
21 | export default Icon;
22 |
--------------------------------------------------------------------------------
/packages/feather/tsconfig.build.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig",
3 | "exclude": ["example", "lib"]
4 | }
5 |
--------------------------------------------------------------------------------
/packages/feather/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "rootDir": ".",
4 | "allowUnreachableCode": false,
5 | "allowUnusedLabels": false,
6 | "esModuleInterop": true,
7 | "forceConsistentCasingInFileNames": true,
8 | "jsx": "react-jsx",
9 | "lib": ["ESNext"],
10 | "module": "ESNext",
11 | "moduleResolution": "Bundler",
12 | "noEmit": true,
13 | "noFallthroughCasesInSwitch": true,
14 | "noImplicitReturns": true,
15 | "noImplicitUseStrict": false,
16 | "noStrictGenericChecks": false,
17 | "noUncheckedIndexedAccess": true,
18 | "noUnusedLocals": true,
19 | "noUnusedParameters": true,
20 | "resolveJsonModule": true,
21 | "skipLibCheck": true,
22 | "strict": true,
23 | "target": "ESNext",
24 | "verbatimModuleSyntax": true
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/packages/fontawesome-common/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # 12.0.0 (2025-05-04)
2 |
3 | ### 🚀 Features
4 |
5 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
6 | - add lucide icon ([#1702](https://github.com/oblador/react-native-vector-icons/pull/1702))
7 |
8 | ### 🩹 Fixes
9 |
10 | - upgrade octicons to 19.14.0 ([#1691](https://github.com/oblador/react-native-vector-icons/pull/1691))
11 | - upgrade fontawesome6 to 6.7.2 ([#1690](https://github.com/oblador/react-native-vector-icons/pull/1690))
12 |
13 | ### ⚠️ Breaking Changes
14 |
15 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
16 |
17 | ### ❤️ Thank You
18 |
19 | - Chanphirom Sok @chanphiromsok
20 | - John Ferlito @johnf
--------------------------------------------------------------------------------
/packages/fontawesome-common/README.md:
--------------------------------------------------------------------------------
1 | # FontAwesome Common
2 |
--------------------------------------------------------------------------------
/packages/fontawesome-common/bin/fa-upgrade5:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | set -e
4 |
5 | SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
6 |
7 | "${SCRIPT_DIR}"/fa-upgrade 5 "$@"
8 |
--------------------------------------------------------------------------------
/packages/fontawesome-common/bin/fa-upgrade6:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | set -e
4 |
5 | SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
6 |
7 | "${SCRIPT_DIR}"/fa-upgrade 6 "$@"
8 |
--------------------------------------------------------------------------------
/packages/fontawesome-common/scripts/fetch-pro.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -e
4 |
5 | VERSION=$1
6 | if [ -z $VERSION ]; then
7 | echo "Pass version as first argument"
8 | exit 1
9 | fi
10 |
11 | mkdir fa
12 | cd fa
13 |
14 | # So the npm commands work with workspaces
15 | touch package.json
16 |
17 | npm config set '@fortawesome:registry' https://npm.fontawesome.com/
18 | if [ -z "$(npm config get | grep '//npm.fontawesome.com/:_authToken')" ]; then
19 | echo -n 'Please enter your FontAwesome npm token: '
20 | read fa_token
21 | npm config set '//npm.fontawesome.com/:_authToken' ${fa_token}
22 | fi
23 |
24 | ARCHIVE=$(npm pack @fortawesome/fontawesome-pro@^$VERSION --silent 2> /dev/null)
25 | tar -xzf ${ARCHIVE}
26 | mv package pro
27 |
--------------------------------------------------------------------------------
/packages/fontawesome/.yo-rc.json:
--------------------------------------------------------------------------------
1 | {
2 | "generator-react-native-vector-icons": {
3 | "packageName": "fontawesome",
4 | "postScriptName": "FontAwesome",
5 | "fontFileName": "FontAwesome",
6 | "className": "FontAwesome",
7 | "upstreamFont": "font-awesome",
8 | "buildSteps": {
9 | "glyphmap": {
10 | "location": "../../node_modules/font-awesome/css/font-awesome.css",
11 | "mode": "css",
12 | "prefix": ".fa-"
13 | },
14 | "copyFont": {
15 | "location": "../../node_modules/font-awesome/fonts/fontawesome-webfont.ttf"
16 | }
17 | },
18 | "versions": [{ "rnvi": "12.0.0", "upstream": "4.7.0" }]
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/packages/fontawesome/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # 12.0.0 (2025-05-04)
2 |
3 | ### 🚀 Features
4 |
5 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
6 | - add lucide icon ([#1702](https://github.com/oblador/react-native-vector-icons/pull/1702))
7 |
8 | ### 🩹 Fixes
9 |
10 | - upgrade octicons to 19.14.0 ([#1691](https://github.com/oblador/react-native-vector-icons/pull/1691))
11 | - upgrade fontawesome6 to 6.7.2 ([#1690](https://github.com/oblador/react-native-vector-icons/pull/1690))
12 | - mac osx detection in glyphmap script ([2967ce99](https://github.com/oblador/react-native-vector-icons/commit/2967ce99))
13 |
14 | ### ⚠️ Breaking Changes
15 |
16 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
17 |
18 | ### ❤️ Thank You
19 |
20 | - Chanphirom Sok @chanphiromsok
21 | - John Ferlito @johnf
--------------------------------------------------------------------------------
/packages/fontawesome/README.md:
--------------------------------------------------------------------------------
1 | # React Native Vector Icons - Fontawesome
2 |
3 | Fontawesome font for React Native Vector Icons
4 |
5 | See the [React Native Vector Icons README](../../README.md) for more details.
6 |
7 | ## Installation
8 |
9 | ```sh
10 | npm install @react-native-vector-icons/fontawesome
11 | ```
12 |
13 | ## Usage
14 |
15 | ```js
16 | import FontAwesome from '@react-native-vector-icons/fontawesome';
17 |
18 | // ...
19 |
20 |
21 | ```
22 |
23 |
24 | ## Versions
25 |
26 | Prior to version 12, the version of this font package tracked the upstream version.
27 |
28 | The table below tracks which font version is included in each package version.
29 |
30 | | RNVI version | Upstream version |
31 | | ------------ | ---------------- |
32 | | <= 12.0.0 | 4.7.0 |
33 |
34 | ## Contributing
35 |
36 | See the [contributing guide](../../CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.
37 |
38 | ## License
39 |
40 | MIT
41 |
--------------------------------------------------------------------------------
/packages/fontawesome/android/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
--------------------------------------------------------------------------------
/packages/fontawesome/android/src/main/AndroidManifestNew.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/packages/fontawesome/android/src/main/java/VectorIconsFontAwesomePackage.kt:
--------------------------------------------------------------------------------
1 | package com.reactnativevectoricons.fontawesome
2 |
3 | import com.facebook.react.TurboReactPackage
4 | import com.facebook.react.bridge.NativeModule
5 | import com.facebook.react.bridge.ReactApplicationContext
6 | import com.facebook.react.module.model.ReactModuleInfoProvider
7 |
8 | class VectorIconsFontAwesomePackage : TurboReactPackage() {
9 | override fun getModule(
10 | name: String,
11 | reactContext: ReactApplicationContext,
12 | ): NativeModule? = null
13 |
14 | override fun getReactModuleInfoProvider(): ReactModuleInfoProvider =
15 | ReactModuleInfoProvider {
16 | mapOf()
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/packages/fontawesome/babel.config.js:
--------------------------------------------------------------------------------
1 | // NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | // If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | module.exports = {
5 | presets: [['module:react-native-builder-bob/babel-preset', { modules: 'commonjs' }]],
6 | };
7 |
--------------------------------------------------------------------------------
/packages/fontawesome/fonts/FontAwesome.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oblador/react-native-vector-icons/54ba7a29f90a008ebc668ae572587b746789fceb/packages/fontawesome/fonts/FontAwesome.ttf
--------------------------------------------------------------------------------
/packages/fontawesome/react-native-vector-icons-fontawesome.podspec:
--------------------------------------------------------------------------------
1 | # NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | # If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | require 'json'
5 |
6 | package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
7 |
8 | Pod::Spec.new do |s|
9 | s.name = 'react-native-vector-icons-fontawesome'
10 | s.version = package['version']
11 | s.summary = package['description']
12 | s.homepage = package['homepage']
13 | s.license = package['license']
14 | s.authors = package['author']
15 |
16 | s.platforms = { ios: min_ios_version_supported, tvos: '9.0', visionos: '1.0' }
17 | s.source = { git: package['repository']['url'], tag: "v#{s.version}" }
18 |
19 | s.resources = 'fonts/*.ttf'
20 | end
21 |
--------------------------------------------------------------------------------
/packages/fontawesome/src/index.ts:
--------------------------------------------------------------------------------
1 | // NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | // If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | /**
5 | * This is a generated file. If you modify it manually, your changes will be lost!
6 | * Instead, modify the template in `generator-react-native-vector-icons`.
7 | *
8 | * FontAwesome icon set component.
9 | * Usage:
10 | */
11 |
12 | import { createIconSet } from '@react-native-vector-icons/common';
13 | import glyphMap from '../glyphmaps/FontAwesome.json';
14 |
15 | const Icon = createIconSet(glyphMap, {
16 | postScriptName: 'FontAwesome',
17 | fontFileName: 'FontAwesome.ttf',
18 | fontSource: require('../fonts/FontAwesome.ttf'), // eslint-disable-line @typescript-eslint/no-require-imports, global-require
19 | });
20 |
21 | export default Icon;
22 |
--------------------------------------------------------------------------------
/packages/fontawesome/tsconfig.build.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig",
3 | "exclude": ["example", "lib"]
4 | }
5 |
--------------------------------------------------------------------------------
/packages/fontawesome/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "rootDir": ".",
4 | "allowUnreachableCode": false,
5 | "allowUnusedLabels": false,
6 | "esModuleInterop": true,
7 | "forceConsistentCasingInFileNames": true,
8 | "jsx": "react-jsx",
9 | "lib": ["ESNext"],
10 | "module": "ESNext",
11 | "moduleResolution": "Bundler",
12 | "noEmit": true,
13 | "noFallthroughCasesInSwitch": true,
14 | "noImplicitReturns": true,
15 | "noImplicitUseStrict": false,
16 | "noStrictGenericChecks": false,
17 | "noUncheckedIndexedAccess": true,
18 | "noUnusedLocals": true,
19 | "noUnusedParameters": true,
20 | "resolveJsonModule": true,
21 | "skipLibCheck": true,
22 | "strict": true,
23 | "target": "ESNext",
24 | "verbatimModuleSyntax": true
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/packages/fontawesome5-pro/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # 12.0.0 (2025-05-04)
2 |
3 | ### 🚀 Features
4 |
5 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
6 | - add lucide icon ([#1702](https://github.com/oblador/react-native-vector-icons/pull/1702))
7 |
8 | ### 🩹 Fixes
9 |
10 | - upgrade octicons to 19.14.0 ([#1691](https://github.com/oblador/react-native-vector-icons/pull/1691))
11 | - upgrade fontawesome6 to 6.7.2 ([#1690](https://github.com/oblador/react-native-vector-icons/pull/1690))
12 | - mac osx detection in glyphmap script ([2967ce99](https://github.com/oblador/react-native-vector-icons/commit/2967ce99))
13 |
14 | ### ⚠️ Breaking Changes
15 |
16 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
17 |
18 | ### ❤️ Thank You
19 |
20 | - Chanphirom Sok @chanphiromsok
21 | - John Ferlito @johnf
--------------------------------------------------------------------------------
/packages/fontawesome5-pro/android/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
--------------------------------------------------------------------------------
/packages/fontawesome5-pro/android/src/main/AndroidManifestNew.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/packages/fontawesome5-pro/android/src/main/java/VectorIconsFontAwesome5ProPackage.kt:
--------------------------------------------------------------------------------
1 | package com.reactnativevectoricons.fontawesome5_pro
2 |
3 | import com.facebook.react.TurboReactPackage
4 | import com.facebook.react.bridge.NativeModule
5 | import com.facebook.react.bridge.ReactApplicationContext
6 | import com.facebook.react.module.model.ReactModuleInfoProvider
7 |
8 | class VectorIconsFontAwesome5ProPackage : TurboReactPackage() {
9 | override fun getModule(
10 | name: String,
11 | reactContext: ReactApplicationContext,
12 | ): NativeModule? = null
13 |
14 | override fun getReactModuleInfoProvider(): ReactModuleInfoProvider =
15 | ReactModuleInfoProvider {
16 | mapOf()
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/packages/fontawesome5-pro/babel.config.js:
--------------------------------------------------------------------------------
1 | // NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | // If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | module.exports = {
5 | presets: [['module:react-native-builder-bob/babel-preset', { modules: 'commonjs' }]],
6 | };
7 |
--------------------------------------------------------------------------------
/packages/fontawesome5-pro/tsconfig.build.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig",
3 | "exclude": ["example", "lib"]
4 | }
5 |
--------------------------------------------------------------------------------
/packages/fontawesome5-pro/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "rootDir": ".",
4 | "allowUnreachableCode": false,
5 | "allowUnusedLabels": false,
6 | "esModuleInterop": true,
7 | "forceConsistentCasingInFileNames": true,
8 | "jsx": "react-jsx",
9 | "lib": ["ESNext"],
10 | "module": "ESNext",
11 | "moduleResolution": "Bundler",
12 | "noEmit": true,
13 | "noFallthroughCasesInSwitch": true,
14 | "noImplicitReturns": true,
15 | "noImplicitUseStrict": false,
16 | "noStrictGenericChecks": false,
17 | "noUncheckedIndexedAccess": true,
18 | "noUnusedLocals": true,
19 | "noUnusedParameters": true,
20 | "resolveJsonModule": true,
21 | "skipLibCheck": true,
22 | "strict": true,
23 | "target": "ESNext",
24 | "verbatimModuleSyntax": true
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/packages/fontawesome5/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # 12.0.0 (2025-05-04)
2 |
3 | ### 🚀 Features
4 |
5 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
6 | - add lucide icon ([#1702](https://github.com/oblador/react-native-vector-icons/pull/1702))
7 |
8 | ### 🩹 Fixes
9 |
10 | - upgrade octicons to 19.14.0 ([#1691](https://github.com/oblador/react-native-vector-icons/pull/1691))
11 | - upgrade fontawesome6 to 6.7.2 ([#1690](https://github.com/oblador/react-native-vector-icons/pull/1690))
12 | - mac osx detection in glyphmap script ([2967ce99](https://github.com/oblador/react-native-vector-icons/commit/2967ce99))
13 |
14 | ### ⚠️ Breaking Changes
15 |
16 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
17 |
18 | ### ❤️ Thank You
19 |
20 | - Chanphirom Sok @chanphiromsok
21 | - John Ferlito @johnf
--------------------------------------------------------------------------------
/packages/fontawesome5/android/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
--------------------------------------------------------------------------------
/packages/fontawesome5/android/src/main/AndroidManifestNew.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/packages/fontawesome5/android/src/main/java/VectorIconsFontAwesome5Package.kt:
--------------------------------------------------------------------------------
1 | package com.reactnativevectoricons.fontawesome5
2 |
3 | import com.facebook.react.TurboReactPackage
4 | import com.facebook.react.bridge.NativeModule
5 | import com.facebook.react.bridge.ReactApplicationContext
6 | import com.facebook.react.module.model.ReactModuleInfoProvider
7 |
8 | class VectorIconsFontAwesome5Package : TurboReactPackage() {
9 | override fun getModule(
10 | name: String,
11 | reactContext: ReactApplicationContext,
12 | ): NativeModule? = null
13 |
14 | override fun getReactModuleInfoProvider(): ReactModuleInfoProvider =
15 | ReactModuleInfoProvider {
16 | mapOf()
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/packages/fontawesome5/babel.config.js:
--------------------------------------------------------------------------------
1 | // NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | // If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | module.exports = {
5 | presets: [['module:react-native-builder-bob/babel-preset', { modules: 'commonjs' }]],
6 | };
7 |
--------------------------------------------------------------------------------
/packages/fontawesome5/fonts/FontAwesome5_Brands.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oblador/react-native-vector-icons/54ba7a29f90a008ebc668ae572587b746789fceb/packages/fontawesome5/fonts/FontAwesome5_Brands.ttf
--------------------------------------------------------------------------------
/packages/fontawesome5/fonts/FontAwesome5_Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oblador/react-native-vector-icons/54ba7a29f90a008ebc668ae572587b746789fceb/packages/fontawesome5/fonts/FontAwesome5_Regular.ttf
--------------------------------------------------------------------------------
/packages/fontawesome5/fonts/FontAwesome5_Solid.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oblador/react-native-vector-icons/54ba7a29f90a008ebc668ae572587b746789fceb/packages/fontawesome5/fonts/FontAwesome5_Solid.ttf
--------------------------------------------------------------------------------
/packages/fontawesome5/react-native-vector-icons-fontawesome5.podspec:
--------------------------------------------------------------------------------
1 | # NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | # If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | require 'json'
5 |
6 | package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
7 |
8 | Pod::Spec.new do |s|
9 | s.name = 'react-native-vector-icons-fontawesome5'
10 | s.version = package['version']
11 | s.summary = package['description']
12 | s.homepage = package['homepage']
13 | s.license = package['license']
14 | s.authors = package['author']
15 |
16 | s.platforms = { ios: min_ios_version_supported, tvos: '9.0', visionos: '1.0' }
17 | s.source = { git: package['repository']['url'], tag: "v#{s.version}" }
18 |
19 | s.resources = 'fonts/*.ttf'
20 | end
21 |
--------------------------------------------------------------------------------
/packages/fontawesome5/tsconfig.build.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig",
3 | "exclude": ["example", "lib"]
4 | }
5 |
--------------------------------------------------------------------------------
/packages/fontawesome5/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "rootDir": ".",
4 | "allowUnreachableCode": false,
5 | "allowUnusedLabels": false,
6 | "esModuleInterop": true,
7 | "forceConsistentCasingInFileNames": true,
8 | "jsx": "react-jsx",
9 | "lib": ["ESNext"],
10 | "module": "ESNext",
11 | "moduleResolution": "Bundler",
12 | "noEmit": true,
13 | "noFallthroughCasesInSwitch": true,
14 | "noImplicitReturns": true,
15 | "noImplicitUseStrict": false,
16 | "noStrictGenericChecks": false,
17 | "noUncheckedIndexedAccess": true,
18 | "noUnusedLocals": true,
19 | "noUnusedParameters": true,
20 | "resolveJsonModule": true,
21 | "skipLibCheck": true,
22 | "strict": true,
23 | "target": "ESNext",
24 | "verbatimModuleSyntax": true
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/packages/fontawesome6-pro/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # 12.0.0 (2025-05-04)
2 |
3 | ### 🚀 Features
4 |
5 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
6 | - add lucide icon ([#1702](https://github.com/oblador/react-native-vector-icons/pull/1702))
7 |
8 | ### 🩹 Fixes
9 |
10 | - upgrade octicons to 19.14.0 ([#1691](https://github.com/oblador/react-native-vector-icons/pull/1691))
11 | - upgrade fontawesome6 to 6.7.2 ([#1690](https://github.com/oblador/react-native-vector-icons/pull/1690))
12 | - mac osx detection in glyphmap script ([2967ce99](https://github.com/oblador/react-native-vector-icons/commit/2967ce99))
13 |
14 | ### ⚠️ Breaking Changes
15 |
16 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
17 |
18 | ### ❤️ Thank You
19 |
20 | - Chanphirom Sok @chanphiromsok
21 | - John Ferlito @johnf
--------------------------------------------------------------------------------
/packages/fontawesome6-pro/android/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
--------------------------------------------------------------------------------
/packages/fontawesome6-pro/android/src/main/AndroidManifestNew.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/packages/fontawesome6-pro/android/src/main/java/VectorIconsFontAwesome6ProPackage.kt:
--------------------------------------------------------------------------------
1 | package com.reactnativevectoricons.fontawesome6_pro
2 |
3 | import com.facebook.react.TurboReactPackage
4 | import com.facebook.react.bridge.NativeModule
5 | import com.facebook.react.bridge.ReactApplicationContext
6 | import com.facebook.react.module.model.ReactModuleInfoProvider
7 |
8 | class VectorIconsFontAwesome6ProPackage : TurboReactPackage() {
9 | override fun getModule(
10 | name: String,
11 | reactContext: ReactApplicationContext,
12 | ): NativeModule? = null
13 |
14 | override fun getReactModuleInfoProvider(): ReactModuleInfoProvider =
15 | ReactModuleInfoProvider {
16 | mapOf()
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/packages/fontawesome6-pro/babel.config.js:
--------------------------------------------------------------------------------
1 | // NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | // If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | module.exports = {
5 | presets: [['module:react-native-builder-bob/babel-preset', { modules: 'commonjs' }]],
6 | };
7 |
--------------------------------------------------------------------------------
/packages/fontawesome6-pro/tsconfig.build.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig",
3 | "exclude": ["example", "lib"]
4 | }
5 |
--------------------------------------------------------------------------------
/packages/fontawesome6-pro/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "rootDir": ".",
4 | "allowUnreachableCode": false,
5 | "allowUnusedLabels": false,
6 | "esModuleInterop": true,
7 | "forceConsistentCasingInFileNames": true,
8 | "jsx": "react-jsx",
9 | "lib": ["ESNext"],
10 | "module": "ESNext",
11 | "moduleResolution": "Bundler",
12 | "noEmit": true,
13 | "noFallthroughCasesInSwitch": true,
14 | "noImplicitReturns": true,
15 | "noImplicitUseStrict": false,
16 | "noStrictGenericChecks": false,
17 | "noUncheckedIndexedAccess": true,
18 | "noUnusedLocals": true,
19 | "noUnusedParameters": true,
20 | "resolveJsonModule": true,
21 | "skipLibCheck": true,
22 | "strict": true,
23 | "target": "ESNext",
24 | "verbatimModuleSyntax": true
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/packages/fontawesome6/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # 12.0.0 (2025-05-04)
2 |
3 | ### 🚀 Features
4 |
5 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
6 | - add lucide icon ([#1702](https://github.com/oblador/react-native-vector-icons/pull/1702))
7 |
8 | ### 🩹 Fixes
9 |
10 | - upgrade octicons to 19.14.0 ([#1691](https://github.com/oblador/react-native-vector-icons/pull/1691))
11 | - upgrade fontawesome6 to 6.7.2 ([#1690](https://github.com/oblador/react-native-vector-icons/pull/1690))
12 | - mac osx detection in glyphmap script ([2967ce99](https://github.com/oblador/react-native-vector-icons/commit/2967ce99))
13 |
14 | ### ⚠️ Breaking Changes
15 |
16 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
17 |
18 | ### ❤️ Thank You
19 |
20 | - Chanphirom Sok @chanphiromsok
21 | - John Ferlito @johnf
--------------------------------------------------------------------------------
/packages/fontawesome6/android/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
--------------------------------------------------------------------------------
/packages/fontawesome6/android/src/main/AndroidManifestNew.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/packages/fontawesome6/android/src/main/java/VectorIconsFontAwesome6Package.kt:
--------------------------------------------------------------------------------
1 | package com.reactnativevectoricons.fontawesome6
2 |
3 | import com.facebook.react.TurboReactPackage
4 | import com.facebook.react.bridge.NativeModule
5 | import com.facebook.react.bridge.ReactApplicationContext
6 | import com.facebook.react.module.model.ReactModuleInfoProvider
7 |
8 | class VectorIconsFontAwesome6Package : TurboReactPackage() {
9 | override fun getModule(
10 | name: String,
11 | reactContext: ReactApplicationContext,
12 | ): NativeModule? = null
13 |
14 | override fun getReactModuleInfoProvider(): ReactModuleInfoProvider =
15 | ReactModuleInfoProvider {
16 | mapOf()
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/packages/fontawesome6/babel.config.js:
--------------------------------------------------------------------------------
1 | // NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | // If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | module.exports = {
5 | presets: [['module:react-native-builder-bob/babel-preset', { modules: 'commonjs' }]],
6 | };
7 |
--------------------------------------------------------------------------------
/packages/fontawesome6/fonts/FontAwesome6_Brands.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oblador/react-native-vector-icons/54ba7a29f90a008ebc668ae572587b746789fceb/packages/fontawesome6/fonts/FontAwesome6_Brands.ttf
--------------------------------------------------------------------------------
/packages/fontawesome6/fonts/FontAwesome6_Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oblador/react-native-vector-icons/54ba7a29f90a008ebc668ae572587b746789fceb/packages/fontawesome6/fonts/FontAwesome6_Regular.ttf
--------------------------------------------------------------------------------
/packages/fontawesome6/fonts/FontAwesome6_Solid.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oblador/react-native-vector-icons/54ba7a29f90a008ebc668ae572587b746789fceb/packages/fontawesome6/fonts/FontAwesome6_Solid.ttf
--------------------------------------------------------------------------------
/packages/fontawesome6/react-native-vector-icons-fontawesome6.podspec:
--------------------------------------------------------------------------------
1 | # NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | # If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | require 'json'
5 |
6 | package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
7 |
8 | Pod::Spec.new do |s|
9 | s.name = 'react-native-vector-icons-fontawesome6'
10 | s.version = package['version']
11 | s.summary = package['description']
12 | s.homepage = package['homepage']
13 | s.license = package['license']
14 | s.authors = package['author']
15 |
16 | s.platforms = { ios: min_ios_version_supported, tvos: '9.0', visionos: '1.0' }
17 | s.source = { git: package['repository']['url'], tag: "v#{s.version}" }
18 |
19 | s.resources = 'fonts/*.ttf'
20 | end
21 |
--------------------------------------------------------------------------------
/packages/fontawesome6/tsconfig.build.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig",
3 | "exclude": ["example", "lib"]
4 | }
5 |
--------------------------------------------------------------------------------
/packages/fontawesome6/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "rootDir": ".",
4 | "allowUnreachableCode": false,
5 | "allowUnusedLabels": false,
6 | "esModuleInterop": true,
7 | "forceConsistentCasingInFileNames": true,
8 | "jsx": "react-jsx",
9 | "lib": ["ESNext"],
10 | "module": "ESNext",
11 | "moduleResolution": "Bundler",
12 | "noEmit": true,
13 | "noFallthroughCasesInSwitch": true,
14 | "noImplicitReturns": true,
15 | "noImplicitUseStrict": false,
16 | "noStrictGenericChecks": false,
17 | "noUncheckedIndexedAccess": true,
18 | "noUnusedLocals": true,
19 | "noUnusedParameters": true,
20 | "resolveJsonModule": true,
21 | "skipLibCheck": true,
22 | "strict": true,
23 | "target": "ESNext",
24 | "verbatimModuleSyntax": true
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/packages/fontcustom-docker/CHANGELOG.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oblador/react-native-vector-icons/54ba7a29f90a008ebc668ae572587b746789fceb/packages/fontcustom-docker/CHANGELOG.md
--------------------------------------------------------------------------------
/packages/fontcustom-docker/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM debian:11-slim
2 |
3 | WORKDIR /usr/src/app
4 |
5 | # NOTE: Use this again if fontforge does a new release
6 | # RUN apt-get -y update \
7 | # && apt-get -y upgrade \
8 | # && apt-get -y --no-install-recommends install fontcustom \
9 | # && apt clean \
10 | # && rm -rf /var/lib/apt/lists/*
11 |
12 | RUN apt-get -y update \
13 | && apt-get -y upgrade \
14 | && apt-get -y --no-install-recommends install \
15 | fontcustom \
16 | libjpeg-dev libtiff5-dev libpng-dev libfreetype6-dev libgif-dev libgtk-3-dev libxml2-dev \
17 | libpango1.0-dev libcairo2-dev libspiro-dev libwoff-dev python3-dev ninja-build cmake build-essential gettext \
18 | git ca-certificates \
19 | && apt clean \
20 | && rm -rf /var/lib/apt/lists/*
21 |
22 | RUN git clone https://github.com/fontforge/fontforge.git
23 | RUN mkdir fontforge/build
24 |
25 | WORKDIR /usr/src/app/fontforge/build
26 |
27 | RUN cmake -GNinja .. \
28 | && ninja \
29 | && ninja install \
30 | && cd ../.. \
31 | && rm -rf /usr/src/app/fontforge
32 |
33 | RUN dpkg -r --force-depends fontforge
34 |
35 | WORKDIR /usr/src/app
36 |
37 | ENTRYPOINT ["/usr/bin/fontcustom"]
38 |
--------------------------------------------------------------------------------
/packages/fontcustom-docker/README.md:
--------------------------------------------------------------------------------
1 | # font custom docker
2 |
3 | We need a fontcustom with a newer font forge for reproducible builds
4 |
--------------------------------------------------------------------------------
/packages/fontcustom-docker/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@react-native-vector-icons/fontcustom-docker",
3 | "private": true,
4 | "version": "0.0.1",
5 | "description": "Updated fontcustom docker image",
6 | "scripts": {
7 | "build": "docker build -t johnf/fontcustom .",
8 | "publish": "docker push johnf/fontcustom"
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/packages/fontello/.yo-rc.json:
--------------------------------------------------------------------------------
1 | {
2 | "generator-react-native-vector-icons": {
3 | "packageName": "fontello",
4 | "customReadme": true,
5 | "customSrc": true,
6 | "copyCustomFonts": true
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/packages/fontello/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # 12.0.0 (2025-05-04)
2 |
3 | ### 🚀 Features
4 |
5 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
6 | - add lucide icon ([#1702](https://github.com/oblador/react-native-vector-icons/pull/1702))
7 |
8 | ### 🩹 Fixes
9 |
10 | - upgrade octicons to 19.14.0 ([#1691](https://github.com/oblador/react-native-vector-icons/pull/1691))
11 | - upgrade fontawesome6 to 6.7.2 ([#1690](https://github.com/oblador/react-native-vector-icons/pull/1690))
12 | - mac osx detection in glyphmap script ([2967ce99](https://github.com/oblador/react-native-vector-icons/commit/2967ce99))
13 |
14 | ### ⚠️ Breaking Changes
15 |
16 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
17 |
18 | ### ❤️ Thank You
19 |
20 | - Chanphirom Sok @chanphiromsok
21 | - John Ferlito @johnf
--------------------------------------------------------------------------------
/packages/fontello/android/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
--------------------------------------------------------------------------------
/packages/fontello/android/src/main/AndroidManifestNew.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/packages/fontello/android/src/main/java/VectorIconsFontelloPackage.kt:
--------------------------------------------------------------------------------
1 | package com.reactnativevectoricons.fontello
2 |
3 | import com.facebook.react.TurboReactPackage
4 | import com.facebook.react.bridge.NativeModule
5 | import com.facebook.react.bridge.ReactApplicationContext
6 | import com.facebook.react.module.model.ReactModuleInfoProvider
7 |
8 | class VectorIconsFontelloPackage : TurboReactPackage() {
9 | override fun getModule(
10 | name: String,
11 | reactContext: ReactApplicationContext,
12 | ): NativeModule? = null
13 |
14 | override fun getReactModuleInfoProvider(): ReactModuleInfoProvider =
15 | ReactModuleInfoProvider {
16 | mapOf()
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/packages/fontello/babel.config.js:
--------------------------------------------------------------------------------
1 | // NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | // If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | module.exports = {
5 | presets: [['module:react-native-builder-bob/babel-preset', { modules: 'commonjs' }]],
6 | };
7 |
--------------------------------------------------------------------------------
/packages/fontello/src/index.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Fontello icon set component.
3 | * Usage:
4 | */
5 |
6 | import { createIconSet } from '@react-native-vector-icons/common';
7 |
8 | type FontelloConfig = {
9 | name: string;
10 | css_prefix_text: string;
11 | css_use_suffix: boolean;
12 | hinting: boolean;
13 | units_per_em: number;
14 | ascent: number;
15 | glyphs: Array<{
16 | uid: string;
17 | css: string;
18 | code: number;
19 | src: string;
20 | }>;
21 | };
22 |
23 | export default (config: FontelloConfig, fontFamilyArg?: string, fontFile?: string) => {
24 | const glyphMap: Record = {};
25 | config.glyphs.forEach((glyph) => {
26 | glyphMap[glyph.css] = glyph.code;
27 | });
28 |
29 | const fontFamily = fontFamilyArg || config.name || 'fontello';
30 |
31 | return createIconSet(glyphMap, fontFamily, fontFile || `${fontFamily}.ttf`);
32 | };
33 |
--------------------------------------------------------------------------------
/packages/fontello/tsconfig.build.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig",
3 | "exclude": ["example", "lib"]
4 | }
5 |
--------------------------------------------------------------------------------
/packages/fontello/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "rootDir": ".",
4 | "allowUnreachableCode": false,
5 | "allowUnusedLabels": false,
6 | "esModuleInterop": true,
7 | "forceConsistentCasingInFileNames": true,
8 | "jsx": "react-jsx",
9 | "lib": ["ESNext"],
10 | "module": "ESNext",
11 | "moduleResolution": "Bundler",
12 | "noEmit": true,
13 | "noFallthroughCasesInSwitch": true,
14 | "noImplicitReturns": true,
15 | "noImplicitUseStrict": false,
16 | "noStrictGenericChecks": false,
17 | "noUncheckedIndexedAccess": true,
18 | "noUnusedLocals": true,
19 | "noUnusedParameters": true,
20 | "resolveJsonModule": true,
21 | "skipLibCheck": true,
22 | "strict": true,
23 | "target": "ESNext",
24 | "verbatimModuleSyntax": true
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/packages/fontisto/.yo-rc.json:
--------------------------------------------------------------------------------
1 | {
2 | "generator-react-native-vector-icons": {
3 | "packageName": "fontisto",
4 | "postScriptName": "fontisto",
5 | "upstreamFont": "fontisto",
6 | "buildSteps": {
7 | "glyphmap": {
8 | "location": "../../node_modules/fontisto/css/fontisto/fontisto.css",
9 | "mode": "css",
10 | "prefix": ".fi-"
11 | },
12 | "copyFont": {
13 | "location": "../../node_modules/fontisto/fonts/fontisto/fontisto.ttf"
14 | }
15 | },
16 | "versions": [{ "rnvi": "12.0.0", "upstream": "3.0.4" }]
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/packages/fontisto/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # 12.0.0 (2025-05-04)
2 |
3 | ### 🚀 Features
4 |
5 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
6 | - add lucide icon ([#1702](https://github.com/oblador/react-native-vector-icons/pull/1702))
7 |
8 | ### 🩹 Fixes
9 |
10 | - upgrade octicons to 19.14.0 ([#1691](https://github.com/oblador/react-native-vector-icons/pull/1691))
11 | - upgrade fontawesome6 to 6.7.2 ([#1690](https://github.com/oblador/react-native-vector-icons/pull/1690))
12 | - mac osx detection in glyphmap script ([2967ce99](https://github.com/oblador/react-native-vector-icons/commit/2967ce99))
13 |
14 | ### ⚠️ Breaking Changes
15 |
16 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
17 |
18 | ### ❤️ Thank You
19 |
20 | - Chanphirom Sok @chanphiromsok
21 | - John Ferlito @johnf
--------------------------------------------------------------------------------
/packages/fontisto/README.md:
--------------------------------------------------------------------------------
1 | # React Native Vector Icons - Fontisto
2 |
3 | Fontisto font for React Native Vector Icons
4 |
5 | See the [React Native Vector Icons README](../../README.md) for more details.
6 |
7 | ## Installation
8 |
9 | ```sh
10 | npm install @react-native-vector-icons/fontisto
11 | ```
12 |
13 | ## Usage
14 |
15 | ```js
16 | import Fontisto from '@react-native-vector-icons/fontisto';
17 |
18 | // ...
19 |
20 |
21 | ```
22 |
23 |
24 | ## Versions
25 |
26 | Prior to version 12, the version of this font package tracked the upstream version.
27 |
28 | The table below tracks which font version is included in each package version.
29 |
30 | | RNVI version | Upstream version |
31 | | ------------ | ---------------- |
32 | | <= 12.0.0 | 3.0.4 |
33 |
34 | ## Contributing
35 |
36 | See the [contributing guide](../../CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.
37 |
38 | ## License
39 |
40 | MIT
41 |
--------------------------------------------------------------------------------
/packages/fontisto/android/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
--------------------------------------------------------------------------------
/packages/fontisto/android/src/main/AndroidManifestNew.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/packages/fontisto/android/src/main/java/VectorIconsFontistoPackage.kt:
--------------------------------------------------------------------------------
1 | package com.reactnativevectoricons.fontisto
2 |
3 | import com.facebook.react.TurboReactPackage
4 | import com.facebook.react.bridge.NativeModule
5 | import com.facebook.react.bridge.ReactApplicationContext
6 | import com.facebook.react.module.model.ReactModuleInfoProvider
7 |
8 | class VectorIconsFontistoPackage : TurboReactPackage() {
9 | override fun getModule(
10 | name: String,
11 | reactContext: ReactApplicationContext,
12 | ): NativeModule? = null
13 |
14 | override fun getReactModuleInfoProvider(): ReactModuleInfoProvider =
15 | ReactModuleInfoProvider {
16 | mapOf()
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/packages/fontisto/babel.config.js:
--------------------------------------------------------------------------------
1 | // NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | // If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | module.exports = {
5 | presets: [['module:react-native-builder-bob/babel-preset', { modules: 'commonjs' }]],
6 | };
7 |
--------------------------------------------------------------------------------
/packages/fontisto/fonts/Fontisto.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oblador/react-native-vector-icons/54ba7a29f90a008ebc668ae572587b746789fceb/packages/fontisto/fonts/Fontisto.ttf
--------------------------------------------------------------------------------
/packages/fontisto/react-native-vector-icons-fontisto.podspec:
--------------------------------------------------------------------------------
1 | # NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | # If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | require 'json'
5 |
6 | package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
7 |
8 | Pod::Spec.new do |s|
9 | s.name = 'react-native-vector-icons-fontisto'
10 | s.version = package['version']
11 | s.summary = package['description']
12 | s.homepage = package['homepage']
13 | s.license = package['license']
14 | s.authors = package['author']
15 |
16 | s.platforms = { ios: min_ios_version_supported, tvos: '9.0', visionos: '1.0' }
17 | s.source = { git: package['repository']['url'], tag: "v#{s.version}" }
18 |
19 | s.resources = 'fonts/*.ttf'
20 | end
21 |
--------------------------------------------------------------------------------
/packages/fontisto/src/index.ts:
--------------------------------------------------------------------------------
1 | // NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | // If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | /**
5 | * This is a generated file. If you modify it manually, your changes will be lost!
6 | * Instead, modify the template in `generator-react-native-vector-icons`.
7 | *
8 | * Fontisto icon set component.
9 | * Usage:
10 | */
11 |
12 | import { createIconSet } from '@react-native-vector-icons/common';
13 | import glyphMap from '../glyphmaps/Fontisto.json';
14 |
15 | const Icon = createIconSet(glyphMap, {
16 | postScriptName: 'fontisto',
17 | fontFileName: 'Fontisto.ttf',
18 | fontSource: require('../fonts/Fontisto.ttf'), // eslint-disable-line @typescript-eslint/no-require-imports, global-require
19 | });
20 |
21 | export default Icon;
22 |
--------------------------------------------------------------------------------
/packages/fontisto/tsconfig.build.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig",
3 | "exclude": ["example", "lib"]
4 | }
5 |
--------------------------------------------------------------------------------
/packages/fontisto/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "rootDir": ".",
4 | "allowUnreachableCode": false,
5 | "allowUnusedLabels": false,
6 | "esModuleInterop": true,
7 | "forceConsistentCasingInFileNames": true,
8 | "jsx": "react-jsx",
9 | "lib": ["ESNext"],
10 | "module": "ESNext",
11 | "moduleResolution": "Bundler",
12 | "noEmit": true,
13 | "noFallthroughCasesInSwitch": true,
14 | "noImplicitReturns": true,
15 | "noImplicitUseStrict": false,
16 | "noStrictGenericChecks": false,
17 | "noUncheckedIndexedAccess": true,
18 | "noUnusedLocals": true,
19 | "noUnusedParameters": true,
20 | "resolveJsonModule": true,
21 | "skipLibCheck": true,
22 | "strict": true,
23 | "target": "ESNext",
24 | "verbatimModuleSyntax": true
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/packages/foundation/.yo-rc.json:
--------------------------------------------------------------------------------
1 | {
2 | "generator-react-native-vector-icons": {
3 | "packageName": "foundation",
4 | "postScriptName": "fontcustom",
5 | "upstreamFont": "foundation-icons",
6 | "buildSteps": {
7 | "glyphmap": {
8 | "location": "../../node_modules/foundation-icons/foundation-icons.css",
9 | "mode": "css",
10 | "prefix": ".fi-"
11 | },
12 | "copyFont": {
13 | "location": "../../node_modules/foundation-icons/foundation-icons.ttf"
14 | }
15 | },
16 | "versions": [{ "rnvi": "12.0.0", "upstream": "2.0.0" }]
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/packages/foundation/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # 12.0.0 (2025-05-04)
2 |
3 | ### 🚀 Features
4 |
5 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
6 | - add lucide icon ([#1702](https://github.com/oblador/react-native-vector-icons/pull/1702))
7 |
8 | ### 🩹 Fixes
9 |
10 | - upgrade octicons to 19.14.0 ([#1691](https://github.com/oblador/react-native-vector-icons/pull/1691))
11 | - upgrade fontawesome6 to 6.7.2 ([#1690](https://github.com/oblador/react-native-vector-icons/pull/1690))
12 | - mac osx detection in glyphmap script ([2967ce99](https://github.com/oblador/react-native-vector-icons/commit/2967ce99))
13 |
14 | ### ⚠️ Breaking Changes
15 |
16 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
17 |
18 | ### ❤️ Thank You
19 |
20 | - Chanphirom Sok @chanphiromsok
21 | - John Ferlito @johnf
--------------------------------------------------------------------------------
/packages/foundation/README.md:
--------------------------------------------------------------------------------
1 | # React Native Vector Icons - Foundation
2 |
3 | Foundation font for React Native Vector Icons
4 |
5 | See the [React Native Vector Icons README](../../README.md) for more details.
6 |
7 | ## Installation
8 |
9 | ```sh
10 | npm install @react-native-vector-icons/foundation
11 | ```
12 |
13 | ## Usage
14 |
15 | ```js
16 | import Foundation from '@react-native-vector-icons/foundation';
17 |
18 | // ...
19 |
20 |
21 | ```
22 |
23 |
24 | ## Versions
25 |
26 | Prior to version 12, the version of this font package tracked the upstream version.
27 |
28 | The table below tracks which font version is included in each package version.
29 |
30 | | RNVI version | Upstream version |
31 | | ------------ | ---------------- |
32 | | <= 12.0.0 | 2.0.0 |
33 |
34 | ## Contributing
35 |
36 | See the [contributing guide](../../CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.
37 |
38 | ## License
39 |
40 | MIT
41 |
--------------------------------------------------------------------------------
/packages/foundation/android/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
--------------------------------------------------------------------------------
/packages/foundation/android/src/main/AndroidManifestNew.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/packages/foundation/android/src/main/java/VectorIconsFoundationPackage.kt:
--------------------------------------------------------------------------------
1 | package com.reactnativevectoricons.foundation
2 |
3 | import com.facebook.react.TurboReactPackage
4 | import com.facebook.react.bridge.NativeModule
5 | import com.facebook.react.bridge.ReactApplicationContext
6 | import com.facebook.react.module.model.ReactModuleInfoProvider
7 |
8 | class VectorIconsFoundationPackage : TurboReactPackage() {
9 | override fun getModule(
10 | name: String,
11 | reactContext: ReactApplicationContext,
12 | ): NativeModule? = null
13 |
14 | override fun getReactModuleInfoProvider(): ReactModuleInfoProvider =
15 | ReactModuleInfoProvider {
16 | mapOf()
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/packages/foundation/babel.config.js:
--------------------------------------------------------------------------------
1 | // NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | // If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | module.exports = {
5 | presets: [['module:react-native-builder-bob/babel-preset', { modules: 'commonjs' }]],
6 | };
7 |
--------------------------------------------------------------------------------
/packages/foundation/fonts/Foundation.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oblador/react-native-vector-icons/54ba7a29f90a008ebc668ae572587b746789fceb/packages/foundation/fonts/Foundation.ttf
--------------------------------------------------------------------------------
/packages/foundation/react-native-vector-icons-foundation.podspec:
--------------------------------------------------------------------------------
1 | # NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | # If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | require 'json'
5 |
6 | package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
7 |
8 | Pod::Spec.new do |s|
9 | s.name = 'react-native-vector-icons-foundation'
10 | s.version = package['version']
11 | s.summary = package['description']
12 | s.homepage = package['homepage']
13 | s.license = package['license']
14 | s.authors = package['author']
15 |
16 | s.platforms = { ios: min_ios_version_supported, tvos: '9.0', visionos: '1.0' }
17 | s.source = { git: package['repository']['url'], tag: "v#{s.version}" }
18 |
19 | s.resources = 'fonts/*.ttf'
20 | end
21 |
--------------------------------------------------------------------------------
/packages/foundation/src/index.ts:
--------------------------------------------------------------------------------
1 | // NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | // If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | /**
5 | * This is a generated file. If you modify it manually, your changes will be lost!
6 | * Instead, modify the template in `generator-react-native-vector-icons`.
7 | *
8 | * Foundation icon set component.
9 | * Usage:
10 | */
11 |
12 | import { createIconSet } from '@react-native-vector-icons/common';
13 | import glyphMap from '../glyphmaps/Foundation.json';
14 |
15 | const Icon = createIconSet(glyphMap, {
16 | postScriptName: 'fontcustom',
17 | fontFileName: 'Foundation.ttf',
18 | fontSource: require('../fonts/Foundation.ttf'), // eslint-disable-line @typescript-eslint/no-require-imports, global-require
19 | });
20 |
21 | export default Icon;
22 |
--------------------------------------------------------------------------------
/packages/foundation/tsconfig.build.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig",
3 | "exclude": ["example", "lib"]
4 | }
5 |
--------------------------------------------------------------------------------
/packages/foundation/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "rootDir": ".",
4 | "allowUnreachableCode": false,
5 | "allowUnusedLabels": false,
6 | "esModuleInterop": true,
7 | "forceConsistentCasingInFileNames": true,
8 | "jsx": "react-jsx",
9 | "lib": ["ESNext"],
10 | "module": "ESNext",
11 | "moduleResolution": "Bundler",
12 | "noEmit": true,
13 | "noFallthroughCasesInSwitch": true,
14 | "noImplicitReturns": true,
15 | "noImplicitUseStrict": false,
16 | "noStrictGenericChecks": false,
17 | "noUncheckedIndexedAccess": true,
18 | "noUnusedLocals": true,
19 | "noUnusedParameters": true,
20 | "resolveJsonModule": true,
21 | "skipLibCheck": true,
22 | "strict": true,
23 | "target": "ESNext",
24 | "verbatimModuleSyntax": true
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/packages/generator-react-native-vector-icons/.gitignore:
--------------------------------------------------------------------------------
1 | generators
2 | /tsconfig.tsbuildinfo
3 |
--------------------------------------------------------------------------------
/packages/generator-react-native-vector-icons/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # 12.0.0 (2025-05-04)
2 |
3 | ### 🚀 Features
4 |
5 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
6 | - add lucide icon ([#1702](https://github.com/oblador/react-native-vector-icons/pull/1702))
7 |
8 | ### 🩹 Fixes
9 |
10 | - upgrade octicons to 19.14.0 ([#1691](https://github.com/oblador/react-native-vector-icons/pull/1691))
11 | - upgrade fontawesome6 to 6.7.2 ([#1690](https://github.com/oblador/react-native-vector-icons/pull/1690))
12 |
13 | ### ⚠️ Breaking Changes
14 |
15 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
16 |
17 | ### ❤️ Thank You
18 |
19 | - Chanphirom Sok @chanphiromsok
20 | - John Ferlito @johnf
--------------------------------------------------------------------------------
/packages/generator-react-native-vector-icons/README.md:
--------------------------------------------------------------------------------
1 | # generator-react-native-vector-icons
2 |
3 | This package can generate individual icon packages.
4 |
5 | Usage:
6 |
7 | 1. Run `pnpm run watch-tsc` in this package to trigger a build create the generator.
8 | 1. Run `pnpm run watch-deps` in this package to create the generator.
9 | 2. Run `pnpm run generate` from the root of the repository to generate the individual icon packages.
10 |
--------------------------------------------------------------------------------
/packages/generator-react-native-vector-icons/src/app/fontforge/correct-direction.py:
--------------------------------------------------------------------------------
1 | import fontforge
2 |
3 | font_path = sys.argv[1]
4 |
5 | font = fontforge.open(font_path)
6 |
7 | # Iterate through all glyphs in the font
8 | for glyph in font.glyphs():
9 | glyph.correctDirection()
10 |
11 | font.generate(font_path)
12 |
13 | print(f'Fixed direction on all glyphs and saved to {font_path}')
14 |
--------------------------------------------------------------------------------
/packages/generator-react-native-vector-icons/src/app/templates/README.md:
--------------------------------------------------------------------------------
1 | # React Native Vector Icons - <%= name %>
2 |
3 | <%= name %> font for React Native Vector Icons
4 |
5 | See the [React Native Vector Icons README](../../README.md) for more details.
6 |
7 | ## Installation
8 |
9 | ```sh
10 | npm install @react-native-vector-icons/<%= packageName %>
11 | ```
12 |
13 | ## Usage
14 |
15 | ```js
16 | import <%= className %> from '@react-native-vector-icons/<%= packageName %>';
17 |
18 | // ...
19 |
20 | <<%= className %> name="house" color="#ff0000" size={20} />
21 | ```
22 |
23 | <% if (versionTable) { -%>
24 |
25 | ## Versions
26 |
27 | Prior to version 12, the version of this font package tracked the upstream version.
28 |
29 | The table below tracks which font version is included in each package version.
30 |
31 | | RNVI version | Upstream version |
32 | | ------------ | ---------------- |
33 | <%= versionTable %>
34 | <% } -%>
35 |
36 | ## Contributing
37 |
38 | See the [contributing guide](../../CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.
39 |
40 | ## License
41 |
42 | MIT
43 |
--------------------------------------------------------------------------------
/packages/generator-react-native-vector-icons/src/app/templates/android/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
--------------------------------------------------------------------------------
/packages/generator-react-native-vector-icons/src/app/templates/android/src/main/AndroidManifestNew.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/packages/generator-react-native-vector-icons/src/app/templates/android/src/main/java/Package.kt:
--------------------------------------------------------------------------------
1 | package com.reactnativevectoricons.<%= androidName %>
2 |
3 | import com.facebook.react.TurboReactPackage
4 | import com.facebook.react.bridge.NativeModule
5 | import com.facebook.react.bridge.ReactApplicationContext
6 | import com.facebook.react.module.model.ReactModuleInfoProvider
7 |
8 | class VectorIcons<%= className %>Package : TurboReactPackage() {
9 | override fun getModule(
10 | name: String,
11 | reactContext: ReactApplicationContext,
12 | ): NativeModule? = null
13 |
14 | override fun getReactModuleInfoProvider(): ReactModuleInfoProvider =
15 | ReactModuleInfoProvider {
16 | mapOf()
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/packages/generator-react-native-vector-icons/src/app/templates/babel.config.js:
--------------------------------------------------------------------------------
1 | // NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | // If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | module.exports = {
5 | presets: [['module:react-native-builder-bob/babel-preset', { modules: 'commonjs' }]],
6 | };
7 |
--------------------------------------------------------------------------------
/packages/generator-react-native-vector-icons/src/app/templates/src/index.ts:
--------------------------------------------------------------------------------
1 | // NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | // If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | /**
5 | * This is a generated file. If you modify it manually, your changes will be lost!
6 | * Instead, modify the template in `generator-react-native-vector-icons`.
7 | *
8 | * <%= className %> icon set component.
9 | * Usage: <<%= className %> name="icon-name" size={20} color="#4F8EF7" />
10 | */
11 |
12 | import { createIconSet } from '@react-native-vector-icons/<%= commonPackage %>';
13 | import glyphMap from '../glyphmaps/<%= fontFileName %>.json';
14 |
15 | const Icon = createIconSet(glyphMap, {
16 | postScriptName: '<%= postScriptName %>',
17 | fontFileName: '<%= fontFileName %>.ttf',
18 | fontSource: require('../fonts/<%= fontFileName %>.ttf'), // eslint-disable-line @typescript-eslint/no-require-imports, global-require
19 | });
20 |
21 | export default Icon;
22 |
--------------------------------------------------------------------------------
/packages/generator-react-native-vector-icons/src/app/templates/tsconfig.build.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig",
3 | "exclude": ["example", "lib"]
4 | }
5 |
--------------------------------------------------------------------------------
/packages/generator-react-native-vector-icons/src/app/templates/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "rootDir": ".",
4 | "allowUnreachableCode": false,
5 | "allowUnusedLabels": false,
6 | "esModuleInterop": true,
7 | "forceConsistentCasingInFileNames": true,
8 | "jsx": "react-jsx",
9 | "lib": ["ESNext"],
10 | "module": "ESNext",
11 | "moduleResolution": "Bundler",
12 | "noEmit": true,
13 | "noFallthroughCasesInSwitch": true,
14 | "noImplicitReturns": true,
15 | "noImplicitUseStrict": false,
16 | "noStrictGenericChecks": false,
17 | "noUncheckedIndexedAccess": true,
18 | "noUnusedLocals": true,
19 | "noUnusedParameters": true,
20 | "resolveJsonModule": true,
21 | "skipLibCheck": true,
22 | "strict": true,
23 | "target": "ESNext",
24 | "verbatimModuleSyntax": true
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/packages/generator-react-native-vector-icons/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.json",
3 | "compilerOptions": {
4 | "noEmit": false,
5 | "rootDir": "./src",
6 | "outDir": "./generators"
7 | },
8 | "include": ["./src"],
9 | "exclude": ["node_modules", "src/*/templates"]
10 | }
11 |
--------------------------------------------------------------------------------
/packages/get-image/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/packages/get-image/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # 12.0.0 (2025-05-04)
2 |
3 | ### 🚀 Features
4 |
5 | - make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
6 |
7 | ### ❤️ Thank You
8 |
9 | - John Ferlito @johnf
--------------------------------------------------------------------------------
/packages/get-image/android/gradle.properties:
--------------------------------------------------------------------------------
1 | VectorIcons_kotlinVersion=1.7.0
2 | VectorIcons_minSdkVersion=21
3 | VectorIcons_targetSdkVersion=31
4 | VectorIcons_compileSdkVersion=31
5 | VectorIcons_ndkversion=21.4.7075529
6 |
--------------------------------------------------------------------------------
/packages/get-image/android/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
--------------------------------------------------------------------------------
/packages/get-image/android/src/main/AndroidManifestNew.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/packages/get-image/android/src/newarch/VectorIconsSpec.kt:
--------------------------------------------------------------------------------
1 | package com.reactnativevectoricons.get_image
2 |
3 | import com.facebook.react.bridge.ReactApplicationContext
4 |
5 | abstract class VectorIconsSpec internal constructor(context: ReactApplicationContext) :
6 | NativeVectorIconsSpec(context) {
7 | }
8 |
--------------------------------------------------------------------------------
/packages/get-image/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [['module:react-native-builder-bob/babel-preset', { modules: 'commonjs' }]],
3 | };
4 |
--------------------------------------------------------------------------------
/packages/get-image/ios/VectorIcons.h:
--------------------------------------------------------------------------------
1 |
2 | #ifdef RCT_NEW_ARCH_ENABLED
3 | #import "RNVectorIconsSpec.h"
4 |
5 | @interface VectorIcons : NSObject
6 | #else
7 | #import
8 |
9 | @interface VectorIcons : NSObject
10 | #endif
11 |
12 | // - (NSString *)hexStringFromColor:(UIColor *)color;
13 | // - (NSString *)generateFilePath:(NSString *)glyph withFontName:(NSString
14 | // *)fontName
15 | // withFontSize:(CGFloat)fontSize
16 | // withColor:(UIColor *)color
17 | // withExtraIdentifier:(NSString
18 | // *)identifier;
19 | // - (BOOL)createAndSaveGlyphImage:(NSString *)glyph withFont:(UIFont *)font
20 | // withFilePath:(NSString
21 | // *)filePath
22 | // withColor:(UIColor *)color;
23 | //
24 | @end
25 |
--------------------------------------------------------------------------------
/packages/get-image/react-native.config.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @type {import('@react-native-community/cli-types').UserDependencyConfig}
3 | */
4 | module.exports = {
5 | dependency: {
6 | platforms: {
7 | android: {
8 | // NOTE: We aren't shipping generated files as this eesm to break react 0.73 due to missing include paths for react-native
9 | cmakeListsPath: 'build/generated/source/codegen/jni/CMakeLists.txt',
10 | },
11 | },
12 | },
13 | };
14 |
--------------------------------------------------------------------------------
/packages/get-image/src/NativeVectorIcons.ts:
--------------------------------------------------------------------------------
1 | import type { TurboModule } from 'react-native';
2 | import { TurboModuleRegistry } from 'react-native';
3 |
4 | export interface Spec extends TurboModule {
5 | getImageForFont(fontFamilyName: string, glyph: string, fontSize: number, color: number): Promise;
6 |
7 | getImageForFontSync(fontFamilyName: string, glyph: string, fontSize: number, color: number): string;
8 | }
9 |
10 | export default TurboModuleRegistry.getEnforcing('VectorIcons');
11 |
--------------------------------------------------------------------------------
/packages/get-image/src/NativeVectorIcons.web.ts:
--------------------------------------------------------------------------------
1 | export default {};
2 |
--------------------------------------------------------------------------------
/packages/get-image/src/ensure-native-module-available.ts:
--------------------------------------------------------------------------------
1 | import NativeIconAPI from './NativeVectorIcons';
2 |
3 | export default function ensureNativeModuleAvailable() {
4 | if (!NativeIconAPI) {
5 | throw new Error(
6 | 'The native RNVectorIcons API is not available, did you properly integrate the module? Please verify your autolinking setup and recompile.',
7 | );
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/packages/get-image/src/index.ts:
--------------------------------------------------------------------------------
1 | import { Platform } from 'react-native';
2 |
3 | export { default as ensureNativeModuleAvailable } from './ensure-native-module-available';
4 |
5 | const LINKING_ERROR = `
6 | The package '@react-native-vector-icons/get-image' doesn't seem to be linked. Make sure:
7 | ${Platform.select({ ios: "- You have run 'pod install'\n", default: '' })}
8 | - You rebuilt the app after installing the package\n'
9 | - You are not using Expo Go
10 | `;
11 |
12 | // eslint-disable-next-line @typescript-eslint/no-require-imports
13 | const VectorIconsModule = require('./NativeVectorIcons').default;
14 |
15 | const VectorIcons = VectorIconsModule
16 | ? VectorIconsModule
17 | : new Proxy(
18 | {},
19 | {
20 | get() {
21 | throw new Error(LINKING_ERROR);
22 | },
23 | },
24 | );
25 |
26 | export function getImageForFont(
27 | fontFamilyName: string,
28 | glyph: string,
29 | fontSize: number,
30 | color: number,
31 | ): Promise {
32 | return VectorIcons.getImageForFont(fontFamilyName, glyph, fontSize, color);
33 | }
34 |
35 | export function getImageForFontSync(fontFamilyName: string, glyph: string, fontSize: number, color: number): string {
36 | return VectorIcons.getImageForFontSync(fontFamilyName, glyph, fontSize, color);
37 | }
38 |
--------------------------------------------------------------------------------
/packages/get-image/tsconfig.build.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig",
3 | "exclude": ["example", "lib"]
4 | }
5 |
--------------------------------------------------------------------------------
/packages/get-image/tsconfig.json:
--------------------------------------------------------------------------------
1 | ../../tsconfig.json
--------------------------------------------------------------------------------
/packages/get-image/turbo.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://turbo.build/schema.json",
3 | "pipeline": {
4 | "build:android": {
5 | "env": ["ORG_GRADLE_PROJECT_newArchEnabled"],
6 | "inputs": [
7 | "package.json",
8 | "android",
9 | "!android/build",
10 | "src/*.ts",
11 | "src/*.tsx",
12 | "example/package.json",
13 | "example/android",
14 | "!example/android/.gradle",
15 | "!example/android/build",
16 | "!example/android/app/build"
17 | ],
18 | "outputs": []
19 | },
20 | "build:ios": {
21 | "env": ["RCT_NEW_ARCH_ENABLED"],
22 | "inputs": [
23 | "package.json",
24 | "*.podspec",
25 | "ios",
26 | "src/*.ts",
27 | "src/*.tsx",
28 | "example/package.json",
29 | "example/ios",
30 | "!example/ios/build",
31 | "!example/ios/Pods"
32 | ],
33 | "outputs": []
34 | }
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/packages/icomoon/.yo-rc.json:
--------------------------------------------------------------------------------
1 | {
2 | "generator-react-native-vector-icons": {
3 | "packageName": "icomoon",
4 | "customReadme": true,
5 | "customSrc": true,
6 | "copyCustomFonts": true
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/packages/icomoon/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # 12.0.0 (2025-05-04)
2 |
3 | ### 🚀 Features
4 |
5 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
6 | - add lucide icon ([#1702](https://github.com/oblador/react-native-vector-icons/pull/1702))
7 |
8 | ### 🩹 Fixes
9 |
10 | - upgrade octicons to 19.14.0 ([#1691](https://github.com/oblador/react-native-vector-icons/pull/1691))
11 | - upgrade fontawesome6 to 6.7.2 ([#1690](https://github.com/oblador/react-native-vector-icons/pull/1690))
12 | - mac osx detection in glyphmap script ([2967ce99](https://github.com/oblador/react-native-vector-icons/commit/2967ce99))
13 |
14 | ### ⚠️ Breaking Changes
15 |
16 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
17 |
18 | ### ❤️ Thank You
19 |
20 | - Chanphirom Sok @chanphiromsok
21 | - John Ferlito @johnf
--------------------------------------------------------------------------------
/packages/icomoon/android/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
--------------------------------------------------------------------------------
/packages/icomoon/android/src/main/AndroidManifestNew.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/packages/icomoon/android/src/main/java/VectorIconsIcomoonPackage.kt:
--------------------------------------------------------------------------------
1 | package com.reactnativevectoricons.icomoon
2 |
3 | import com.facebook.react.TurboReactPackage
4 | import com.facebook.react.bridge.NativeModule
5 | import com.facebook.react.bridge.ReactApplicationContext
6 | import com.facebook.react.module.model.ReactModuleInfoProvider
7 |
8 | class VectorIconsIcomoonPackage : TurboReactPackage() {
9 | override fun getModule(
10 | name: String,
11 | reactContext: ReactApplicationContext,
12 | ): NativeModule? = null
13 |
14 | override fun getReactModuleInfoProvider(): ReactModuleInfoProvider =
15 | ReactModuleInfoProvider {
16 | mapOf()
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/packages/icomoon/babel.config.js:
--------------------------------------------------------------------------------
1 | // NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | // If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | module.exports = {
5 | presets: [['module:react-native-builder-bob/babel-preset', { modules: 'commonjs' }]],
6 | };
7 |
--------------------------------------------------------------------------------
/packages/icomoon/src/index.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Fontello icon set component.
3 | * Usage:
4 | */
5 |
6 | import { createIconSet } from '@react-native-vector-icons/common';
7 |
8 | type IcoMoonIcon = {
9 | properties: {
10 | name: string;
11 | code: number;
12 | };
13 | };
14 | type IcoMoonConfig = {
15 | icons: IcoMoonIcon[];
16 | preferences: {
17 | fontPref: {
18 | metadata: {
19 | fontFamily: string;
20 | };
21 | };
22 | };
23 | };
24 |
25 | export default (config: IcoMoonConfig, fontFamilyArg?: string, fontFile?: string) => {
26 | const glyphMap: Record = {};
27 | config.icons.forEach((icon) => {
28 | icon.properties.name.split(/\s*,\s*/g).forEach((name) => {
29 | glyphMap[name] = icon.properties.code;
30 | });
31 | });
32 |
33 | const fontFamily = fontFamilyArg || config.preferences.fontPref.metadata.fontFamily;
34 |
35 | return createIconSet(glyphMap, fontFamily, fontFile || `${fontFamily}.ttf`);
36 | };
37 |
--------------------------------------------------------------------------------
/packages/icomoon/tsconfig.build.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig",
3 | "exclude": ["example", "lib"]
4 | }
5 |
--------------------------------------------------------------------------------
/packages/icomoon/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "rootDir": ".",
4 | "allowUnreachableCode": false,
5 | "allowUnusedLabels": false,
6 | "esModuleInterop": true,
7 | "forceConsistentCasingInFileNames": true,
8 | "jsx": "react-jsx",
9 | "lib": ["ESNext"],
10 | "module": "ESNext",
11 | "moduleResolution": "Bundler",
12 | "noEmit": true,
13 | "noFallthroughCasesInSwitch": true,
14 | "noImplicitReturns": true,
15 | "noImplicitUseStrict": false,
16 | "noStrictGenericChecks": false,
17 | "noUncheckedIndexedAccess": true,
18 | "noUnusedLocals": true,
19 | "noUnusedParameters": true,
20 | "resolveJsonModule": true,
21 | "skipLibCheck": true,
22 | "strict": true,
23 | "target": "ESNext",
24 | "verbatimModuleSyntax": true
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/packages/icon-explorer/.gitignore:
--------------------------------------------------------------------------------
1 | *.binlog
2 | *.hprof
3 | *.xcworkspace/
4 | *.zip
5 | .DS_Store
6 | .gradle/
7 | .idea/
8 | .vs/
9 | .xcode.env
10 | Pods/
11 | build/
12 | dist/*
13 | !dist/.gitignore
14 | local.properties
15 | msbuild.binlog
16 | node_modules/
17 |
18 | # Make sure we don't accidentally commit out fontawesomepro test fonts
19 | rnvi-fonts/fontawesome5-pro
20 | rnvi-fonts/fontawesome6-pro
21 |
--------------------------------------------------------------------------------
/packages/icon-explorer/.owl/.gitignore:
--------------------------------------------------------------------------------
1 | # generated by react-native-owl
2 | diff/
3 | latest/
4 | report/
5 |
--------------------------------------------------------------------------------
/packages/icon-explorer/.owl/baseline-new/android/home-bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oblador/react-native-vector-icons/54ba7a29f90a008ebc668ae572587b746789fceb/packages/icon-explorer/.owl/baseline-new/android/home-bottom.png
--------------------------------------------------------------------------------
/packages/icon-explorer/.owl/baseline-new/android/home-top.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oblador/react-native-vector-icons/54ba7a29f90a008ebc668ae572587b746789fceb/packages/icon-explorer/.owl/baseline-new/android/home-top.png
--------------------------------------------------------------------------------
/packages/icon-explorer/.owl/baseline-new/android/tests.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oblador/react-native-vector-icons/54ba7a29f90a008ebc668ae572587b746789fceb/packages/icon-explorer/.owl/baseline-new/android/tests.png
--------------------------------------------------------------------------------
/packages/icon-explorer/.owl/baseline-new/ios/home-bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oblador/react-native-vector-icons/54ba7a29f90a008ebc668ae572587b746789fceb/packages/icon-explorer/.owl/baseline-new/ios/home-bottom.png
--------------------------------------------------------------------------------
/packages/icon-explorer/.owl/baseline-new/ios/home-top.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oblador/react-native-vector-icons/54ba7a29f90a008ebc668ae572587b746789fceb/packages/icon-explorer/.owl/baseline-new/ios/home-top.png
--------------------------------------------------------------------------------
/packages/icon-explorer/.owl/baseline-new/ios/tests.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oblador/react-native-vector-icons/54ba7a29f90a008ebc668ae572587b746789fceb/packages/icon-explorer/.owl/baseline-new/ios/tests.png
--------------------------------------------------------------------------------
/packages/icon-explorer/.owl/baseline-old/android/home-bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oblador/react-native-vector-icons/54ba7a29f90a008ebc668ae572587b746789fceb/packages/icon-explorer/.owl/baseline-old/android/home-bottom.png
--------------------------------------------------------------------------------
/packages/icon-explorer/.owl/baseline-old/android/home-top.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oblador/react-native-vector-icons/54ba7a29f90a008ebc668ae572587b746789fceb/packages/icon-explorer/.owl/baseline-old/android/home-top.png
--------------------------------------------------------------------------------
/packages/icon-explorer/.owl/baseline-old/android/tests.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oblador/react-native-vector-icons/54ba7a29f90a008ebc668ae572587b746789fceb/packages/icon-explorer/.owl/baseline-old/android/tests.png
--------------------------------------------------------------------------------
/packages/icon-explorer/.owl/baseline-old/ios/home-bottom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oblador/react-native-vector-icons/54ba7a29f90a008ebc668ae572587b746789fceb/packages/icon-explorer/.owl/baseline-old/ios/home-bottom.png
--------------------------------------------------------------------------------
/packages/icon-explorer/.owl/baseline-old/ios/home-top.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oblador/react-native-vector-icons/54ba7a29f90a008ebc668ae572587b746789fceb/packages/icon-explorer/.owl/baseline-old/ios/home-top.png
--------------------------------------------------------------------------------
/packages/icon-explorer/.owl/baseline-old/ios/tests.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oblador/react-native-vector-icons/54ba7a29f90a008ebc668ae572587b746789fceb/packages/icon-explorer/.owl/baseline-old/ios/tests.png
--------------------------------------------------------------------------------
/packages/icon-explorer/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/packages/icon-explorer/README.md:
--------------------------------------------------------------------------------
1 | ## Testing RN versions
2 |
3 | To locally test a particular version
4 |
5 | ```sh
6 | ./set-rn-version.sh android stable|0.73|0.72...
7 | pnpm install
8 | pnpm run start
9 | pnpm run test:android
10 | git restore -p
11 | ```
12 |
--------------------------------------------------------------------------------
/packages/icon-explorer/__tests__/App.owl.tsx:
--------------------------------------------------------------------------------
1 | import { press, scrollToEnd, takeScreenshot, toExist } from '@johnf/react-native-owl';
2 |
3 | describe('App.tsx', () => {
4 | it('show home top', async () => {
5 | await toExist('AntD');
6 |
7 | const screen = await takeScreenshot('home-top');
8 |
9 | // NOTE: Sometimes ios home bar has the wrong color so we crop the bottom
10 | expect(screen).toMatchBaseline({ bottomCrop: 20 });
11 | });
12 |
13 | it('show home bottom', async () => {
14 | await toExist('AntD');
15 |
16 | await scrollToEnd('scrollview');
17 |
18 | const screen = await takeScreenshot('home-bottom');
19 |
20 | // NOTE: Sometimes ios home bar has the wrong color so we crop the bottom
21 | expect(screen).toMatchBaseline({ bottomCrop: 20 });
22 | });
23 |
24 | it('should load Test fonts', async () => {
25 | await toExist('TestMode');
26 | await press('TestMode');
27 |
28 | await toExist('TestScreen');
29 |
30 | const screen = await takeScreenshot('tests');
31 |
32 | // NOTE: Sometimes ios home bar has the wrong color so we crop the bottom
33 | expect(screen).toMatchBaseline({ bottomCrop: 20 });
34 | });
35 | });
36 |
--------------------------------------------------------------------------------
/packages/icon-explorer/android/build.gradle:
--------------------------------------------------------------------------------
1 | buildscript {
2 | apply(from: {
3 | def searchDir = rootDir.toPath()
4 | do {
5 | def p = searchDir.resolve("node_modules/react-native-test-app/android/dependencies.gradle")
6 | if (p.toFile().exists()) {
7 | return p.toRealPath().toString()
8 | }
9 | } while (searchDir = searchDir.getParent())
10 | throw new GradleException("Could not find `react-native-test-app`");
11 | }())
12 |
13 | repositories {
14 | mavenCentral()
15 | google()
16 | }
17 |
18 | dependencies {
19 | getReactNativeDependencies().each { dependency ->
20 | classpath(dependency)
21 | }
22 | }
23 | }
24 |
25 | allprojects {
26 | repositories {
27 | {
28 | def searchDir = rootDir.toPath()
29 | do {
30 | def p = searchDir.resolve("node_modules/react-native/android")
31 | if (p.toFile().exists()) {
32 | maven {
33 | url(p.toRealPath().toString())
34 | }
35 | break
36 | }
37 | } while (searchDir = searchDir.getParent())
38 | // As of 0.80, React Native is no longer installed from npm
39 | }()
40 | mavenCentral()
41 | google()
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/packages/icon-explorer/android/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oblador/react-native-vector-icons/54ba7a29f90a008ebc668ae572587b746789fceb/packages/icon-explorer/android/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/packages/icon-explorer/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
4 | networkTimeout=10000
5 | validateDistributionUrl=true
6 | zipStoreBase=GRADLE_USER_HOME
7 | zipStorePath=wrapper/dists
8 |
--------------------------------------------------------------------------------
/packages/icon-explorer/android/settings.gradle:
--------------------------------------------------------------------------------
1 | pluginManagement {
2 | repositories {
3 | gradlePluginPortal()
4 | mavenCentral()
5 | google()
6 | }
7 | }
8 |
9 | rootProject.name = "IconExplorer"
10 |
11 | apply(from: {
12 | def searchDir = rootDir.toPath()
13 | do {
14 | def p = searchDir.resolve("node_modules/react-native-test-app/test-app.gradle")
15 | if (p.toFile().exists()) {
16 | return p.toRealPath().toString()
17 | }
18 | } while (searchDir = searchDir.getParent())
19 | throw new GradleException("Could not find `react-native-test-app`");
20 | }())
21 | applyTestAppSettings(settings)
22 |
--------------------------------------------------------------------------------
/packages/icon-explorer/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "IconExplorer",
3 | "displayName": "IconExplorer",
4 | "singleApp": "IconExplorer",
5 | "components": [
6 | {
7 | "appKey": "IconExplorer",
8 | "displayName": "IconExplorer",
9 | "slug": "IconExplorer"
10 | }
11 | ],
12 | "plugins": ["./configPlugin.js"],
13 | "resources": {
14 | "android": ["dist/res", "dist/main.android.jsbundle"],
15 | "ios": ["dist/assets", "dist/main.ios.jsbundle"],
16 | "macos": ["dist/assets", "dist/main.macos.jsbundle"],
17 | "visionos": ["dist/assets", "dist/main.visionos.jsbundle"],
18 | "windows": ["dist/assets", "dist/main.windows.bundle"]
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/packages/icon-explorer/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: ['@rnx-kit/babel-preset-metro-react-native'],
3 | };
4 |
--------------------------------------------------------------------------------
/packages/icon-explorer/configPlugin.js:
--------------------------------------------------------------------------------
1 | const { withInfoPlist } = require('@expo/config-plugins'); // eslint-disable-line import/no-extraneous-dependencies, @typescript-eslint/no-require-imports
2 |
3 | // Add all our fonts to the plist
4 | module.exports = (config) =>
5 | withInfoPlist(config, (c) => {
6 | c.ios ||= {};
7 | c.ios.infoPlist ||= {};
8 |
9 | c.ios.infoPlist.UIAppFonts ||= [];
10 |
11 | // TODO can we generate this list?
12 | const fonts = [
13 | 'AntDesign.ttf',
14 | 'Entypo.ttf',
15 | 'EvilIcons.ttf',
16 | 'Feather.ttf',
17 | 'FontAwesome.ttf',
18 | 'FontAwesome5_Brands.ttf',
19 | 'FontAwesome5_Regular.ttf',
20 | 'FontAwesome5_Solid.ttf',
21 | 'FontAwesome6_Brands.ttf',
22 | 'FontAwesome6_Regular.ttf',
23 | 'FontAwesome6_Solid.ttf',
24 | 'Fontisto.ttf',
25 | 'Foundation.ttf',
26 | 'Ionicons.ttf',
27 | 'MaterialDesignIcons.ttf',
28 | 'MaterialIcons.ttf',
29 | 'Octicons.ttf',
30 | 'SimpleLineIcons.ttf',
31 | 'Zocial.ttf',
32 | 'fontello.ttf',
33 | 'icomoon.ttf',
34 | 'Lucide.ttf',
35 | ];
36 |
37 | fonts.forEach((font) => c.ios.infoPlist.UIAppFonts.push(font));
38 |
39 | return c;
40 | });
41 |
--------------------------------------------------------------------------------
/packages/icon-explorer/index.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @format
3 | */
4 |
5 | import { AppRegistry } from 'react-native';
6 |
7 | import App from './src/App';
8 |
9 | import { name as appName } from './app.json';
10 |
11 | AppRegistry.registerComponent(appName, () => App);
12 |
--------------------------------------------------------------------------------
/packages/icon-explorer/index.test.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable @typescript-eslint/no-require-imports */
2 |
3 | // Setup the Owl client
4 | require('@johnf/react-native-owl/lib/commonjs/client').initClient();
5 |
6 | // Load the app as normal
7 | require('./index');
8 |
--------------------------------------------------------------------------------
/packages/icon-explorer/ios/Podfile:
--------------------------------------------------------------------------------
1 | ws_dir = Pathname.new(__dir__)
2 | ws_dir = ws_dir.parent until
3 | File.exist?("#{ws_dir}/node_modules/react-native-test-app/test_app.rb") ||
4 | ws_dir.expand_path.to_s == '/'
5 | require "#{ws_dir}/node_modules/react-native-test-app/test_app.rb"
6 |
7 | workspace 'IconExplorer.xcworkspace'
8 |
9 | use_test_app! hermes_enabled: true, fabric_enabled: true
10 |
--------------------------------------------------------------------------------
/packages/icon-explorer/jest.config.js:
--------------------------------------------------------------------------------
1 | /** @type {import('@jest/types').Config.InitialOptions} */
2 | module.exports = {
3 | preset: 'ts-jest',
4 | testTimeout: 30 * 1000,
5 | reporters: ['default', ['jest-junit', { outputDirectory: '.owl/report', outputName: 'report.xml' }]],
6 | verbose: true,
7 | };
8 |
--------------------------------------------------------------------------------
/packages/icon-explorer/macos/Podfile:
--------------------------------------------------------------------------------
1 | ws_dir = Pathname.new(__dir__)
2 | ws_dir = ws_dir.parent until
3 | File.exist?("#{ws_dir}/node_modules/react-native-test-app/macos/test_app.rb") ||
4 | ws_dir.expand_path.to_s == '/'
5 | require "#{ws_dir}/node_modules/react-native-test-app/macos/test_app.rb"
6 |
7 | workspace 'IconExplorer.xcworkspace'
8 |
9 | use_test_app!
10 |
--------------------------------------------------------------------------------
/packages/icon-explorer/metro.config.js:
--------------------------------------------------------------------------------
1 | const path = require('node:path');
2 |
3 | const { makeMetroConfig } = require('@rnx-kit/metro-config');
4 |
5 | const projectRoot = __dirname;
6 | const monorepoRoot = path.resolve(projectRoot, '../..');
7 |
8 | module.exports = makeMetroConfig({
9 | watchFolders: [monorepoRoot],
10 | resolver: {
11 | nodeModulesPaths: [path.resolve(projectRoot, 'node_modules'), path.resolve(monorepoRoot, 'node_modules')],
12 | },
13 | transformer: {
14 | getTransformOptions: async () => ({
15 | transform: {
16 | experimentalImportSupport: false,
17 | inlineRequires: false,
18 | },
19 | }),
20 | },
21 | });
22 |
--------------------------------------------------------------------------------
/packages/icon-explorer/owl.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "ios": {
3 | "workspace": "ios/IconExplorer.xcworkspace",
4 | "scheme": "ReactTestApp",
5 | "configuration": "Debug",
6 | "device": "iPhone 16"
7 | },
8 | "android": {
9 | "packageName": "com.microsoft.reacttestapp"
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/packages/icon-explorer/react-native.config.js:
--------------------------------------------------------------------------------
1 | const project = (() => {
2 | try {
3 | const { configureProjects } = require('react-native-test-app');
4 | return configureProjects({
5 | android: {
6 | sourceDir: 'android',
7 | },
8 | ios: {
9 | sourceDir: 'ios',
10 | },
11 | windows: {
12 | sourceDir: 'windows',
13 | solutionFile: 'windows/IconExplorer.sln',
14 | },
15 | });
16 | } catch (_) {
17 | return undefined;
18 | }
19 | })();
20 |
21 | module.exports = {
22 | ...(project ? { project } : undefined),
23 | };
24 |
--------------------------------------------------------------------------------
/packages/icon-explorer/rnvi-fonts/fontello/fontello.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oblador/react-native-vector-icons/54ba7a29f90a008ebc668ae572587b746789fceb/packages/icon-explorer/rnvi-fonts/fontello/fontello.ttf
--------------------------------------------------------------------------------
/packages/icon-explorer/rnvi-fonts/icomoon/icomoon.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oblador/react-native-vector-icons/54ba7a29f90a008ebc668ae572587b746789fceb/packages/icon-explorer/rnvi-fonts/icomoon/icomoon.ttf
--------------------------------------------------------------------------------
/packages/icon-explorer/src/animatable.tsx:
--------------------------------------------------------------------------------
1 | import { createAnimatableComponent as createAnimatableComponentRNA } from 'react-native-animatable';
2 |
3 | import type React from 'react';
4 | import { ScrollView } from 'react-native';
5 |
6 | const createAnimatableComponentMock = (component: React.FC) => component;
7 |
8 | const disableAnimations = () => {
9 | const scroll = ;
10 |
11 | return !scroll.props.showsVerticalScrollIndicator;
12 | };
13 |
14 | export const createAnimatableComponent = disableAnimations()
15 | ? createAnimatableComponentMock
16 | : createAnimatableComponentRNA;
17 |
--------------------------------------------------------------------------------
/packages/icon-explorer/src/configs/fontello.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "",
3 | "css_prefix_text": "icon-",
4 | "css_use_suffix": false,
5 | "hinting": true,
6 | "units_per_em": 1000,
7 | "ascent": 850,
8 | "glyphs": [
9 | {
10 | "uid": "a42f298da5c64e646a5d532724cd6e15",
11 | "css": "home",
12 | "code": 59392,
13 | "src": "typicons"
14 | }
15 | ]
16 | }
17 |
--------------------------------------------------------------------------------
/packages/icon-explorer/src/configs/icomoon.config.json:
--------------------------------------------------------------------------------
1 | {"IcoMoonType":"selection","icons":[{"icon":{"paths":["M1024 590.444l-512-397.426-512 397.428v-162.038l512-397.426 512 397.428zM896 576v384h-256v-256h-256v256h-256v-384l384-288z"],"tags":["home","house"],"defaultCode":59648,"grid":16,"attrs":[]},"attrs":[],"properties":{"ligatures":"home, house","name":"home","order":2,"id":1,"prevSize":32,"code":59648},"setIdx":0,"setId":1,"iconIdx":0}],"height":1024,"metadata":{"name":"icomoon"},"preferences":{"showGlyphs":true,"showQuickUse":true,"showQuickUse2":true,"showSVGs":true,"fontPref":{"prefix":"icon-","metadata":{"fontFamily":"icomoon","majorVersion":1,"minorVersion":0},"metrics":{"emSize":1024,"baseline":6.25,"whitespace":50},"embed":false,"noie8":true,"ie7":false},"imagePref":{"prefix":"icon-","png":true,"useClassSelector":true,"color":0,"bgColor":16777215,"classSelector":".icon"},"historySize":50,"showCodes":true,"gridSize":16}}
--------------------------------------------------------------------------------
/packages/icon-explorer/src/rnvi-fonts/fontello.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oblador/react-native-vector-icons/54ba7a29f90a008ebc668ae572587b746789fceb/packages/icon-explorer/src/rnvi-fonts/fontello.ttf
--------------------------------------------------------------------------------
/packages/icon-explorer/src/rnvi-fonts/icomoon.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oblador/react-native-vector-icons/54ba7a29f90a008ebc668ae572587b746789fceb/packages/icon-explorer/src/rnvi-fonts/icomoon.ttf
--------------------------------------------------------------------------------
/packages/icon-explorer/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "@react-native/typescript-config/tsconfig.json"
3 | }
4 |
--------------------------------------------------------------------------------
/packages/icon-explorer/visionos/Podfile:
--------------------------------------------------------------------------------
1 | ws_dir = Pathname.new(__dir__)
2 | ws_dir = ws_dir.parent until
3 | File.exist?("#{ws_dir}/node_modules/react-native-test-app/visionos/test_app.rb") ||
4 | ws_dir.expand_path.to_s == '/'
5 | require "#{ws_dir}/node_modules/react-native-test-app/visionos/test_app.rb"
6 |
7 | workspace 'IconExplorer.xcworkspace'
8 |
9 | use_test_app!
10 |
--------------------------------------------------------------------------------
/packages/icon-explorer/windows/.gitignore:
--------------------------------------------------------------------------------
1 | .vs/
2 |
3 | # User-specific files
4 | *.suo
5 | *.user
6 | *.sln.docstates
7 |
8 | # Build results
9 | ARM64/
10 | AppPackages/
11 | [Bb]in/
12 | [Dd]ebug/
13 | [Dd]ebugPublic/
14 | [Oo]bj/
15 | [Rr]elease/
16 | [Rr]eleases/
17 | bld/
18 | build/
19 | x64/
20 | x86/
21 |
22 | # NuGet Packages Directory
23 | packages/
24 |
25 | **/Generated Files/**
26 | *.binlog
27 | *.hprof
28 | *.sln
29 | ExperimentalFeatures.props
30 | NuGet.Config
31 | dist/
32 | msbuild.binlog
33 | node_modules/
34 |
--------------------------------------------------------------------------------
/packages/ionicons/.yo-rc.json:
--------------------------------------------------------------------------------
1 | {
2 | "generator-react-native-vector-icons": {
3 | "packageName": "ionicons",
4 | "upstreamFont": "ionicons",
5 | "buildSteps": {
6 | "fixSVGPaths": {
7 | "location": "../../node_modules/ionicons/dist/svg"
8 | },
9 | "fontCustom": {
10 | "location": "fixedSvg",
11 | "cleanup": true
12 | },
13 | "fontforgeScript": {
14 | "script": "correct-direction.py"
15 | },
16 | "glyphmap": {
17 | "mode": "css",
18 | "cleanup": true
19 | }
20 | },
21 | "versions": [{ "rnvi": "12.0.0", "upstream": "7.4.0" }, { "rnvi": "12.0.1", "upstream": "8.0.8" }]
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/packages/ionicons/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # 12.0.0 (2025-05-04)
2 |
3 | ### 🚀 Features
4 |
5 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
6 | - add lucide icon ([#1702](https://github.com/oblador/react-native-vector-icons/pull/1702))
7 |
8 | ### 🩹 Fixes
9 |
10 | - upgrade octicons to 19.14.0 ([#1691](https://github.com/oblador/react-native-vector-icons/pull/1691))
11 | - upgrade fontawesome6 to 6.7.2 ([#1690](https://github.com/oblador/react-native-vector-icons/pull/1690))
12 | - mac osx detection in glyphmap script ([2967ce99](https://github.com/oblador/react-native-vector-icons/commit/2967ce99))
13 |
14 | ### ⚠️ Breaking Changes
15 |
16 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
17 |
18 | ### ❤️ Thank You
19 |
20 | - Chanphirom Sok @chanphiromsok
21 | - John Ferlito @johnf
--------------------------------------------------------------------------------
/packages/ionicons/README.md:
--------------------------------------------------------------------------------
1 | # React Native Vector Icons - Ionicons
2 |
3 | Ionicons font for React Native Vector Icons
4 |
5 | See the [React Native Vector Icons README](../../README.md) for more details.
6 |
7 | ## Installation
8 |
9 | ```sh
10 | npm install @react-native-vector-icons/ionicons
11 | ```
12 |
13 | ## Usage
14 |
15 | ```js
16 | import Ionicons from '@react-native-vector-icons/ionicons';
17 |
18 | // ...
19 |
20 |
21 | ```
22 |
23 |
24 | ## Versions
25 |
26 | Prior to version 12, the version of this font package tracked the upstream version.
27 |
28 | The table below tracks which font version is included in each package version.
29 |
30 | | RNVI version | Upstream version |
31 | | ------------ | ---------------- |
32 | | <= 12.0.0 | 7.4.0 |
33 | | <= 12.0.1 | 8.0.8 |
34 |
35 | ## Contributing
36 |
37 | See the [contributing guide](../../CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.
38 |
39 | ## License
40 |
41 | MIT
42 |
--------------------------------------------------------------------------------
/packages/ionicons/android/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
--------------------------------------------------------------------------------
/packages/ionicons/android/src/main/AndroidManifestNew.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/packages/ionicons/android/src/main/java/VectorIconsIoniconsPackage.kt:
--------------------------------------------------------------------------------
1 | package com.reactnativevectoricons.ionicons
2 |
3 | import com.facebook.react.TurboReactPackage
4 | import com.facebook.react.bridge.NativeModule
5 | import com.facebook.react.bridge.ReactApplicationContext
6 | import com.facebook.react.module.model.ReactModuleInfoProvider
7 |
8 | class VectorIconsIoniconsPackage : TurboReactPackage() {
9 | override fun getModule(
10 | name: String,
11 | reactContext: ReactApplicationContext,
12 | ): NativeModule? = null
13 |
14 | override fun getReactModuleInfoProvider(): ReactModuleInfoProvider =
15 | ReactModuleInfoProvider {
16 | mapOf()
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/packages/ionicons/babel.config.js:
--------------------------------------------------------------------------------
1 | // NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | // If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | module.exports = {
5 | presets: [['module:react-native-builder-bob/babel-preset', { modules: 'commonjs' }]],
6 | };
7 |
--------------------------------------------------------------------------------
/packages/ionicons/fonts/Ionicons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oblador/react-native-vector-icons/54ba7a29f90a008ebc668ae572587b746789fceb/packages/ionicons/fonts/Ionicons.ttf
--------------------------------------------------------------------------------
/packages/ionicons/react-native-vector-icons-ionicons.podspec:
--------------------------------------------------------------------------------
1 | # NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | # If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | require 'json'
5 |
6 | package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
7 |
8 | Pod::Spec.new do |s|
9 | s.name = 'react-native-vector-icons-ionicons'
10 | s.version = package['version']
11 | s.summary = package['description']
12 | s.homepage = package['homepage']
13 | s.license = package['license']
14 | s.authors = package['author']
15 |
16 | s.platforms = { ios: min_ios_version_supported, tvos: '9.0', visionos: '1.0' }
17 | s.source = { git: package['repository']['url'], tag: "v#{s.version}" }
18 |
19 | s.resources = 'fonts/*.ttf'
20 | end
21 |
--------------------------------------------------------------------------------
/packages/ionicons/src/index.ts:
--------------------------------------------------------------------------------
1 | // NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | // If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | /**
5 | * This is a generated file. If you modify it manually, your changes will be lost!
6 | * Instead, modify the template in `generator-react-native-vector-icons`.
7 | *
8 | * Ionicons icon set component.
9 | * Usage:
10 | */
11 |
12 | import { createIconSet } from '@react-native-vector-icons/common';
13 | import glyphMap from '../glyphmaps/Ionicons.json';
14 |
15 | const Icon = createIconSet(glyphMap, {
16 | postScriptName: 'Ionicons',
17 | fontFileName: 'Ionicons.ttf',
18 | fontSource: require('../fonts/Ionicons.ttf'), // eslint-disable-line @typescript-eslint/no-require-imports, global-require
19 | });
20 |
21 | export default Icon;
22 |
--------------------------------------------------------------------------------
/packages/ionicons/tsconfig.build.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig",
3 | "exclude": ["example", "lib"]
4 | }
5 |
--------------------------------------------------------------------------------
/packages/ionicons/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "rootDir": ".",
4 | "allowUnreachableCode": false,
5 | "allowUnusedLabels": false,
6 | "esModuleInterop": true,
7 | "forceConsistentCasingInFileNames": true,
8 | "jsx": "react-jsx",
9 | "lib": ["ESNext"],
10 | "module": "ESNext",
11 | "moduleResolution": "Bundler",
12 | "noEmit": true,
13 | "noFallthroughCasesInSwitch": true,
14 | "noImplicitReturns": true,
15 | "noImplicitUseStrict": false,
16 | "noStrictGenericChecks": false,
17 | "noUncheckedIndexedAccess": true,
18 | "noUnusedLocals": true,
19 | "noUnusedParameters": true,
20 | "resolveJsonModule": true,
21 | "skipLibCheck": true,
22 | "strict": true,
23 | "target": "ESNext",
24 | "verbatimModuleSyntax": true
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/packages/lucide/.yo-rc.json:
--------------------------------------------------------------------------------
1 | {
2 | "generator-react-native-vector-icons": {
3 | "packageName": "lucide",
4 | "upstreamFont": "lucide-static",
5 | "buildSteps": {
6 | "glyphmap": {
7 | "location": "../../node_modules/lucide-static/font/lucide.css",
8 | "mode": "css",
9 | "prefix": ".icon-"
10 | },
11 | "copyFont": {
12 | "location": "../../node_modules/lucide-static/font/lucide.ttf",
13 | "cleanup": true
14 | }
15 | },
16 | "versions": [{ "rnvi": "12.0.0", "upstream": "0.473.0" }]
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/packages/lucide/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # 12.0.0 (2025-05-04)
2 |
3 | ### 🚀 Features
4 |
5 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
6 | - add lucide icon ([#1702](https://github.com/oblador/react-native-vector-icons/pull/1702))
7 |
8 | ### ⚠️ Breaking Changes
9 |
10 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
11 |
12 | ### ❤️ Thank You
13 |
14 | - Chanphirom Sok @chanphiromsok
15 | - John Ferlito @johnf
--------------------------------------------------------------------------------
/packages/lucide/README.md:
--------------------------------------------------------------------------------
1 | # React Native Vector Icons - Lucide
2 |
3 | Lucide font for React Native Vector Icons
4 |
5 | See the [React Native Vector Icons README](../../README.md) for more details.
6 |
7 | ## Installation
8 |
9 | ```sh
10 | npm install @react-native-vector-icons/lucide
11 | ```
12 |
13 | ## Usage
14 |
15 | ```js
16 | import Lucide from '@react-native-vector-icons/lucide';
17 |
18 | // ...
19 |
20 |
21 | ```
22 |
23 |
24 | ## Versions
25 |
26 | Prior to version 12, the version of this font package tracked the upstream version.
27 |
28 | The table below tracks which font version is included in each package version.
29 |
30 | | RNVI version | Upstream version |
31 | | ------------ | ---------------- |
32 | | <= 12.0.0 | 0.473.0 |
33 |
34 | ## Contributing
35 |
36 | See the [contributing guide](../../CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.
37 |
38 | ## License
39 |
40 | MIT
41 |
--------------------------------------------------------------------------------
/packages/lucide/android/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
--------------------------------------------------------------------------------
/packages/lucide/android/src/main/AndroidManifestNew.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/packages/lucide/android/src/main/java/VectorIconsLucidePackage.kt:
--------------------------------------------------------------------------------
1 | package com.reactnativevectoricons.lucide
2 |
3 | import com.facebook.react.TurboReactPackage
4 | import com.facebook.react.bridge.NativeModule
5 | import com.facebook.react.bridge.ReactApplicationContext
6 | import com.facebook.react.module.model.ReactModuleInfoProvider
7 |
8 | class VectorIconsLucidePackage : TurboReactPackage() {
9 | override fun getModule(
10 | name: String,
11 | reactContext: ReactApplicationContext,
12 | ): NativeModule? = null
13 |
14 | override fun getReactModuleInfoProvider(): ReactModuleInfoProvider =
15 | ReactModuleInfoProvider {
16 | mapOf()
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/packages/lucide/babel.config.js:
--------------------------------------------------------------------------------
1 | // NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | // If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | module.exports = {
5 | presets: [['module:react-native-builder-bob/babel-preset', { modules: 'commonjs' }]],
6 | };
7 |
--------------------------------------------------------------------------------
/packages/lucide/fonts/Lucide.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oblador/react-native-vector-icons/54ba7a29f90a008ebc668ae572587b746789fceb/packages/lucide/fonts/Lucide.ttf
--------------------------------------------------------------------------------
/packages/lucide/react-native-vector-icons-lucide.podspec:
--------------------------------------------------------------------------------
1 | # NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | # If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | require 'json'
5 |
6 | package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
7 |
8 | Pod::Spec.new do |s|
9 | s.name = 'react-native-vector-icons-lucide'
10 | s.version = package['version']
11 | s.summary = package['description']
12 | s.homepage = package['homepage']
13 | s.license = package['license']
14 | s.authors = package['author']
15 |
16 | s.platforms = { ios: min_ios_version_supported, tvos: '9.0', visionos: '1.0' }
17 | s.source = { git: package['repository']['url'], tag: "v#{s.version}" }
18 |
19 | s.resources = 'fonts/*.ttf'
20 | end
21 |
--------------------------------------------------------------------------------
/packages/lucide/src/index.ts:
--------------------------------------------------------------------------------
1 | // NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | // If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | /**
5 | * This is a generated file. If you modify it manually, your changes will be lost!
6 | * Instead, modify the template in `generator-react-native-vector-icons`.
7 | *
8 | * Lucide icon set component.
9 | * Usage:
10 | */
11 |
12 | import { createIconSet } from '@react-native-vector-icons/common';
13 | import glyphMap from '../glyphmaps/Lucide.json';
14 |
15 | const Icon = createIconSet(glyphMap, {
16 | postScriptName: 'Lucide',
17 | fontFileName: 'Lucide.ttf',
18 | fontSource: require('../fonts/Lucide.ttf'), // eslint-disable-line @typescript-eslint/no-require-imports, global-require
19 | });
20 |
21 | export default Icon;
22 |
--------------------------------------------------------------------------------
/packages/lucide/tsconfig.build.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig",
3 | "exclude": ["example", "lib"]
4 | }
5 |
--------------------------------------------------------------------------------
/packages/lucide/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "rootDir": ".",
4 | "allowUnreachableCode": false,
5 | "allowUnusedLabels": false,
6 | "esModuleInterop": true,
7 | "forceConsistentCasingInFileNames": true,
8 | "jsx": "react-jsx",
9 | "lib": ["ESNext"],
10 | "module": "ESNext",
11 | "moduleResolution": "Bundler",
12 | "noEmit": true,
13 | "noFallthroughCasesInSwitch": true,
14 | "noImplicitReturns": true,
15 | "noImplicitUseStrict": false,
16 | "noStrictGenericChecks": false,
17 | "noUncheckedIndexedAccess": true,
18 | "noUnusedLocals": true,
19 | "noUnusedParameters": true,
20 | "resolveJsonModule": true,
21 | "skipLibCheck": true,
22 | "strict": true,
23 | "target": "ESNext",
24 | "verbatimModuleSyntax": true
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/packages/material-design-icons/.yo-rc.json:
--------------------------------------------------------------------------------
1 | {
2 | "generator-react-native-vector-icons": {
3 | "packageName": "material-design-icons",
4 | "upstreamFont": "@mdi/font",
5 | "buildSteps": {
6 | "glyphmap": {
7 | "location": "../../node_modules/@mdi/font/css/materialdesignicons.css",
8 | "mode": "css",
9 | "prefix": ".mdi-"
10 | },
11 | "copyFont": {
12 | "location": "../../node_modules/@mdi/font/fonts/materialdesignicons-webfont.ttf"
13 | }
14 | },
15 | "versions": [{ "rnvi": "12.0.0", "upstream": "7.4.47" }]
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/packages/material-design-icons/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # 12.0.0 (2025-05-04)
2 |
3 | ### 🚀 Features
4 |
5 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
6 | - add lucide icon ([#1702](https://github.com/oblador/react-native-vector-icons/pull/1702))
7 |
8 | ### 🩹 Fixes
9 |
10 | - upgrade octicons to 19.14.0 ([#1691](https://github.com/oblador/react-native-vector-icons/pull/1691))
11 | - upgrade fontawesome6 to 6.7.2 ([#1690](https://github.com/oblador/react-native-vector-icons/pull/1690))
12 | - mac osx detection in glyphmap script ([2967ce99](https://github.com/oblador/react-native-vector-icons/commit/2967ce99))
13 |
14 | ### ⚠️ Breaking Changes
15 |
16 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
17 |
18 | ### ❤️ Thank You
19 |
20 | - Chanphirom Sok @chanphiromsok
21 | - John Ferlito @johnf
--------------------------------------------------------------------------------
/packages/material-design-icons/README.md:
--------------------------------------------------------------------------------
1 | # React Native Vector Icons - Material Design Icons
2 |
3 | Material Design Icons font for React Native Vector Icons
4 |
5 | See the [React Native Vector Icons README](../../README.md) for more details.
6 |
7 | ## Installation
8 |
9 | ```sh
10 | npm install @react-native-vector-icons/material-design-icons
11 | ```
12 |
13 | ## Usage
14 |
15 | ```js
16 | import MaterialDesignIcons from '@react-native-vector-icons/material-design-icons';
17 |
18 | // ...
19 |
20 |
21 | ```
22 |
23 |
24 | ## Versions
25 |
26 | Prior to version 12, the version of this font package tracked the upstream version.
27 |
28 | The table below tracks which font version is included in each package version.
29 |
30 | | RNVI version | Upstream version |
31 | | ------------ | ---------------- |
32 | | <= 12.0.0 | 7.4.47 |
33 |
34 | ## Contributing
35 |
36 | See the [contributing guide](../../CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.
37 |
38 | ## License
39 |
40 | MIT
41 |
--------------------------------------------------------------------------------
/packages/material-design-icons/android/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
--------------------------------------------------------------------------------
/packages/material-design-icons/android/src/main/AndroidManifestNew.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/packages/material-design-icons/android/src/main/java/VectorIconsMaterialDesignIconsPackage.kt:
--------------------------------------------------------------------------------
1 | package com.reactnativevectoricons.material_design_icons
2 |
3 | import com.facebook.react.TurboReactPackage
4 | import com.facebook.react.bridge.NativeModule
5 | import com.facebook.react.bridge.ReactApplicationContext
6 | import com.facebook.react.module.model.ReactModuleInfoProvider
7 |
8 | class VectorIconsMaterialDesignIconsPackage : TurboReactPackage() {
9 | override fun getModule(
10 | name: String,
11 | reactContext: ReactApplicationContext,
12 | ): NativeModule? = null
13 |
14 | override fun getReactModuleInfoProvider(): ReactModuleInfoProvider =
15 | ReactModuleInfoProvider {
16 | mapOf()
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/packages/material-design-icons/babel.config.js:
--------------------------------------------------------------------------------
1 | // NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | // If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | module.exports = {
5 | presets: [['module:react-native-builder-bob/babel-preset', { modules: 'commonjs' }]],
6 | };
7 |
--------------------------------------------------------------------------------
/packages/material-design-icons/fonts/MaterialDesignIcons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oblador/react-native-vector-icons/54ba7a29f90a008ebc668ae572587b746789fceb/packages/material-design-icons/fonts/MaterialDesignIcons.ttf
--------------------------------------------------------------------------------
/packages/material-design-icons/react-native-vector-icons-material-design-icons.podspec:
--------------------------------------------------------------------------------
1 | # NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | # If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | require 'json'
5 |
6 | package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
7 |
8 | Pod::Spec.new do |s|
9 | s.name = 'react-native-vector-icons-material-design-icons'
10 | s.version = package['version']
11 | s.summary = package['description']
12 | s.homepage = package['homepage']
13 | s.license = package['license']
14 | s.authors = package['author']
15 |
16 | s.platforms = { ios: min_ios_version_supported, tvos: '9.0', visionos: '1.0' }
17 | s.source = { git: package['repository']['url'], tag: "v#{s.version}" }
18 |
19 | s.resources = 'fonts/*.ttf'
20 | end
21 |
--------------------------------------------------------------------------------
/packages/material-design-icons/src/index.ts:
--------------------------------------------------------------------------------
1 | // NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | // If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | /**
5 | * This is a generated file. If you modify it manually, your changes will be lost!
6 | * Instead, modify the template in `generator-react-native-vector-icons`.
7 | *
8 | * MaterialDesignIcons icon set component.
9 | * Usage:
10 | */
11 |
12 | import { createIconSet } from '@react-native-vector-icons/common';
13 | import glyphMap from '../glyphmaps/MaterialDesignIcons.json';
14 |
15 | const Icon = createIconSet(glyphMap, {
16 | postScriptName: 'MaterialDesignIcons',
17 | fontFileName: 'MaterialDesignIcons.ttf',
18 | fontSource: require('../fonts/MaterialDesignIcons.ttf'), // eslint-disable-line @typescript-eslint/no-require-imports, global-require
19 | });
20 |
21 | export default Icon;
22 |
--------------------------------------------------------------------------------
/packages/material-design-icons/tsconfig.build.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig",
3 | "exclude": ["example", "lib"]
4 | }
5 |
--------------------------------------------------------------------------------
/packages/material-design-icons/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "rootDir": ".",
4 | "allowUnreachableCode": false,
5 | "allowUnusedLabels": false,
6 | "esModuleInterop": true,
7 | "forceConsistentCasingInFileNames": true,
8 | "jsx": "react-jsx",
9 | "lib": ["ESNext"],
10 | "module": "ESNext",
11 | "moduleResolution": "Bundler",
12 | "noEmit": true,
13 | "noFallthroughCasesInSwitch": true,
14 | "noImplicitReturns": true,
15 | "noImplicitUseStrict": false,
16 | "noStrictGenericChecks": false,
17 | "noUncheckedIndexedAccess": true,
18 | "noUnusedLocals": true,
19 | "noUnusedParameters": true,
20 | "resolveJsonModule": true,
21 | "skipLibCheck": true,
22 | "strict": true,
23 | "target": "ESNext",
24 | "verbatimModuleSyntax": true
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/packages/material-icons/.yo-rc.json:
--------------------------------------------------------------------------------
1 | {
2 | "generator-react-native-vector-icons": {
3 | "packageName": "material-icons",
4 | "postScriptName": "MaterialIcons-Regular",
5 | "buildSteps": {
6 | "preScript": {
7 | "script": "mkdir -p fonts\nREF='f7bd4f25f3764883717c09a1fd867f560c9a9581' # Sep 19, 2022 update\ncurl https://raw.githubusercontent.com/google/material-design-icons/$REF/font/MaterialIcons-Regular.codepoints -Ls > MaterialIcons-Regular.codepoints\ncurl https://raw.githubusercontent.com/google/material-design-icons/$REF/font/MaterialIcons-Regular.ttf -Ls > fonts/MaterialIcons.ttf"
8 | },
9 | "glyphmap": {
10 | "location": "MaterialIcons-Regular.codepoints",
11 | "mode": "codepoints",
12 | "prefix": ".mdi-",
13 | "cleanup": true
14 | }
15 | },
16 | "versions": [{ "rnvi": "12.0.0", "upstream": "0.0.1" }]
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/packages/material-icons/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # 12.0.0 (2025-05-04)
2 |
3 | ### 🚀 Features
4 |
5 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
6 | - add lucide icon ([#1702](https://github.com/oblador/react-native-vector-icons/pull/1702))
7 |
8 | ### 🩹 Fixes
9 |
10 | - upgrade octicons to 19.14.0 ([#1691](https://github.com/oblador/react-native-vector-icons/pull/1691))
11 | - upgrade fontawesome6 to 6.7.2 ([#1690](https://github.com/oblador/react-native-vector-icons/pull/1690))
12 | - mac osx detection in glyphmap script ([2967ce99](https://github.com/oblador/react-native-vector-icons/commit/2967ce99))
13 |
14 | ### ⚠️ Breaking Changes
15 |
16 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
17 |
18 | ### ❤️ Thank You
19 |
20 | - Chanphirom Sok @chanphiromsok
21 | - John Ferlito @johnf
--------------------------------------------------------------------------------
/packages/material-icons/README.md:
--------------------------------------------------------------------------------
1 | # React Native Vector Icons - Material Icons
2 |
3 | Material Icons font for React Native Vector Icons
4 |
5 | See the [React Native Vector Icons README](../../README.md) for more details.
6 |
7 | ## Installation
8 |
9 | ```sh
10 | npm install @react-native-vector-icons/material-icons
11 | ```
12 |
13 | ## Usage
14 |
15 | ```js
16 | import MaterialIcons from '@react-native-vector-icons/material-icons';
17 |
18 | // ...
19 |
20 |
21 | ```
22 |
23 |
24 | ## Versions
25 |
26 | Prior to version 12, the version of this font package tracked the upstream version.
27 |
28 | The table below tracks which font version is included in each package version.
29 |
30 | | RNVI version | Upstream version |
31 | | ------------ | ---------------- |
32 | | <= 12.0.0 | 0.0.1 |
33 |
34 | ## Contributing
35 |
36 | See the [contributing guide](../../CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.
37 |
38 | ## License
39 |
40 | MIT
41 |
--------------------------------------------------------------------------------
/packages/material-icons/android/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
--------------------------------------------------------------------------------
/packages/material-icons/android/src/main/AndroidManifestNew.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/packages/material-icons/android/src/main/java/VectorIconsMaterialIconsPackage.kt:
--------------------------------------------------------------------------------
1 | package com.reactnativevectoricons.material_icons
2 |
3 | import com.facebook.react.TurboReactPackage
4 | import com.facebook.react.bridge.NativeModule
5 | import com.facebook.react.bridge.ReactApplicationContext
6 | import com.facebook.react.module.model.ReactModuleInfoProvider
7 |
8 | class VectorIconsMaterialIconsPackage : TurboReactPackage() {
9 | override fun getModule(
10 | name: String,
11 | reactContext: ReactApplicationContext,
12 | ): NativeModule? = null
13 |
14 | override fun getReactModuleInfoProvider(): ReactModuleInfoProvider =
15 | ReactModuleInfoProvider {
16 | mapOf()
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/packages/material-icons/babel.config.js:
--------------------------------------------------------------------------------
1 | // NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | // If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | module.exports = {
5 | presets: [['module:react-native-builder-bob/babel-preset', { modules: 'commonjs' }]],
6 | };
7 |
--------------------------------------------------------------------------------
/packages/material-icons/fonts/MaterialIcons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oblador/react-native-vector-icons/54ba7a29f90a008ebc668ae572587b746789fceb/packages/material-icons/fonts/MaterialIcons.ttf
--------------------------------------------------------------------------------
/packages/material-icons/react-native-vector-icons-material-icons.podspec:
--------------------------------------------------------------------------------
1 | # NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | # If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | require 'json'
5 |
6 | package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
7 |
8 | Pod::Spec.new do |s|
9 | s.name = 'react-native-vector-icons-material-icons'
10 | s.version = package['version']
11 | s.summary = package['description']
12 | s.homepage = package['homepage']
13 | s.license = package['license']
14 | s.authors = package['author']
15 |
16 | s.platforms = { ios: min_ios_version_supported, tvos: '9.0', visionos: '1.0' }
17 | s.source = { git: package['repository']['url'], tag: "v#{s.version}" }
18 |
19 | s.resources = 'fonts/*.ttf'
20 | end
21 |
--------------------------------------------------------------------------------
/packages/material-icons/src/index.ts:
--------------------------------------------------------------------------------
1 | // NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | // If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | /**
5 | * This is a generated file. If you modify it manually, your changes will be lost!
6 | * Instead, modify the template in `generator-react-native-vector-icons`.
7 | *
8 | * MaterialIcons icon set component.
9 | * Usage:
10 | */
11 |
12 | import { createIconSet } from '@react-native-vector-icons/common';
13 | import glyphMap from '../glyphmaps/MaterialIcons.json';
14 |
15 | const Icon = createIconSet(glyphMap, {
16 | postScriptName: 'MaterialIcons-Regular',
17 | fontFileName: 'MaterialIcons.ttf',
18 | fontSource: require('../fonts/MaterialIcons.ttf'), // eslint-disable-line @typescript-eslint/no-require-imports, global-require
19 | });
20 |
21 | export default Icon;
22 |
--------------------------------------------------------------------------------
/packages/material-icons/tsconfig.build.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig",
3 | "exclude": ["example", "lib"]
4 | }
5 |
--------------------------------------------------------------------------------
/packages/material-icons/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "rootDir": ".",
4 | "allowUnreachableCode": false,
5 | "allowUnusedLabels": false,
6 | "esModuleInterop": true,
7 | "forceConsistentCasingInFileNames": true,
8 | "jsx": "react-jsx",
9 | "lib": ["ESNext"],
10 | "module": "ESNext",
11 | "moduleResolution": "Bundler",
12 | "noEmit": true,
13 | "noFallthroughCasesInSwitch": true,
14 | "noImplicitReturns": true,
15 | "noImplicitUseStrict": false,
16 | "noStrictGenericChecks": false,
17 | "noUncheckedIndexedAccess": true,
18 | "noUnusedLocals": true,
19 | "noUnusedParameters": true,
20 | "resolveJsonModule": true,
21 | "skipLibCheck": true,
22 | "strict": true,
23 | "target": "ESNext",
24 | "verbatimModuleSyntax": true
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/packages/octicons/.yo-rc.json:
--------------------------------------------------------------------------------
1 | {
2 | "generator-react-native-vector-icons": {
3 | "packageName": "octicons",
4 | "upstreamFont": "@primer/octicons",
5 | "buildSteps": {
6 | "renameSVGs": {
7 | "location": "../../node_modules/@primer/octicons/build/svg",
8 | "keepPostfix": "-16"
9 | },
10 | "fontCustom": {
11 | "location": "renamedSVGs",
12 | "cleanup": true
13 | },
14 | "glyphmap": {
15 | "mode": "css",
16 | "cleanup": true
17 | }
18 | },
19 | "versions": [{ "rnvi": "12.0.0", "upstream": "9.15.0" }]
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/packages/octicons/README.md:
--------------------------------------------------------------------------------
1 | # React Native Vector Icons - Octicons
2 |
3 | Octicons font for React Native Vector Icons
4 |
5 | See the [React Native Vector Icons README](../../README.md) for more details.
6 |
7 | ## Installation
8 |
9 | ```sh
10 | npm install @react-native-vector-icons/octicons
11 | ```
12 |
13 | ## Usage
14 |
15 | ```js
16 | import Octicons from '@react-native-vector-icons/octicons';
17 |
18 | // ...
19 |
20 |
21 | ```
22 |
23 |
24 | ## Versions
25 |
26 | Prior to version 12, the version of this font package tracked the upstream version.
27 |
28 | The table below tracks which font version is included in each package version.
29 |
30 | | RNVI version | Upstream version |
31 | | ------------ | ---------------- |
32 | | <= 12.0.0 | 9.15.0 |
33 |
34 | ## Contributing
35 |
36 | See the [contributing guide](../../CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.
37 |
38 | ## License
39 |
40 | MIT
41 |
--------------------------------------------------------------------------------
/packages/octicons/android/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
--------------------------------------------------------------------------------
/packages/octicons/android/src/main/AndroidManifestNew.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/packages/octicons/android/src/main/java/VectorIconsOcticonsPackage.kt:
--------------------------------------------------------------------------------
1 | package com.reactnativevectoricons.octicons
2 |
3 | import com.facebook.react.TurboReactPackage
4 | import com.facebook.react.bridge.NativeModule
5 | import com.facebook.react.bridge.ReactApplicationContext
6 | import com.facebook.react.module.model.ReactModuleInfoProvider
7 |
8 | class VectorIconsOcticonsPackage : TurboReactPackage() {
9 | override fun getModule(
10 | name: String,
11 | reactContext: ReactApplicationContext,
12 | ): NativeModule? = null
13 |
14 | override fun getReactModuleInfoProvider(): ReactModuleInfoProvider =
15 | ReactModuleInfoProvider {
16 | mapOf()
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/packages/octicons/babel.config.js:
--------------------------------------------------------------------------------
1 | // NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | // If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | module.exports = {
5 | presets: [['module:react-native-builder-bob/babel-preset', { modules: 'commonjs' }]],
6 | };
7 |
--------------------------------------------------------------------------------
/packages/octicons/fonts/Octicons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oblador/react-native-vector-icons/54ba7a29f90a008ebc668ae572587b746789fceb/packages/octicons/fonts/Octicons.ttf
--------------------------------------------------------------------------------
/packages/octicons/react-native-vector-icons-octicons.podspec:
--------------------------------------------------------------------------------
1 | # NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | # If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | require 'json'
5 |
6 | package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
7 |
8 | Pod::Spec.new do |s|
9 | s.name = 'react-native-vector-icons-octicons'
10 | s.version = package['version']
11 | s.summary = package['description']
12 | s.homepage = package['homepage']
13 | s.license = package['license']
14 | s.authors = package['author']
15 |
16 | s.platforms = { ios: min_ios_version_supported, tvos: '9.0', visionos: '1.0' }
17 | s.source = { git: package['repository']['url'], tag: "v#{s.version}" }
18 |
19 | s.resources = 'fonts/*.ttf'
20 | end
21 |
--------------------------------------------------------------------------------
/packages/octicons/src/index.ts:
--------------------------------------------------------------------------------
1 | // NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | // If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | /**
5 | * This is a generated file. If you modify it manually, your changes will be lost!
6 | * Instead, modify the template in `generator-react-native-vector-icons`.
7 | *
8 | * Octicons icon set component.
9 | * Usage:
10 | */
11 |
12 | import { createIconSet } from '@react-native-vector-icons/common';
13 | import glyphMap from '../glyphmaps/Octicons.json';
14 |
15 | const Icon = createIconSet(glyphMap, {
16 | postScriptName: 'Octicons',
17 | fontFileName: 'Octicons.ttf',
18 | fontSource: require('../fonts/Octicons.ttf'), // eslint-disable-line @typescript-eslint/no-require-imports, global-require
19 | });
20 |
21 | export default Icon;
22 |
--------------------------------------------------------------------------------
/packages/octicons/tsconfig.build.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig",
3 | "exclude": ["example", "lib"]
4 | }
5 |
--------------------------------------------------------------------------------
/packages/octicons/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "rootDir": ".",
4 | "allowUnreachableCode": false,
5 | "allowUnusedLabels": false,
6 | "esModuleInterop": true,
7 | "forceConsistentCasingInFileNames": true,
8 | "jsx": "react-jsx",
9 | "lib": ["ESNext"],
10 | "module": "ESNext",
11 | "moduleResolution": "Bundler",
12 | "noEmit": true,
13 | "noFallthroughCasesInSwitch": true,
14 | "noImplicitReturns": true,
15 | "noImplicitUseStrict": false,
16 | "noStrictGenericChecks": false,
17 | "noUncheckedIndexedAccess": true,
18 | "noUnusedLocals": true,
19 | "noUnusedParameters": true,
20 | "resolveJsonModule": true,
21 | "skipLibCheck": true,
22 | "strict": true,
23 | "target": "ESNext",
24 | "verbatimModuleSyntax": true
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/packages/simple-line-icons/.yo-rc.json:
--------------------------------------------------------------------------------
1 | {
2 | "generator-react-native-vector-icons": {
3 | "packageName": "simple-line-icons",
4 | "postScriptName": "simple-line-icons",
5 | "upstreamFont": "simple-line-icons",
6 | "buildSteps": {
7 | "glyphmap": {
8 | "location": "../../node_modules/simple-line-icons/css/simple-line-icons.css",
9 | "mode": "css"
10 | },
11 | "copyFont": {
12 | "location": "../../node_modules/simple-line-icons/fonts/Simple-Line-Icons.ttf"
13 | }
14 | },
15 | "versions": [{ "rnvi": "12.0.0", "upstream": "2.5.5" }]
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/packages/simple-line-icons/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # 12.0.0 (2025-05-04)
2 |
3 | ### 🚀 Features
4 |
5 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
6 | - add lucide icon ([#1702](https://github.com/oblador/react-native-vector-icons/pull/1702))
7 |
8 | ### 🩹 Fixes
9 |
10 | - upgrade octicons to 19.14.0 ([#1691](https://github.com/oblador/react-native-vector-icons/pull/1691))
11 | - upgrade fontawesome6 to 6.7.2 ([#1690](https://github.com/oblador/react-native-vector-icons/pull/1690))
12 | - mac osx detection in glyphmap script ([2967ce99](https://github.com/oblador/react-native-vector-icons/commit/2967ce99))
13 |
14 | ### ⚠️ Breaking Changes
15 |
16 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
17 |
18 | ### ❤️ Thank You
19 |
20 | - Chanphirom Sok @chanphiromsok
21 | - John Ferlito @johnf
--------------------------------------------------------------------------------
/packages/simple-line-icons/README.md:
--------------------------------------------------------------------------------
1 | # React Native Vector Icons - Simple Line Icons
2 |
3 | Simple Line Icons font for React Native Vector Icons
4 |
5 | See the [React Native Vector Icons README](../../README.md) for more details.
6 |
7 | ## Installation
8 |
9 | ```sh
10 | npm install @react-native-vector-icons/simple-line-icons
11 | ```
12 |
13 | ## Usage
14 |
15 | ```js
16 | import SimpleLineIcons from '@react-native-vector-icons/simple-line-icons';
17 |
18 | // ...
19 |
20 |
21 | ```
22 |
23 |
24 | ## Versions
25 |
26 | Prior to version 12, the version of this font package tracked the upstream version.
27 |
28 | The table below tracks which font version is included in each package version.
29 |
30 | | RNVI version | Upstream version |
31 | | ------------ | ---------------- |
32 | | <= 12.0.0 | 2.5.5 |
33 |
34 | ## Contributing
35 |
36 | See the [contributing guide](../../CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.
37 |
38 | ## License
39 |
40 | MIT
41 |
--------------------------------------------------------------------------------
/packages/simple-line-icons/android/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
--------------------------------------------------------------------------------
/packages/simple-line-icons/android/src/main/AndroidManifestNew.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/packages/simple-line-icons/android/src/main/java/VectorIconsSimpleLineIconsPackage.kt:
--------------------------------------------------------------------------------
1 | package com.reactnativevectoricons.simple_line_icons
2 |
3 | import com.facebook.react.TurboReactPackage
4 | import com.facebook.react.bridge.NativeModule
5 | import com.facebook.react.bridge.ReactApplicationContext
6 | import com.facebook.react.module.model.ReactModuleInfoProvider
7 |
8 | class VectorIconsSimpleLineIconsPackage : TurboReactPackage() {
9 | override fun getModule(
10 | name: String,
11 | reactContext: ReactApplicationContext,
12 | ): NativeModule? = null
13 |
14 | override fun getReactModuleInfoProvider(): ReactModuleInfoProvider =
15 | ReactModuleInfoProvider {
16 | mapOf()
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/packages/simple-line-icons/babel.config.js:
--------------------------------------------------------------------------------
1 | // NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | // If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | module.exports = {
5 | presets: [['module:react-native-builder-bob/babel-preset', { modules: 'commonjs' }]],
6 | };
7 |
--------------------------------------------------------------------------------
/packages/simple-line-icons/fonts/SimpleLineIcons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oblador/react-native-vector-icons/54ba7a29f90a008ebc668ae572587b746789fceb/packages/simple-line-icons/fonts/SimpleLineIcons.ttf
--------------------------------------------------------------------------------
/packages/simple-line-icons/react-native-vector-icons-simple-line-icons.podspec:
--------------------------------------------------------------------------------
1 | # NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | # If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | require 'json'
5 |
6 | package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
7 |
8 | Pod::Spec.new do |s|
9 | s.name = 'react-native-vector-icons-simple-line-icons'
10 | s.version = package['version']
11 | s.summary = package['description']
12 | s.homepage = package['homepage']
13 | s.license = package['license']
14 | s.authors = package['author']
15 |
16 | s.platforms = { ios: min_ios_version_supported, tvos: '9.0', visionos: '1.0' }
17 | s.source = { git: package['repository']['url'], tag: "v#{s.version}" }
18 |
19 | s.resources = 'fonts/*.ttf'
20 | end
21 |
--------------------------------------------------------------------------------
/packages/simple-line-icons/src/index.ts:
--------------------------------------------------------------------------------
1 | // NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | // If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | /**
5 | * This is a generated file. If you modify it manually, your changes will be lost!
6 | * Instead, modify the template in `generator-react-native-vector-icons`.
7 | *
8 | * SimpleLineIcons icon set component.
9 | * Usage:
10 | */
11 |
12 | import { createIconSet } from '@react-native-vector-icons/common';
13 | import glyphMap from '../glyphmaps/SimpleLineIcons.json';
14 |
15 | const Icon = createIconSet(glyphMap, {
16 | postScriptName: 'simple-line-icons',
17 | fontFileName: 'SimpleLineIcons.ttf',
18 | fontSource: require('../fonts/SimpleLineIcons.ttf'), // eslint-disable-line @typescript-eslint/no-require-imports, global-require
19 | });
20 |
21 | export default Icon;
22 |
--------------------------------------------------------------------------------
/packages/simple-line-icons/tsconfig.build.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig",
3 | "exclude": ["example", "lib"]
4 | }
5 |
--------------------------------------------------------------------------------
/packages/simple-line-icons/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "rootDir": ".",
4 | "allowUnreachableCode": false,
5 | "allowUnusedLabels": false,
6 | "esModuleInterop": true,
7 | "forceConsistentCasingInFileNames": true,
8 | "jsx": "react-jsx",
9 | "lib": ["ESNext"],
10 | "module": "ESNext",
11 | "moduleResolution": "Bundler",
12 | "noEmit": true,
13 | "noFallthroughCasesInSwitch": true,
14 | "noImplicitReturns": true,
15 | "noImplicitUseStrict": false,
16 | "noStrictGenericChecks": false,
17 | "noUncheckedIndexedAccess": true,
18 | "noUnusedLocals": true,
19 | "noUnusedParameters": true,
20 | "resolveJsonModule": true,
21 | "skipLibCheck": true,
22 | "strict": true,
23 | "target": "ESNext",
24 | "verbatimModuleSyntax": true
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/packages/zocial/.yo-rc.json:
--------------------------------------------------------------------------------
1 | {
2 | "generator-react-native-vector-icons": {
3 | "packageName": "zocial",
4 | "postScriptName": "zocial",
5 | "upstreamFont": "css-social-buttons",
6 | "buildSteps": {
7 | "glyphmap": {
8 | "location": "../../node_modules/css-social-buttons/css/zocial.css",
9 | "mode": "css",
10 | "prefix": ".zocial."
11 | },
12 | "copyFont": {
13 | "location": "../../node_modules/css-social-buttons/css/zocial.ttf"
14 | }
15 | },
16 | "versions": [{ "rnvi": "12.0.0", "upstream": "1.1.1" }]
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/packages/zocial/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # 12.0.0 (2025-05-04)
2 |
3 | ### 🚀 Features
4 |
5 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
6 | - add lucide icon ([#1702](https://github.com/oblador/react-native-vector-icons/pull/1702))
7 |
8 | ### 🩹 Fixes
9 |
10 | - upgrade octicons to 19.14.0 ([#1691](https://github.com/oblador/react-native-vector-icons/pull/1691))
11 | - upgrade fontawesome6 to 6.7.2 ([#1690](https://github.com/oblador/react-native-vector-icons/pull/1690))
12 | - mac osx detection in glyphmap script ([2967ce99](https://github.com/oblador/react-native-vector-icons/commit/2967ce99))
13 |
14 | ### ⚠️ Breaking Changes
15 |
16 | - ⚠️ make font packages responsible for font copying ([#1711](https://github.com/oblador/react-native-vector-icons/pull/1711))
17 |
18 | ### ❤️ Thank You
19 |
20 | - Chanphirom Sok @chanphiromsok
21 | - John Ferlito @johnf
--------------------------------------------------------------------------------
/packages/zocial/README.md:
--------------------------------------------------------------------------------
1 | # React Native Vector Icons - Zocial
2 |
3 | Zocial font for React Native Vector Icons
4 |
5 | See the [React Native Vector Icons README](../../README.md) for more details.
6 |
7 | ## Installation
8 |
9 | ```sh
10 | npm install @react-native-vector-icons/zocial
11 | ```
12 |
13 | ## Usage
14 |
15 | ```js
16 | import Zocial from '@react-native-vector-icons/zocial';
17 |
18 | // ...
19 |
20 |
21 | ```
22 |
23 |
24 | ## Versions
25 |
26 | Prior to version 12, the version of this font package tracked the upstream version.
27 |
28 | The table below tracks which font version is included in each package version.
29 |
30 | | RNVI version | Upstream version |
31 | | ------------ | ---------------- |
32 | | <= 12.0.0 | 1.1.1 |
33 |
34 | ## Contributing
35 |
36 | See the [contributing guide](../../CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.
37 |
38 | ## License
39 |
40 | MIT
41 |
--------------------------------------------------------------------------------
/packages/zocial/android/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
--------------------------------------------------------------------------------
/packages/zocial/android/src/main/AndroidManifestNew.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/packages/zocial/android/src/main/java/VectorIconsZocialPackage.kt:
--------------------------------------------------------------------------------
1 | package com.reactnativevectoricons.zocial
2 |
3 | import com.facebook.react.TurboReactPackage
4 | import com.facebook.react.bridge.NativeModule
5 | import com.facebook.react.bridge.ReactApplicationContext
6 | import com.facebook.react.module.model.ReactModuleInfoProvider
7 |
8 | class VectorIconsZocialPackage : TurboReactPackage() {
9 | override fun getModule(
10 | name: String,
11 | reactContext: ReactApplicationContext,
12 | ): NativeModule? = null
13 |
14 | override fun getReactModuleInfoProvider(): ReactModuleInfoProvider =
15 | ReactModuleInfoProvider {
16 | mapOf()
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/packages/zocial/babel.config.js:
--------------------------------------------------------------------------------
1 | // NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | // If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | module.exports = {
5 | presets: [['module:react-native-builder-bob/babel-preset', { modules: 'commonjs' }]],
6 | };
7 |
--------------------------------------------------------------------------------
/packages/zocial/fonts/Zocial.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oblador/react-native-vector-icons/54ba7a29f90a008ebc668ae572587b746789fceb/packages/zocial/fonts/Zocial.ttf
--------------------------------------------------------------------------------
/packages/zocial/react-native-vector-icons-zocial.podspec:
--------------------------------------------------------------------------------
1 | # NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | # If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | require 'json'
5 |
6 | package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
7 |
8 | Pod::Spec.new do |s|
9 | s.name = 'react-native-vector-icons-zocial'
10 | s.version = package['version']
11 | s.summary = package['description']
12 | s.homepage = package['homepage']
13 | s.license = package['license']
14 | s.authors = package['author']
15 |
16 | s.platforms = { ios: min_ios_version_supported, tvos: '9.0', visionos: '1.0' }
17 | s.source = { git: package['repository']['url'], tag: "v#{s.version}" }
18 |
19 | s.resources = 'fonts/*.ttf'
20 | end
21 |
--------------------------------------------------------------------------------
/packages/zocial/src/index.ts:
--------------------------------------------------------------------------------
1 | // NOTE:This file was generated from packages/generator-react-native-vector-icons/src/app/templates
2 | // If you're contributing to react-native-vector-icons, make the change there, otherwise it'll be lost
3 |
4 | /**
5 | * This is a generated file. If you modify it manually, your changes will be lost!
6 | * Instead, modify the template in `generator-react-native-vector-icons`.
7 | *
8 | * Zocial icon set component.
9 | * Usage:
10 | */
11 |
12 | import { createIconSet } from '@react-native-vector-icons/common';
13 | import glyphMap from '../glyphmaps/Zocial.json';
14 |
15 | const Icon = createIconSet(glyphMap, {
16 | postScriptName: 'zocial',
17 | fontFileName: 'Zocial.ttf',
18 | fontSource: require('../fonts/Zocial.ttf'), // eslint-disable-line @typescript-eslint/no-require-imports, global-require
19 | });
20 |
21 | export default Icon;
22 |
--------------------------------------------------------------------------------
/packages/zocial/tsconfig.build.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig",
3 | "exclude": ["example", "lib"]
4 | }
5 |
--------------------------------------------------------------------------------
/packages/zocial/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "rootDir": ".",
4 | "allowUnreachableCode": false,
5 | "allowUnusedLabels": false,
6 | "esModuleInterop": true,
7 | "forceConsistentCasingInFileNames": true,
8 | "jsx": "react-jsx",
9 | "lib": ["ESNext"],
10 | "module": "ESNext",
11 | "moduleResolution": "Bundler",
12 | "noEmit": true,
13 | "noFallthroughCasesInSwitch": true,
14 | "noImplicitReturns": true,
15 | "noImplicitUseStrict": false,
16 | "noStrictGenericChecks": false,
17 | "noUncheckedIndexedAccess": true,
18 | "noUnusedLocals": true,
19 | "noUnusedParameters": true,
20 | "resolveJsonModule": true,
21 | "skipLibCheck": true,
22 | "strict": true,
23 | "target": "ESNext",
24 | "verbatimModuleSyntax": true
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/pnpm-workspace.yaml:
--------------------------------------------------------------------------------
1 | packages:
2 | - packages/*
3 |
--------------------------------------------------------------------------------
/scripts/fix-glyphmaps.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | # builder-bob doesn't support including something frmo the top level so we need to fix the paths
4 |
5 | set -e
6 |
7 | if [ "$(uname)" == "Darwin" ]; then
8 | ISED='sed -i ""'
9 | else # $OSTYPE == linux64
10 | ISED='sed -i'
11 | fi
12 |
13 | $ISED 's/..\/glyphmaps/..\/..\/glyphmaps/' lib/commonjs/index.js
14 | $ISED 's/..\/fonts/..\/..\/fonts/' lib/commonjs/index.js
15 | $ISED 's/..\/glyphmaps/..\/..\/glyphmaps/' lib/module/index.js
16 | $ISED 's/..\/fonts/..\/..\/fonts/' lib/module/index.js
17 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "rootDir": ".",
4 | "paths": {
5 | "react-native-vector-icons": [
6 | "./src/index"
7 | ]
8 | },
9 | "allowUnreachableCode": false,
10 | "allowUnusedLabels": false,
11 | "esModuleInterop": true,
12 | "forceConsistentCasingInFileNames": true,
13 | "jsx": "react-jsx",
14 | "lib": [
15 | "ESNext"
16 | ],
17 | "module": "ESNext",
18 | "moduleResolution": "Bundler",
19 | "noEmit": true,
20 | "noFallthroughCasesInSwitch": true,
21 | "noImplicitReturns": true,
22 | "noImplicitUseStrict": false,
23 | "noStrictGenericChecks": false,
24 | "noUncheckedIndexedAccess": true,
25 | "noUnusedLocals": true,
26 | "noUnusedParameters": true,
27 | "resolveJsonModule": true,
28 | "skipLibCheck": true,
29 | "strict": true,
30 | "target": "ESNext",
31 | "verbatimModuleSyntax": true
32 | }
33 | }
34 |
--------------------------------------------------------------------------------