@docyrus/docyrus 0.0.15 → 0.0.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +25 -2
- package/main.js +1028 -540
- package/main.js.map +4 -4
- package/package.json +2 -1
- package/resources/pi-agent/prompts/agent-system.md +25 -0
- package/resources/pi-agent/prompts/coder-append-system.md +19 -0
- package/resources/pi-agent/skills/docyrus-ai/SKILL.md +28 -0
- package/resources/pi-agent/skills/docyrus-api-dev/SKILL.md +161 -0
- package/resources/pi-agent/skills/docyrus-api-dev/references/api-client.md +349 -0
- package/resources/pi-agent/skills/docyrus-api-dev/references/authentication.md +238 -0
- package/resources/pi-agent/skills/docyrus-api-dev/references/data-source-query-guide.md +2059 -0
- package/resources/pi-agent/skills/docyrus-api-dev/references/formula-design-guide-llm.md +320 -0
- package/resources/pi-agent/skills/docyrus-api-dev/references/query-and-formulas.md +592 -0
- package/resources/pi-agent/skills/docyrus-api-doctor/SKILL.md +70 -0
- package/resources/pi-agent/skills/docyrus-api-doctor/references/checklist-details.md +588 -0
- package/resources/pi-agent/skills/docyrus-app-dev/SKILL.md +159 -0
- package/resources/pi-agent/skills/docyrus-app-dev/references/api-client-and-auth.md +275 -0
- package/resources/pi-agent/skills/docyrus-app-dev/references/collections-and-patterns.md +352 -0
- package/resources/pi-agent/skills/docyrus-app-dev/references/data-source-query-guide.md +2059 -0
- package/resources/pi-agent/skills/docyrus-app-dev/references/formula-design-guide-llm.md +320 -0
- package/resources/pi-agent/skills/docyrus-app-dev/references/query-guide.md +525 -0
- package/resources/pi-agent/skills/docyrus-app-ui-design/SKILL.md +466 -0
- package/resources/pi-agent/skills/docyrus-app-ui-design/references/component-selection-guide.md +602 -0
- package/resources/pi-agent/skills/docyrus-app-ui-design/references/icon-usage-guide.md +463 -0
- package/resources/pi-agent/skills/docyrus-app-ui-design/references/preferred-components-catalog.md +242 -0
- package/resources/pi-agent/skills/docyrus-apps/SKILL.md +54 -0
- package/resources/pi-agent/skills/docyrus-architect/SKILL.md +174 -0
- package/resources/pi-agent/skills/docyrus-architect/references/custom-query-guide.md +410 -0
- package/resources/pi-agent/skills/docyrus-architect/references/data-source-query-guide.md +2059 -0
- package/resources/pi-agent/skills/docyrus-architect/references/formula-design-guide-llm.md +320 -0
- package/resources/pi-agent/skills/docyrus-architect/references/formula-reference.md +145 -0
- package/resources/pi-agent/skills/docyrus-auth/SKILL.md +100 -0
- package/resources/pi-agent/skills/docyrus-cli-app/SKILL.md +279 -0
- package/resources/pi-agent/skills/docyrus-cli-app/references/cli-manifest.md +532 -0
- package/resources/pi-agent/skills/docyrus-cli-app/references/list-query-examples.md +248 -0
- package/resources/pi-agent/skills/docyrus-curl/SKILL.md +32 -0
- package/resources/pi-agent/skills/docyrus-discover/SKILL.md +63 -0
- package/resources/pi-agent/skills/docyrus-ds/SKILL.md +95 -0
- package/resources/pi-agent/skills/docyrus-env/SKILL.md +21 -0
- package/resources/pi-agent/skills/docyrus-studio/SKILL.md +369 -0
- package/resources/pi-agent/skills/docyrus-tui/SKILL.md +15 -0
|
@@ -0,0 +1,463 @@
|
|
|
1
|
+
# Icon Usage Guide
|
|
2
|
+
|
|
3
|
+
Comprehensive guide for using icon libraries in Docyrus applications: hugeicons, fontawesome light, and lucide-icons.
|
|
4
|
+
|
|
5
|
+
## Table of Contents
|
|
6
|
+
|
|
7
|
+
1. [Icon Library Preferences](#icon-library-preferences)
|
|
8
|
+
2. [Installation](#installation)
|
|
9
|
+
3. [Usage Patterns](#usage-patterns)
|
|
10
|
+
4. [Selection Strategy](#selection-strategy)
|
|
11
|
+
5. [Common Icon Mappings](#common-icon-mappings)
|
|
12
|
+
6. [Sizing & Styling](#sizing--styling)
|
|
13
|
+
7. [Best Practices](#best-practices)
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Icon Library Preferences
|
|
18
|
+
|
|
19
|
+
**Priority order**:
|
|
20
|
+
|
|
21
|
+
1. **hugeicons** (first choice)
|
|
22
|
+
- Modern, comprehensive icon set
|
|
23
|
+
- Consistent design language
|
|
24
|
+
- Wide coverage of common use cases
|
|
25
|
+
|
|
26
|
+
2. **fontawesome light** (second choice)
|
|
27
|
+
- Professional, familiar appearance
|
|
28
|
+
- Extensive icon collection
|
|
29
|
+
- Well-established library
|
|
30
|
+
|
|
31
|
+
3. **lucide-icons** (third choice)
|
|
32
|
+
- Clean, minimalist style
|
|
33
|
+
- Fallback option
|
|
34
|
+
- Good coverage of basic icons
|
|
35
|
+
|
|
36
|
+
**Selection rule**: Always try hugeicons first. If the icon doesn't exist, check fontawesome light. Use lucide-icons only as a last resort.
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Installation
|
|
41
|
+
|
|
42
|
+
### hugeicons
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
npm install @hugeicons/react
|
|
46
|
+
# or
|
|
47
|
+
pnpm add @hugeicons/react
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**Import pattern**:
|
|
51
|
+
```tsx
|
|
52
|
+
import { IconName } from '@hugeicons/react'
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### fontawesome light
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
npm install @fortawesome/fontawesome-svg-core
|
|
59
|
+
npm install @fortawesome/free-solid-svg-icons
|
|
60
|
+
npm install @fortawesome/react-fontawesome
|
|
61
|
+
# For light icons (pro):
|
|
62
|
+
npm install @fortawesome/pro-light-svg-icons
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**Import pattern**:
|
|
66
|
+
```tsx
|
|
67
|
+
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
|
|
68
|
+
import { faIconName } from '@fortawesome/pro-light-svg-icons'
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### lucide-icons
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
npm install lucide-react
|
|
75
|
+
# or
|
|
76
|
+
pnpm add lucide-react
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**Import pattern**:
|
|
80
|
+
```tsx
|
|
81
|
+
import { IconName } from 'lucide-react'
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## Usage Patterns
|
|
87
|
+
|
|
88
|
+
### hugeicons (Preferred)
|
|
89
|
+
|
|
90
|
+
```tsx
|
|
91
|
+
import { Home01, User01, Settings01, ChartLineData01 } from '@hugeicons/react'
|
|
92
|
+
|
|
93
|
+
// Basic usage
|
|
94
|
+
<Home01 />
|
|
95
|
+
|
|
96
|
+
// With className
|
|
97
|
+
<User01 className="h-5 w-5 text-muted-foreground" />
|
|
98
|
+
|
|
99
|
+
// In a button
|
|
100
|
+
<Button>
|
|
101
|
+
<Settings01 className="mr-2 h-4 w-4" />
|
|
102
|
+
Settings
|
|
103
|
+
</Button>
|
|
104
|
+
|
|
105
|
+
// In AwesomeCard
|
|
106
|
+
<AwesomeCard
|
|
107
|
+
icon={<ChartLineData01 className="h-8 w-8" />}
|
|
108
|
+
title="Revenue"
|
|
109
|
+
value="$124,500"
|
|
110
|
+
/>
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### fontawesome light (Second Choice)
|
|
114
|
+
|
|
115
|
+
```tsx
|
|
116
|
+
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
|
|
117
|
+
import { faHome, faUser, faCog, faChartLine } from '@fortawesome/pro-light-svg-icons'
|
|
118
|
+
|
|
119
|
+
// Basic usage
|
|
120
|
+
<FontAwesomeIcon icon={faHome} />
|
|
121
|
+
|
|
122
|
+
// With className
|
|
123
|
+
<FontAwesomeIcon icon={faUser} className="h-5 w-5 text-muted-foreground" />
|
|
124
|
+
|
|
125
|
+
// In a button
|
|
126
|
+
<Button>
|
|
127
|
+
<FontAwesomeIcon icon={faCog} className="mr-2 h-4 w-4" />
|
|
128
|
+
Settings
|
|
129
|
+
</Button>
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### lucide-icons (Fallback)
|
|
133
|
+
|
|
134
|
+
```tsx
|
|
135
|
+
import { Home, User, Settings, TrendingUp } from 'lucide-react'
|
|
136
|
+
|
|
137
|
+
// Basic usage
|
|
138
|
+
<Home />
|
|
139
|
+
|
|
140
|
+
// With className
|
|
141
|
+
<User className="h-5 w-5 text-muted-foreground" />
|
|
142
|
+
|
|
143
|
+
// In a button
|
|
144
|
+
<Button>
|
|
145
|
+
<Settings className="mr-2 h-4 w-4" />
|
|
146
|
+
Settings
|
|
147
|
+
</Button>
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## Selection Strategy
|
|
153
|
+
|
|
154
|
+
### Decision Process
|
|
155
|
+
|
|
156
|
+
```
|
|
157
|
+
1. Determine what icon you need (e.g., "home", "user", "chart")
|
|
158
|
+
↓
|
|
159
|
+
2. Check hugeicons documentation/search
|
|
160
|
+
- Found? ✓ Use it
|
|
161
|
+
- Not found? → Continue to step 3
|
|
162
|
+
↓
|
|
163
|
+
3. Check fontawesome light documentation/search
|
|
164
|
+
- Found? ✓ Use it
|
|
165
|
+
- Not found? → Continue to step 4
|
|
166
|
+
↓
|
|
167
|
+
4. Check lucide-icons documentation/search
|
|
168
|
+
- Found? ✓ Use it
|
|
169
|
+
- Not found? → Use closest alternative from any library
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### Example Search Flow
|
|
173
|
+
|
|
174
|
+
**Scenario**: Need a "dashboard" icon
|
|
175
|
+
|
|
176
|
+
1. **Check hugeicons**: `Dashboard01` ✓ **Use this**
|
|
177
|
+
2. ~~Check fontawesome~~ (already found)
|
|
178
|
+
3. ~~Check lucide~~ (already found)
|
|
179
|
+
|
|
180
|
+
**Scenario**: Need a "bell" icon
|
|
181
|
+
|
|
182
|
+
1. **Check hugeicons**: `Notification01` ✓ **Use this**
|
|
183
|
+
2. ~~Check fontawesome~~ (already found)
|
|
184
|
+
3. ~~Check lucide~~ (already found)
|
|
185
|
+
|
|
186
|
+
**Scenario**: Need a specific icon not in hugeicons
|
|
187
|
+
|
|
188
|
+
1. **Check hugeicons**: Not found ✗
|
|
189
|
+
2. **Check fontawesome**: `faBell` ✓ **Use this**
|
|
190
|
+
3. ~~Check lucide~~ (already found)
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## Common Icon Mappings
|
|
195
|
+
|
|
196
|
+
| Use Case | hugeicons (1st) | fontawesome (2nd) | lucide (3rd) |
|
|
197
|
+
|----------|-----------------|-------------------|--------------|
|
|
198
|
+
| Home | `Home01` | `faHome` | `Home` |
|
|
199
|
+
| User/Profile | `User01` | `faUser` | `User` |
|
|
200
|
+
| Settings | `Settings01` | `faCog` | `Settings` |
|
|
201
|
+
| Search | `Search01` | `faSearch` | `Search` |
|
|
202
|
+
| Notifications | `Notification01` | `faBell` | `Bell` |
|
|
203
|
+
| Dashboard | `Dashboard01` | `faTachometer` | `LayoutDashboard` |
|
|
204
|
+
| Chart/Analytics | `ChartLineData01` | `faChartLine` | `TrendingUp` |
|
|
205
|
+
| Calendar | `Calendar01` | `faCalendar` | `Calendar` |
|
|
206
|
+
| File | `File01` | `faFile` | `File` |
|
|
207
|
+
| Folder | `Folder01` | `faFolder` | `Folder` |
|
|
208
|
+
| Download | `Download01` | `faDownload` | `Download` |
|
|
209
|
+
| Upload | `Upload01` | `faUpload` | `Upload` |
|
|
210
|
+
| Edit | `Edit01` | `faEdit` | `Edit` |
|
|
211
|
+
| Delete | `Delete01` | `faTrash` | `Trash2` |
|
|
212
|
+
| Plus/Add | `Add01` | `faPlus` | `Plus` |
|
|
213
|
+
| Close/X | `Cancel01` | `faTimes` | `X` |
|
|
214
|
+
| Check | `CheckmarkCircle01` | `faCheck` | `Check` |
|
|
215
|
+
| Arrow Right | `ArrowRight01` | `faArrowRight` | `ArrowRight` |
|
|
216
|
+
| Arrow Left | `ArrowLeft01` | `faArrowLeft` | `ArrowLeft` |
|
|
217
|
+
| Menu | `Menu01` | `faBars` | `Menu` |
|
|
218
|
+
| More (3 dots) | `MoreVertical` | `faEllipsisV` | `MoreVertical` |
|
|
219
|
+
| Info | `InformationCircle` | `faInfoCircle` | `Info` |
|
|
220
|
+
| Warning | `Alert01` | `faExclamationTriangle` | `AlertTriangle` |
|
|
221
|
+
| Error | `Cancel01` | `faTimesCircle` | `XCircle` |
|
|
222
|
+
| Success | `CheckmarkCircle01` | `faCheckCircle` | `CheckCircle` |
|
|
223
|
+
| Lock | `Lock01` | `faLock` | `Lock` |
|
|
224
|
+
| Unlock | `Unlock01` | `faUnlock` | `Unlock` |
|
|
225
|
+
| Eye/View | `View01` | `faEye` | `Eye` |
|
|
226
|
+
| Eye Off/Hide | `ViewOff01` | `faEyeSlash` | `EyeOff` |
|
|
227
|
+
| Heart | `Heart01` | `faHeart` | `Heart` |
|
|
228
|
+
| Star | `Star01` | `faStar` | `Star` |
|
|
229
|
+
| Filter | `Filter01` | `faFilter` | `Filter` |
|
|
230
|
+
| Sort | `SortVertical` | `faSort` | `ArrowUpDown` |
|
|
231
|
+
| Refresh | `Reload` | `faSync` | `RotateCw` |
|
|
232
|
+
|
|
233
|
+
---
|
|
234
|
+
|
|
235
|
+
## Sizing & Styling
|
|
236
|
+
|
|
237
|
+
### Standard Sizes
|
|
238
|
+
|
|
239
|
+
```tsx
|
|
240
|
+
// Extra small (navigation items, tight spaces)
|
|
241
|
+
<Icon className="h-3 w-3" />
|
|
242
|
+
|
|
243
|
+
// Small (buttons, inline with text)
|
|
244
|
+
<Icon className="h-4 w-4" />
|
|
245
|
+
|
|
246
|
+
// Medium (default for most UI elements)
|
|
247
|
+
<Icon className="h-5 w-5" />
|
|
248
|
+
|
|
249
|
+
// Large (emphasized actions, cards)
|
|
250
|
+
<Icon className="h-6 w-6" />
|
|
251
|
+
|
|
252
|
+
// Extra large (dashboard cards, hero sections)
|
|
253
|
+
<Icon className="h-8 w-8" />
|
|
254
|
+
|
|
255
|
+
// Hero (feature highlights)
|
|
256
|
+
<Icon className="h-12 w-12" />
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
### Color & Style
|
|
260
|
+
|
|
261
|
+
```tsx
|
|
262
|
+
// Inherit text color
|
|
263
|
+
<Icon className="h-5 w-5" />
|
|
264
|
+
|
|
265
|
+
// Muted/secondary
|
|
266
|
+
<Icon className="h-5 w-5 text-muted-foreground" />
|
|
267
|
+
|
|
268
|
+
// Primary color
|
|
269
|
+
<Icon className="h-5 w-5 text-primary" />
|
|
270
|
+
|
|
271
|
+
// Destructive/danger
|
|
272
|
+
<Icon className="h-5 w-5 text-destructive" />
|
|
273
|
+
|
|
274
|
+
// Success
|
|
275
|
+
<Icon className="h-5 w-5 text-green-600" />
|
|
276
|
+
|
|
277
|
+
// Warning
|
|
278
|
+
<Icon className="h-5 w-5 text-amber-600" />
|
|
279
|
+
|
|
280
|
+
// With opacity
|
|
281
|
+
<Icon className="h-5 w-5 text-foreground/50" />
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
### Common Patterns
|
|
285
|
+
|
|
286
|
+
**Icon with text (button)**:
|
|
287
|
+
```tsx
|
|
288
|
+
<Button>
|
|
289
|
+
<Icon className="mr-2 h-4 w-4" />
|
|
290
|
+
Button Text
|
|
291
|
+
</Button>
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
**Icon-only button**:
|
|
295
|
+
```tsx
|
|
296
|
+
<Button variant="ghost" size="icon">
|
|
297
|
+
<Icon className="h-5 w-5" />
|
|
298
|
+
<span className="sr-only">Accessible label</span>
|
|
299
|
+
</Button>
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
**Icon in input**:
|
|
303
|
+
```tsx
|
|
304
|
+
<div className="relative">
|
|
305
|
+
<Icon className="absolute left-3 top-3 h-4 w-4 text-muted-foreground" />
|
|
306
|
+
<Input className="pl-9" />
|
|
307
|
+
</div>
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
**Icon in card header**:
|
|
311
|
+
```tsx
|
|
312
|
+
<AwesomeCard
|
|
313
|
+
icon={<Icon className="h-8 w-8 text-primary" />}
|
|
314
|
+
title="Title"
|
|
315
|
+
value="Value"
|
|
316
|
+
/>
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
---
|
|
320
|
+
|
|
321
|
+
## Best Practices
|
|
322
|
+
|
|
323
|
+
### 1. Consistency
|
|
324
|
+
- Use the same icon library throughout a feature/page
|
|
325
|
+
- Don't mix hugeicons and fontawesome for similar concepts
|
|
326
|
+
- Maintain consistent sizing within the same context
|
|
327
|
+
|
|
328
|
+
### 2. Accessibility
|
|
329
|
+
- Always provide accessible labels for icon-only buttons:
|
|
330
|
+
```tsx
|
|
331
|
+
<Button variant="ghost" size="icon" aria-label="Settings">
|
|
332
|
+
<Settings01 className="h-5 w-5" />
|
|
333
|
+
</Button>
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
- Use `<span className="sr-only">` for screen readers:
|
|
337
|
+
```tsx
|
|
338
|
+
<Button variant="ghost" size="icon">
|
|
339
|
+
<Settings01 className="h-5 w-5" />
|
|
340
|
+
<span className="sr-only">Open settings</span>
|
|
341
|
+
</Button>
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
### 3. Performance
|
|
345
|
+
- Import only the icons you need (tree-shaking):
|
|
346
|
+
```tsx
|
|
347
|
+
// Good
|
|
348
|
+
import { Home01, User01 } from '@hugeicons/react'
|
|
349
|
+
|
|
350
|
+
// Avoid
|
|
351
|
+
import * as HugeIcons from '@hugeicons/react'
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
### 4. Semantic Usage
|
|
355
|
+
- Use appropriate icons for actions:
|
|
356
|
+
- Delete: Trash/Delete icon
|
|
357
|
+
- Edit: Pencil/Edit icon
|
|
358
|
+
- View: Eye icon
|
|
359
|
+
- Download: Download arrow
|
|
360
|
+
- Maintain icon semantics across the app
|
|
361
|
+
|
|
362
|
+
### 5. Spacing
|
|
363
|
+
- Use consistent spacing with Tailwind classes:
|
|
364
|
+
```tsx
|
|
365
|
+
// Icon before text
|
|
366
|
+
<Icon className="mr-2 h-4 w-4" />
|
|
367
|
+
|
|
368
|
+
// Icon after text
|
|
369
|
+
<Icon className="ml-2 h-4 w-4" />
|
|
370
|
+
|
|
371
|
+
// Icon above text (flex column)
|
|
372
|
+
<Icon className="mb-2 h-6 w-6" />
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
---
|
|
376
|
+
|
|
377
|
+
## Library-Specific Tips
|
|
378
|
+
|
|
379
|
+
### hugeicons
|
|
380
|
+
- Naming convention: `IconName01`, `IconName02` for variants
|
|
381
|
+
- Often includes outlined and filled versions
|
|
382
|
+
- Check for numbered variants (01, 02, 03) for style options
|
|
383
|
+
|
|
384
|
+
### fontawesome light
|
|
385
|
+
- Pro license required for light icons
|
|
386
|
+
- Use `@fortawesome/free-solid-svg-icons` for free versions
|
|
387
|
+
- Prefix: `fa` + camelCase name (e.g., `faHome`, `faUserCircle`)
|
|
388
|
+
|
|
389
|
+
### lucide-icons
|
|
390
|
+
- PascalCase naming (e.g., `Home`, `UserCircle`)
|
|
391
|
+
- Minimal, consistent stroke width
|
|
392
|
+
- Great for clean, modern designs
|
|
393
|
+
|
|
394
|
+
---
|
|
395
|
+
|
|
396
|
+
## Quick Reference: Priority Flow
|
|
397
|
+
|
|
398
|
+
```
|
|
399
|
+
Need an icon?
|
|
400
|
+
↓
|
|
401
|
+
Search hugeicons
|
|
402
|
+
↓
|
|
403
|
+
Found? → Use it ✓
|
|
404
|
+
↓
|
|
405
|
+
Not found?
|
|
406
|
+
↓
|
|
407
|
+
Search fontawesome light
|
|
408
|
+
↓
|
|
409
|
+
Found? → Use it ✓
|
|
410
|
+
↓
|
|
411
|
+
Not found?
|
|
412
|
+
↓
|
|
413
|
+
Search lucide-icons
|
|
414
|
+
↓
|
|
415
|
+
Found? → Use it ✓
|
|
416
|
+
↓
|
|
417
|
+
Not found?
|
|
418
|
+
↓
|
|
419
|
+
Use closest semantic match from any library
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
---
|
|
423
|
+
|
|
424
|
+
## Example: Dashboard Page
|
|
425
|
+
|
|
426
|
+
```tsx
|
|
427
|
+
import {
|
|
428
|
+
Dashboard01,
|
|
429
|
+
ChartLineData01,
|
|
430
|
+
User01,
|
|
431
|
+
ShoppingCart01
|
|
432
|
+
} from '@hugeicons/react'
|
|
433
|
+
import { AwesomeCard } from '@/components/ui/awesome-card'
|
|
434
|
+
|
|
435
|
+
export function DashboardPage() {
|
|
436
|
+
return (
|
|
437
|
+
<div className="grid gap-4 md:grid-cols-2 lg:grid-cols-4">
|
|
438
|
+
<AwesomeCard
|
|
439
|
+
icon={<ChartLineData01 className="h-8 w-8" />}
|
|
440
|
+
title="Total Revenue"
|
|
441
|
+
value="$124,500"
|
|
442
|
+
/>
|
|
443
|
+
<AwesomeCard
|
|
444
|
+
icon={<User01 className="h-8 w-8" />}
|
|
445
|
+
title="Active Users"
|
|
446
|
+
value="1,234"
|
|
447
|
+
/>
|
|
448
|
+
<AwesomeCard
|
|
449
|
+
icon={<ShoppingCart01 className="h-8 w-8" />}
|
|
450
|
+
title="Orders"
|
|
451
|
+
value="456"
|
|
452
|
+
/>
|
|
453
|
+
<AwesomeCard
|
|
454
|
+
icon={<Dashboard01 className="h-8 w-8" />}
|
|
455
|
+
title="Conversion Rate"
|
|
456
|
+
value="3.2%"
|
|
457
|
+
/>
|
|
458
|
+
</div>
|
|
459
|
+
)
|
|
460
|
+
}
|
|
461
|
+
```
|
|
462
|
+
|
|
463
|
+
All icons from hugeicons (first choice) ✓
|