diff --git a/brand-stopwords.json b/brand-stopwords.json
index be5cb329a..77c9ae265 100644
--- a/brand-stopwords.json
+++ b/brand-stopwords.json
@@ -2,6 +2,7 @@
"adobe": "Adobe",
"airplay": "AirPlay",
"amazon": "Amazon",
+ "android": "Android",
"angular": "Angular",
"aws": "AWS",
"azure": "Azure",
diff --git a/docs/.vitepress/theme/components/base/ColorPicker.vue b/docs/.vitepress/theme/components/base/ColorPicker.vue
index 6ba8b230e..7a7e1b874 100644
--- a/docs/.vitepress/theme/components/base/ColorPicker.vue
+++ b/docs/.vitepress/theme/components/base/ColorPicker.vue
@@ -70,7 +70,7 @@ const value = computed({
color: var(--vp-c-text-2);
padding: 3px 8px 3px 3px;
height: auto;
- font-size: 14px;
+ font-size: 13px;
text-align: left;
border: 1px solid transparent;
cursor: text;
@@ -90,7 +90,7 @@ const value = computed({
border: none;
background: transparent;
color: var(--vp-c-text-1);
- font-size: 14px;
+ font-size: 13px;
text-align: left;
border-radius: 8px;
cursor: text;
diff --git a/docs/guide/packages/lucide-react-native.md b/docs/guide/packages/lucide-react-native.md
index b7208292d..8056524c0 100644
--- a/docs/guide/packages/lucide-react-native.md
+++ b/docs/guide/packages/lucide-react-native.md
@@ -102,10 +102,16 @@ The example below imports all ES Modules, so exercise caution when using it. Imp
### Icon Component Example
-```jsx
-import { icons } from 'lucide-react-native';
+```tsx
+import * as icons from 'lucide-react-native/icons';
-const Icon = ({ name, color, size }) => {
+interface IconProps {
+ name: keyof typeof icons;
+ color?: string;
+ size?: number;
+}
+
+const Icon = ({ name, color, size }: IconProps) => {
const LucideIcon = icons[name];
return ;
@@ -116,11 +122,11 @@ export default Icon;
#### Using the Icon Component
-```jsx
+```tsx
import Icon from './Icon';
const App = () => {
- return ;
+ return ;
};
export default App;
diff --git a/icons/paint-bucket.svg b/icons/paint-bucket.svg
index d19bc7c8c..f79973340 100644
--- a/icons/paint-bucket.svg
+++ b/icons/paint-bucket.svg
@@ -9,8 +9,8 @@
stroke-linecap="round"
stroke-linejoin="round"
>
-
+
+
-
diff --git a/icons/toolbox.json b/icons/toolbox.json
new file mode 100644
index 000000000..51454e166
--- /dev/null
+++ b/icons/toolbox.json
@@ -0,0 +1,37 @@
+{
+ "$schema": "../icon.schema.json",
+ "contributors": [
+ "karsa-mistmere"
+ ],
+ "tags": [
+ "toolkit",
+ "tools",
+ "trunk",
+ "chest",
+ "box",
+ "storage",
+ "utility",
+ "utilities",
+ "container",
+ "kit",
+ "set",
+ "repair",
+ "fix",
+ "service",
+ "maintenance",
+ "mechanic",
+ "workshop",
+ "construction",
+ "hardware",
+ "equipment",
+ "gear",
+ "handyman",
+ "engineering",
+ "craft",
+ "diy"
+ ],
+ "categories": [
+ "tools",
+ "home"
+ ]
+}
diff --git a/icons/toolbox.svg b/icons/toolbox.svg
new file mode 100644
index 000000000..67e3809c0
--- /dev/null
+++ b/icons/toolbox.svg
@@ -0,0 +1,17 @@
+
diff --git a/packages/lucide-react-native/package.json b/packages/lucide-react-native/package.json
index 6895928b5..8e0fbb1d4 100644
--- a/packages/lucide-react-native/package.json
+++ b/packages/lucide-react-native/package.json
@@ -27,6 +27,20 @@
"module": "dist/esm/lucide-react-native.js",
"typings": "dist/lucide-react-native.d.ts",
"react-native": "dist/esm/lucide-react-native.js",
+ "exports": {
+ ".": {
+ "types": "./dist/lucide-react-native.d.ts",
+ "import": "./dist/esm/lucide-react-native.js",
+ "browser": "./dist/esm/lucide-react-native.js",
+ "require": "./dist/cjs/lucide-react-native.js"
+ },
+ "./icons": {
+ "types": "./dist/icons.d.ts",
+ "import": "./dist/esm/icons/index.js",
+ "browser": "./dist/esm/icons/index.js",
+ "require": "./dist/cjs/icons/index.js"
+ }
+ },
"sideEffects": false,
"files": [
"dist"
diff --git a/packages/lucide-react-native/rollup.config.mjs b/packages/lucide-react-native/rollup.config.mjs
index b90666d41..a8f240143 100644
--- a/packages/lucide-react-native/rollup.config.mjs
+++ b/packages/lucide-react-native/rollup.config.mjs
@@ -5,7 +5,7 @@ import pkg from './package.json' with { type: 'json' };
const packageName = 'LucideReact';
const outputFileName = 'lucide-react-native';
const outputDir = 'dist';
-const inputs = ['src/lucide-react-native.ts'];
+const inputs = ['src/lucide-react-native.ts', 'src/icons/index.ts'];
const bundles = [
{
format: 'cjs',
@@ -60,6 +60,16 @@ export default [
],
plugins: [dts()],
},
+ {
+ input: inputs[1],
+ output: [
+ {
+ file: `dist/icons.d.ts`,
+ format: 'es',
+ },
+ ],
+ plugins: [dts()],
+ },
{
input: `src/${outputFileName}.suffixed.ts`,
output: [
diff --git a/packages/lucide-react-native/src/Icon.ts b/packages/lucide-react-native/src/Icon.ts
index ee43a1b0d..7fc4cb4aa 100644
--- a/packages/lucide-react-native/src/Icon.ts
+++ b/packages/lucide-react-native/src/Icon.ts
@@ -31,6 +31,7 @@ const Icon = forwardRef(
absoluteStrokeWidth,
children,
iconNode,
+ className,
...rest
},
ref,
@@ -46,6 +47,7 @@ const Icon = forwardRef(
{
ref,
...defaultAttributes,
+ className,
width: size,
height: size,
...customAttrs,
diff --git a/packages/lucide-react-native/src/lucide-react-native.prefixed.ts b/packages/lucide-react-native/src/lucide-react-native.prefixed.ts
index 408ad714b..e5403bcfa 100644
--- a/packages/lucide-react-native/src/lucide-react-native.prefixed.ts
+++ b/packages/lucide-react-native/src/lucide-react-native.prefixed.ts
@@ -1,5 +1,4 @@
export * from './icons';
-export * as icons from './icons';
export * from './aliases/prefixed';
export * from './types';
diff --git a/packages/lucide-react-native/src/lucide-react-native.suffixed.ts b/packages/lucide-react-native/src/lucide-react-native.suffixed.ts
index 8993799d2..796fb9476 100644
--- a/packages/lucide-react-native/src/lucide-react-native.suffixed.ts
+++ b/packages/lucide-react-native/src/lucide-react-native.suffixed.ts
@@ -1,5 +1,4 @@
export * from './icons';
-export * as icons from './icons';
export * from './aliases/suffixed';
export * from './types';
diff --git a/packages/lucide-react-native/src/lucide-react-native.ts b/packages/lucide-react-native/src/lucide-react-native.ts
index 6636c2259..b761dcce9 100644
--- a/packages/lucide-react-native/src/lucide-react-native.ts
+++ b/packages/lucide-react-native/src/lucide-react-native.ts
@@ -1,5 +1,4 @@
export * from './icons';
-export * as icons from './icons';
export * from './aliases';
export * from './types';
diff --git a/tools/build-font/main.ts b/tools/build-font/main.ts
index 74bb9990c..45a94f041 100644
--- a/tools/build-font/main.ts
+++ b/tools/build-font/main.ts
@@ -101,6 +101,7 @@ async function init() {
useCSSVars: false,
outSVGReact: false,
outSVGPath: false,
+ addLigatures: true,
svgicons2svgfont: {
fontHeight: 1000, // At least 1000 is recommended
normalize: false,