Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
2300645
feat: Configure CLI tool with command structure
Shewart Oct 12, 2025
3ada934
refactor: Replace Sysinfocus components with ShellUI components
Shewart Oct 12, 2025
a09936c
chore: Remove unused Sysinfocus component reference from Home.razor
Shewart Oct 13, 2025
3d6eb1d
feat: Implement ComponentInstaller for managing ShellUI components
Shewart Oct 13, 2025
9e90324
feat: Add InitService for ShellUI project initialization
Shewart Oct 13, 2025
23844f3
feat: Add ProjectDetector for automatic project detection in ShellUI CLI
Shewart Oct 13, 2025
1fe66ed
feat: Refactor BlazorInteractiveServer project structure
Shewart Oct 13, 2025
8774b38
feat: Enhance ShellUI CLI with error handling and component installation
Shewart Oct 13, 2025
2ba6261
feat: Add ShellUI.targets for Tailwind CSS build and clean targets
Shewart Oct 13, 2025
95bd64f
feat: Add theme toggle component to Home.razor for enhanced user expe…
Shewart Oct 13, 2025
c54b254
feat: Implement ThemeToggle component for user theme switching functi…
Shewart Oct 13, 2025
4c3c6d5
feat: Refactor InitService to support asynchronous initialization and…
Shewart Oct 13, 2025
64574ea
feat: Update app.css to integrate Tailwind CSS v4.1.0 and enhance sty…
Shewart Oct 13, 2025
20bf9d9
feat: Add ThemeToggleTemplate for customizable theme switching in She…
Shewart Oct 13, 2025
aa666be
feat: Integrate Tailwind CSS configuration and update theme toggle co…
Shewart Oct 13, 2025
342a00e
feat: Add theme-toggle component to ComponentRegistry and introduce C…
Shewart Oct 13, 2025
25e44f8
feat: Implement asynchronous initialization in ShellUI CLI and add Ta…
Shewart Oct 13, 2025
6991c29
feat: Create ThemeToggle component with theme switching functionality…
Shewart Oct 13, 2025
04859b3
feat: Implement ThemeService for managing theme state and asynchronou…
Shewart Oct 13, 2025
aa1a501
refactor: Change HandleClick method from async to synchronous for imp…
Shewart Oct 13, 2025
666e2db
feat: Add new UI components including Alert, Badge, Card, Dialog, Inp…
Shewart Oct 14, 2025
e73e58e
feat: Introduce new UI components including Alert, Badge, Card, Dialo…
Shewart Oct 14, 2025
00ebb4a
refactor: Update Tailwind CSS configuration and input styles to enhan…
Shewart Oct 14, 2025
7014117
refactor: Replace dark mode toggle button with ThemeToggle component …
Shewart Oct 15, 2025
4040481
feat: Revamp Home page layout and introduce new UI components includi…
Shewart Oct 15, 2025
a6e835c
refactor: Simplify UI component templates by removing unused CSS clas…
Shewart Oct 15, 2025
8973003
refactor: Streamline Button and ThemeToggle components by removing re…
Shewart Oct 15, 2025
9e5cda0
feat: Add new UI components including Input, Label, Card, Alert, Badg…
Shewart Oct 15, 2025
eb33fc8
refactor: Update SVG paths in ThemeToggle component for improved icon…
Shewart Oct 15, 2025
a3c1927
feat: Implement ComponentManager for managing installed components, i…
Shewart Oct 15, 2025
353a8bc
fix: Add error handling for component management commands to improve …
Shewart Oct 15, 2025
850e107
feat: Add new UI components including Accordion, Avatar, Breadcrumb, …
Shewart Oct 15, 2025
80e94fb
feat: Enhance app.css with new utility classes, improved spacing, and…
Shewart Oct 15, 2025
7f5c47b
feat: Add comprehensive showcase of new UI components on Home page, i…
Shewart Oct 15, 2025
83a338d
feat: Introduce a wide range of new UI components including Accordion…
Shewart Oct 15, 2025
75c668a
feat: Expand ComponentRegistry with additional UI components includin…
Shewart Oct 15, 2025
eeef101
fix: Update TimePicker component to display time in 24-hour format an…
Shewart Oct 15, 2025
33443a2
feat: Revamp MainLayout with a new Navbar component, enhancing naviga…
Shewart Oct 16, 2025
6f1ce7c
feat: Enhance app.css with new gradient utilities, additional spacing…
Shewart Oct 16, 2025
cb29914
style: Update MainLayout navigation links with improved spacing, padd…
Shewart Oct 17, 2025
a520a53
refactor: Remove Search component and clean up app.css by eliminating…
Shewart Oct 17, 2025
0a807e5
chore: Update project URLs in ShellUI.CLI.csproj to reflect new repos…
Shewart Oct 17, 2025
8062ec6
feat: Add initial SVG icon and comprehensive README for ShellUI.Compo…
Shewart Oct 17, 2025
16d94e6
feat: Add NuGet package metadata to ShellUI.Core project for improved…
Shewart Oct 17, 2025
ca5019f
docs: Revise README for ShellUI.Components to enhance installation in…
Shewart Oct 17, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
194 changes: 194 additions & 0 deletions COMPONENT_ROADMAP.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,194 @@
# ShellUI Component Roadmap

