@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.
Files changed (41) hide show
  1. package/README.md +25 -2
  2. package/main.js +1028 -540
  3. package/main.js.map +4 -4
  4. package/package.json +2 -1
  5. package/resources/pi-agent/prompts/agent-system.md +25 -0
  6. package/resources/pi-agent/prompts/coder-append-system.md +19 -0
  7. package/resources/pi-agent/skills/docyrus-ai/SKILL.md +28 -0
  8. package/resources/pi-agent/skills/docyrus-api-dev/SKILL.md +161 -0
  9. package/resources/pi-agent/skills/docyrus-api-dev/references/api-client.md +349 -0
  10. package/resources/pi-agent/skills/docyrus-api-dev/references/authentication.md +238 -0
  11. package/resources/pi-agent/skills/docyrus-api-dev/references/data-source-query-guide.md +2059 -0
  12. package/resources/pi-agent/skills/docyrus-api-dev/references/formula-design-guide-llm.md +320 -0
  13. package/resources/pi-agent/skills/docyrus-api-dev/references/query-and-formulas.md +592 -0
  14. package/resources/pi-agent/skills/docyrus-api-doctor/SKILL.md +70 -0
  15. package/resources/pi-agent/skills/docyrus-api-doctor/references/checklist-details.md +588 -0
  16. package/resources/pi-agent/skills/docyrus-app-dev/SKILL.md +159 -0
  17. package/resources/pi-agent/skills/docyrus-app-dev/references/api-client-and-auth.md +275 -0
  18. package/resources/pi-agent/skills/docyrus-app-dev/references/collections-and-patterns.md +352 -0
  19. package/resources/pi-agent/skills/docyrus-app-dev/references/data-source-query-guide.md +2059 -0
  20. package/resources/pi-agent/skills/docyrus-app-dev/references/formula-design-guide-llm.md +320 -0
  21. package/resources/pi-agent/skills/docyrus-app-dev/references/query-guide.md +525 -0
  22. package/resources/pi-agent/skills/docyrus-app-ui-design/SKILL.md +466 -0
  23. package/resources/pi-agent/skills/docyrus-app-ui-design/references/component-selection-guide.md +602 -0
  24. package/resources/pi-agent/skills/docyrus-app-ui-design/references/icon-usage-guide.md +463 -0
  25. package/resources/pi-agent/skills/docyrus-app-ui-design/references/preferred-components-catalog.md +242 -0
  26. package/resources/pi-agent/skills/docyrus-apps/SKILL.md +54 -0
  27. package/resources/pi-agent/skills/docyrus-architect/SKILL.md +174 -0
  28. package/resources/pi-agent/skills/docyrus-architect/references/custom-query-guide.md +410 -0
  29. package/resources/pi-agent/skills/docyrus-architect/references/data-source-query-guide.md +2059 -0
  30. package/resources/pi-agent/skills/docyrus-architect/references/formula-design-guide-llm.md +320 -0
  31. package/resources/pi-agent/skills/docyrus-architect/references/formula-reference.md +145 -0
  32. package/resources/pi-agent/skills/docyrus-auth/SKILL.md +100 -0
  33. package/resources/pi-agent/skills/docyrus-cli-app/SKILL.md +279 -0
  34. package/resources/pi-agent/skills/docyrus-cli-app/references/cli-manifest.md +532 -0
  35. package/resources/pi-agent/skills/docyrus-cli-app/references/list-query-examples.md +248 -0
  36. package/resources/pi-agent/skills/docyrus-curl/SKILL.md +32 -0
  37. package/resources/pi-agent/skills/docyrus-discover/SKILL.md +63 -0
  38. package/resources/pi-agent/skills/docyrus-ds/SKILL.md +95 -0
  39. package/resources/pi-agent/skills/docyrus-env/SKILL.md +21 -0
  40. package/resources/pi-agent/skills/docyrus-studio/SKILL.md +369 -0
  41. 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) ✓