Skip to content

Commit a0e9779

Browse files
feat: implement internal icon library package and integration documentation page
1 parent c54f70a commit a0e9779

20 files changed

Lines changed: 1956 additions & 327 deletions

File tree

app/(site)/icons/page.tsx

Lines changed: 248 additions & 233 deletions
Large diffs are not rendered by default.

app/test/page.jsx

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { Icon } from "@nexaui-library/aura-ui";
2+
3+
4+
export default function TestPage() {
5+
return (
6+
<div style={{ padding: "20px" }}>
7+
<h1>Icon Test</h1>
8+
9+
<Icon name="like" size={30} />
10+
</div>
11+
);
12+
}

components/icons/Icon.tsx

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import React from "react";
2+
import { iconMap, IconName } from "./iconMap";
3+
import { LucideProps } from "lucide-react";
4+
5+
interface IconProps extends LucideProps {
6+
name: IconName;
7+
size?: number | string;
8+
className?: string;
9+
}
10+
11+
export const Icon = ({ name, size = 20, className = "", ...props }: IconProps) => {
12+
const Component = iconMap[name];
13+
14+
if (!Component) {
15+
console.warn(`Icon "${name}" not found in iconMap`);
16+
return null;
17+
}
18+
19+
return <Component size={size} className={className} {...props} />;
20+
};
21+
22+
export default Icon;

components/icons/iconMap.ts