**Goal:** Build ALL components from shadcn/ui + sysinfocus to create the most comprehensive Blazor UI library

## Current Status: 53/70+ Components ✅ (76% Complete!)

### ✅ Completed (53)
1. Accordion
2. AccordionItem
3. Alert
4. Avatar
5. Badge
6. Breadcrumb
7. BreadcrumbItem
8. Button
9. Card
10. Checkbox
11. Collapsible **NEW**
12. Combobox **NEW**
13. DatePicker **NEW**
14. Dialog
15. Drawer **NEW**
16. Dropdown
17. Form **NEW**
18. Input
19. InputOTP **NEW**
20. Label
21. Menubar **NEW**
22. MenubarItem **NEW**
23. Navbar
24. NavigationMenu **NEW**
25. NavigationMenuItem **NEW**
26. Pagination **NEW**
27. Popover
28. Progress
29. RadioGroup
30. RadioGroupItem
31. Resizable **NEW**
32. ScrollArea **NEW**
33. Select
34. Separator
35. Sheet **NEW**
36. Sidebar
37. Skeleton
38. Slider
39. Switch
40. Table
41. TableBody
42. TableCell
43. TableHead
44. TableHeader
45. TableRow
46. Tabs
47. Textarea
48. Theme Toggle
49. TimePicker **NEW**
50. Toast
51. Toggle
52. Tooltip
53. DateRangePicker **NEW**

---

## Phase 1: Core Form Components ✅ COMPLETED
**Target: Q4 2025 - Q1 2026**

- [x] **Form** - Form wrapper with validation
- [x] **Input OTP** - One-time password input
- [x] **Combobox** - Autocomplete select input
- [x] **Date Picker** - Calendar date selection
- [x] **Time Picker** - Time selection input

---

## Phase 2: Layout & Navigation ✅ COMPLETED
**Target: Q1 2026**

- [x] **Navigation Menu** - Main navigation menu
- [x] **Menubar** - Application menubar
- [x] **Pagination** - Page navigation controls
- [x] **Scroll Area** - Custom scrollable container
- [x] **Resizable** - Resizable panels
- [x] **Sheet** - Side panel/drawer
- [x] **Drawer** - Sliding drawer panel
- [x] **Collapsible** - Collapsible content

---

## Phase 3: Data Display (Priority: MEDIUM)
**Target: Q1 2026**

- [ ] **Data Table** - Advanced data table with sorting/filtering
- [ ] **Calendar** - Full calendar component
- [ ] **Chart** - Chart/graph components
- [ ] **Tree View** - Hierarchical tree structure
- [ ] **Timeline** - Event timeline
- [ ] **Stepper** - Step-by-step wizard

