├── .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 | --------------------------------------------------------------------------------