Lines changed: 188 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,188 @@
1+
import * as Icons from "lucide-react";
2+
3+
export const iconMap: Record<string, any> = {
4+
// Navigation
5+
home: Icons.Home,
6+
menu: Icons.Menu,
7+
chevronLeft: Icons.ChevronLeft,
8+
chevronRight: Icons.ChevronRight,
9+
chevronUp: Icons.ChevronUp,
10+
chevronDown: Icons.ChevronDown,
11+
arrowLeft: Icons.ArrowLeft,
12+
arrowRight: Icons.ArrowRight,
13+
arrowUp: Icons.ArrowUp,
14+
arrowDown: Icons.ArrowDown,
15+
externalLink: Icons.ExternalLink,
16+
17+
// Actions
18+
search: Icons.Search,
19+
edit: Icons.Edit,
20+
edit2: Icons.Edit2,
21+
edit3: Icons.Edit3,
22+
trash: Icons.Trash,
23+
trash2: Icons.Trash2,
24+
plus: Icons.Plus,
25+
minus: Icons.Minus,
26+
x: Icons.X,
27+
share: Icons.Share,
28+
share2: Icons.Share2,
29+
30+
// Status
31+
check: Icons.Check,
32+
checkCircle: Icons.CheckCircle,
33+
checkCircle2: Icons.CheckCircle2,
34+
alertCircle: Icons.AlertCircle,
35+
alertTriangle: Icons.AlertTriangle,
36+
info: Icons.Info,
37+
bell: Icons.Bell,
38+
bellOff: Icons.BellOff,
39+
40+
// User
41+
user: Icons.User,
42+
userPlus: Icons.UserPlus,
43+
userMinus: Icons.UserMinus,
44+
login: Icons.LogIn,
45+
logout: Icons.LogOut,
46+
settings: Icons.Settings,
47+
settings2: Icons.Settings2,
48+
lock: Icons.Lock,
49+
unlock: Icons.Unlock,
50+
51+
// Media
52+
play: Icons.Play,
53+
pause: Icons.Pause,
54+
skipBack: Icons.SkipBack,
55+
skipForward: Icons.SkipForward,
56+
volume: Icons.Volume,
57+
volume1: Icons.Volume1,
58+
volume2: Icons.Volume2,
59+
volumeX: Icons.VolumeX,
60+
image: Icons.Image,
61+
video: Icons.Video,
62+
music: Icons.Music,
63+
64+
// Files & Misc
65+
upload: Icons.Upload,
66+
download: Icons.Download,
67+
file: Icons.File,
68+
fileText: Icons.FileText,
69+
folder: Icons.Folder,
70+
folderPlus: Icons.FolderPlus,
71+
calendar: Icons.Calendar,
72+
clock: Icons.Clock,
73+
mapPin: Icons.MapPin,
74+
cloud: Icons.Cloud,
75+
mail: Icons.Mail,
76+
github: Icons.Github,
77+
twitter: Icons.Twitter,
78+
heart: Icons.Heart,
79+
star: Icons.Star,
80+
like: Icons.ThumbsUp,
81+
};
82+
83+
export type IconName = keyof typeof iconMap;
84+
85+
export const categories = [
86+
{
87+
name: "Navigation",
88+
icons: [
89+
"home",
90+
"menu",
91+
"chevronLeft",
92+
"chevronRight",
93+
"chevronUp",
94+
"chevronDown",
95+
"arrowLeft",
96+
"arrowRight",
97+
"arrowUp",
98+
"arrowDown",
99+
"externalLink",
100+
],
101+
},
102+
{
103+
name: "Actions",
104+
icons: [
105+
"search",
106+
"edit",
107+
"edit2",
108+
"edit3",
109+
"trash",
110+
"trash2",
111+
"plus",
112+
"minus",
113+
"x",
114+
"share",
115+
"share2",
116+
],
117+
},
118+
{
119+
name: "Social",
120+
icons: [
121+
"heart",
122+
"star",
123+
"like",
124+
"github",
125+
"twitter",
126+
],
127+
},
128+
{
129+
name: "Status",
130+
icons: [
131+
"check",
132+
"checkCircle",
133+
"checkCircle2",
134+
"alertCircle",
135+
"alertTriangle",
136+
"info",
137+
"bell",
138+
"bellOff",
139+
],
140+
},
141+
{
142+
name: "User",
143+
icons: [
144+
"user",
145+
"userPlus",
146+
"userMinus",
147+
"login",
148+
"logout",
149+
"settings",
150+
"settings2",
151+
"lock",
152+
"unlock",
153+
],
154+
},
155+
{
156+
name: "Media",
157+
icons: [
158+
"play",
159+
"pause",
160+
"skipBack",
161+
"skipForward",
162+
"volume",
163+
"volume1",
164+
"volume2",
165+
"volumeX",
166+
"image",
167+
"video",
168+
"music",
169+
],
170+
},
171+
{
172+
name: "Files & Misc",
173+
icons: [
174+
"upload",
175+
"download",
176+
"file",
177+
"fileText",
178+
"folder",
179+
"folderPlus",
180+
"calendar",
181+
"clock",
182+
"mapPin",
183+
"cloud",
184+
"mail",
185+
],
186+
},
187+
];
188+

next.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { createMDX } from "fumadocs-mdx/next";
44
const withMDX = createMDX();
55

66
const nextConfig: NextConfig = {
7-
reactStrictMode: true,
7+
transpilePackages: ["aura-ui"],
88
};
99

1010
export default withMDX(nextConfig);

package-lock.json

Lines changed: 85 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
"lint": "next lint"
1212
},
1313
"dependencies": {
14+
"@nexaui-library/aura-ui": "file:packages/ui/nexaui-library-aura-ui-1.0.0.tgz",
1415
"framer-motion": "^11.15.0",
1516
"fumadocs-core": "^15.0.0",
1617
"fumadocs-mdx": "^11.5.0",

packages/ui/LICENSE

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
MIT License
2+
3+
Copyright (c) 2026 Nexa UI Library
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND.

packages/ui/README.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# ⚡ Aura UI Icons
2+
3+
A lightweight, customizable, and developer-friendly icon system built for modern React applications.
4+
5+
Built on top of Lucide icons with a clean wrapper API for fast usage.
6+
7+
---
8+
9+
## 📦 Installation
10+
11+
```bash
12+
npm install @nexaui-library/aura-ui

0 commit comments

Comments
 (0)