---

## Phase 4: Feedback & Overlay (Priority: MEDIUM)
**Target: Q2 2026**

- [ ] **Alert Dialog** - Confirmation dialogs
- [ ] **Hover Card** - Rich hover content
- [ ] **Context Menu** - Right-click context menu
- [ ] **Command** - Command palette (Cmd+K)
- [ ] **Loading** - Loading spinner
- [ ] **Empty State** - Empty state placeholder

---

## Phase 5: Advanced Components (Priority: LOW)
**Target: Q2-Q3 2026**

- [ ] **Carousel** - Image/content carousel
- [ ] **Aspect Ratio** - Aspect ratio container
- [ ] **Code Block** - Syntax highlighted code
- [ ] **Markdown** - Markdown renderer
- [ ] **File Upload** - File upload component
- [ ] **Color Picker** - Color selection
- [ ] **Rich Text Editor** - WYSIWYG editor
- [ ] **Kanban Board** - Drag-and-drop board

---

## Phase 6: Blazor-Specific Components
**Target: Q3 2026**

- [ ] **Virtual Scroll** - Virtualized list
- [ ] **Grid** - Responsive grid layout
- [ ] **Split View** - Split pane view
- [ ] **PDF Viewer** - PDF display
- [ ] **Video Player** - Video playback
- [ ] **Audio Player** - Audio playback
- [ ] **QR Code** - QR code generator
- [ ] **Barcode** - Barcode scanner

---

## Summary by Category

### Form (11 components) ✅
Button ✅, Input ✅, Textarea ✅, Select ✅, Checkbox ✅, RadioGroup ✅, RadioGroupItem ✅, Switch ✅, Toggle ✅, Label ✅, Slider ✅

### Layout (12 components) ✅
Card ✅, Tabs ✅, Navbar ✅, Sidebar ✅, Separator ✅, Accordion ✅, AccordionItem ✅, Breadcrumb ✅, BreadcrumbItem ✅

### Feedback (5 components) ✅
Alert ✅, Progress ✅, Skeleton ✅, Toast ✅, Tooltip ✅

### Overlay (3 components) ✅
Dialog ✅, Dropdown ✅, Popover ✅

### Data Display (8 components) ✅
Badge ✅, Avatar ✅, Table ✅, TableHeader ✅, TableBody ✅, TableRow ✅, TableHead ✅, TableCell ✅

### Utility (1 component) ✅
Theme Toggle ✅

---

## Milestones

- **M1 (COMPLETED):** 37 components ✅ 🎉
- **M2 (Q1 2026):** 50 components (+ Phase 1 & 2 essentials)
- **M3 (Q2 2026):** 60 components (+ Phase 3 & 4)
- **M4 (Q3 2026):** 70+ components (+ Phase 5 & 6)

**Current Progress: 37/70+ components (53% complete!)** 🎯

---

## Recent Additions (Latest Session)

### Session 1 (Q4 2025)
**Added 18 New Components:**
- RadioGroup + RadioGroupItem (Form)
- Slider (Form)
- Toggle (Form)
- Accordion + AccordionItem (Layout)
- Breadcrumb + BreadcrumbItem (Layout)
- Toast (Feedback)
- Tooltip (Feedback)
- Popover (Overlay)
- Avatar (Data Display)
- Table + TableHeader + TableBody + TableRow + TableHead + TableCell (Data Display)

All components:
- ✅ Built with inline ternary styling
- ✅ Full Tailwind CSS integration
- ✅ Dark mode support
- ✅ CLI installable
- ✅ Demo page ready
9 changes: 6 additions & 3 deletions NET9/BlazorInteractiveServer/BlazorInteractiveServer.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,11 @@
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Sysinfocus.AspNetCore.Components" Version="0.0.1" />
</ItemGroup>
<!-- Removed NuGet/Project reference - using CLI-installed components instead -->
<!-- <ItemGroup>
<ProjectReference Include="..\..\src\ShellUI.Components\ShellUI.Components.csproj" />
</ItemGroup> -->

<Import Project="Build\ShellUI.targets" />

</Project>
23 changes: 23 additions & 0 deletions NET9/BlazorInteractiveServer/Build/ShellUI.targets
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<Project>
<PropertyGroup>
<ShellUIBinPath Condition="'$(ShellUIBinPath)' == ''">$(MSBuildProjectDirectory)\.shellui\bin</ShellUIBinPath>
<TailwindExecutable Condition="'$(OS)' == 'Windows_NT'">$(ShellUIBinPath)\tailwindcss.exe</TailwindExecutable>
<TailwindExecutable Condition="'$(OS)' != 'Windows_NT'">$(ShellUIBinPath)/tailwindcss</TailwindExecutable>
<TailwindInputCss Condition="'$(TailwindInputCss)' == ''">$(MSBuildProjectDirectory)\wwwroot\input.css</TailwindInputCss>
<TailwindOutputCss Condition="'$(TailwindOutputCss)' == ''">$(MSBuildProjectDirectory)\wwwroot\app.css</TailwindOutputCss>
<TailwindMinify Condition="'$(Configuration)' == 'Release'">--minify</TailwindMinify>
<TailwindMinify Condition="'$(Configuration)' != 'Release'"></TailwindMinify>
</PropertyGroup>

<Target Name="BuildTailwindCSS" BeforeTargets="BeforeBuild" Condition="Exists('$(TailwindExecutable)') AND Exists('$(TailwindInputCss)')">
<Message Importance="high" Text="Building Tailwind CSS..." />
<Exec Command="&quot;$(TailwindExecutable)&quot; -i &quot;$(TailwindInputCss)&quot; -o &quot;$(TailwindOutputCss)&quot; $(TailwindMinify)" />
<Message Importance="high" Text="Tailwind CSS built successfully!" />
</Target>

<Target Name="CleanTailwindCSS" AfterTargets="Clean" Condition="Exists('$(TailwindOutputCss)')">
<Message Importance="high" Text="Cleaning Tailwind CSS output..." />
<Delete Files="$(TailwindOutputCss)" />
</Target>
</Project>
39 changes: 35 additions & 4 deletions NET9/BlazorInteractiveServer/Components/App.razor
Original file line number Diff line number Diff line change
@@ -1,19 +1,50 @@
<!DOCTYPE html>
<html lang="en">
<html lang="en" class="dark">

<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<base href="/" />

<!-- ShellUI - Tailwind CSS (compiled by standalone CLI, no Node.js!) -->
<link rel="stylesheet" href="@Assets["app.css"]" />
<link rel="stylesheet" href="@Assets["BlazorInteractiveServer.styles.css"]" />
<link rel="stylesheet" href="@Assets["_content/Sysinfocus.AspNetCore.Components/styles.css"]" />
<link rel="stylesheet" href="@Assets["_content/Sysinfocus.AspNetCore.Components/Sysinfocus.AspNetCore.Components.bundle.scp.css"]" />

<!-- Dark Mode Toggle Script -->
<script>
// Initialize dark mode (default to dark to save your eyes!)
if (!localStorage.getItem('theme')) {
localStorage.setItem('theme', 'dark');
}

// Apply theme on load
const theme = localStorage.getItem('theme');
if (theme === 'dark') {
document.documentElement.classList.add('dark');
} else {
document.documentElement.classList.remove('dark');
}

// Toggle function
function toggleTheme() {
const html = document.documentElement;
const isDark = html.classList.contains('dark');

if (isDark) {
html.classList.remove('dark');
localStorage.setItem('theme', 'light');
} else {
html.classList.add('dark');
localStorage.setItem('theme', 'dark');
}
}
</script>

<ImportMap />
<HeadOutlet @rendermode="InteractiveServer" />
</head>

<body>
<body class="bg-background text-foreground">
<Routes @rendermode="InteractiveServer" />
<script src="_framework/blazor.web.js"></script>
</body>
Expand Down
Loading