Removed script.js include that was causing errors (no loading screen on SDK page) and added 'visible' class directly to main-content div so content displays immediately without JavaScript dependency. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
428 lines
16 KiB
HTML
428 lines
16 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>SilverSHELL SDK - SilverLabs</title>
|
|
<link rel="stylesheet" href="../styles.css">
|
|
<style>
|
|
.sdk-container {
|
|
max-width: 1200px;
|
|
margin: 0 auto;
|
|
padding: 2rem;
|
|
}
|
|
|
|
.sdk-header {
|
|
text-align: center;
|
|
margin-bottom: 3rem;
|
|
}
|
|
|
|
.sdk-header h1 {
|
|
font-size: 3rem;
|
|
margin-bottom: 1rem;
|
|
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
|
-webkit-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
background-clip: text;
|
|
}
|
|
|
|
.sdk-section {
|
|
background: rgba(255, 255, 255, 0.05);
|
|
border-radius: 1rem;
|
|
padding: 2rem;
|
|
margin-bottom: 2rem;
|
|
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
}
|
|
|
|
.sdk-section h2 {
|
|
font-size: 2rem;
|
|
margin-bottom: 1rem;
|
|
color: #667eea;
|
|
}
|
|
|
|
.sdk-section h3 {
|
|
font-size: 1.5rem;
|
|
margin-top: 1.5rem;
|
|
margin-bottom: 0.5rem;
|
|
color: #a78bfa;
|
|
}
|
|
|
|
.code-block {
|
|
background: rgba(0, 0, 0, 0.3);
|
|
border-radius: 0.5rem;
|
|
padding: 1rem;
|
|
margin: 1rem 0;
|
|
overflow-x: auto;
|
|
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
}
|
|
|
|
.code-block code {
|
|
color: #a5f3fc;
|
|
font-family: 'Courier New', monospace;
|
|
font-size: 0.9rem;
|
|
white-space: pre;
|
|
}
|
|
|
|
.download-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
|
|
gap: 1.5rem;
|
|
margin-top: 2rem;
|
|
}
|
|
|
|
.download-card {
|
|
background: linear-gradient(135deg, rgba(102, 126, 234, 0.1) 0%, rgba(118, 75, 162, 0.1) 100%);
|
|
border-radius: 1rem;
|
|
padding: 1.5rem;
|
|
border: 1px solid rgba(102, 126, 234, 0.3);
|
|
transition: all 0.3s ease;
|
|
text-decoration: none;
|
|
display: block;
|
|
}
|
|
|
|
.download-card:hover {
|
|
transform: translateY(-4px);
|
|
border-color: rgba(102, 126, 234, 0.6);
|
|
box-shadow: 0 10px 30px rgba(102, 126, 234, 0.2);
|
|
}
|
|
|
|
.download-card h3 {
|
|
margin: 0 0 0.5rem 0;
|
|
color: #fff;
|
|
}
|
|
|
|
.download-card p {
|
|
color: rgba(255, 255, 255, 0.7);
|
|
margin: 0.5rem 0;
|
|
}
|
|
|
|
.download-btn {
|
|
display: inline-block;
|
|
margin-top: 1rem;
|
|
padding: 0.75rem 1.5rem;
|
|
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
|
border-radius: 0.5rem;
|
|
color: white;
|
|
text-decoration: none;
|
|
font-weight: 600;
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.download-btn:hover {
|
|
transform: scale(1.05);
|
|
box-shadow: 0 5px 15px rgba(102, 126, 234, 0.4);
|
|
}
|
|
|
|
.steps-list {
|
|
counter-reset: step-counter;
|
|
list-style: none;
|
|
padding-left: 0;
|
|
}
|
|
|
|
.steps-list li {
|
|
counter-increment: step-counter;
|
|
position: relative;
|
|
padding-left: 3rem;
|
|
margin-bottom: 1.5rem;
|
|
}
|
|
|
|
.steps-list li::before {
|
|
content: counter(step-counter);
|
|
position: absolute;
|
|
left: 0;
|
|
top: 0;
|
|
width: 2rem;
|
|
height: 2rem;
|
|
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
|
border-radius: 50%;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-weight: bold;
|
|
color: white;
|
|
}
|
|
|
|
.info-box {
|
|
background: rgba(102, 126, 234, 0.1);
|
|
border-left: 4px solid #667eea;
|
|
padding: 1rem;
|
|
margin: 1rem 0;
|
|
border-radius: 0.5rem;
|
|
}
|
|
|
|
.back-link {
|
|
display: inline-block;
|
|
margin-top: 2rem;
|
|
color: #667eea;
|
|
text-decoration: none;
|
|
font-size: 1.1rem;
|
|
}
|
|
|
|
.back-link:hover {
|
|
color: #764ba2;
|
|
}
|
|
|
|
ul {
|
|
color: rgba(255, 255, 255, 0.8);
|
|
line-height: 1.8;
|
|
}
|
|
|
|
p {
|
|
color: rgba(255, 255, 255, 0.8);
|
|
line-height: 1.8;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div id="main-content" class="main-content visible">
|
|
<header class="header">
|
|
<img src="../logo.png" alt="SilverLabs Logo" class="logo">
|
|
</header>
|
|
|
|
<div class="sdk-container">
|
|
<div class="sdk-header">
|
|
<h1>SilverSHELL SDK</h1>
|
|
<p style="font-size: 1.2rem; color: rgba(255, 255, 255, 0.7);">Build modular Blazor WebAssembly applications with ease</p>
|
|
</div>
|
|
|
|
<!-- Quick Start Section -->
|
|
<div class="sdk-section">
|
|
<h2>🚀 Quick Start</h2>
|
|
<p>Get started with SilverSHELL in just a few minutes. Follow these simple steps:</p>
|
|
|
|
<ol class="steps-list">
|
|
<li>
|
|
<strong>Download the templates</strong> (see downloads below)
|
|
</li>
|
|
<li>
|
|
<strong>Extract the templates</strong> to a directory of your choice
|
|
</li>
|
|
<li>
|
|
<strong>Install the templates</strong>
|
|
<div class="code-block"><code>dotnet new install ./path/to/SilverSHELL.Starter.Template
|
|
dotnet new install ./path/to/SilverSHELL.AppModule.Template</code></div>
|
|
</li>
|
|
<li>
|
|
<strong>Create your first project</strong>
|
|
<div class="code-block"><code>dotnet new silvershell-starter -n MyApp --pwa true --module-repository true
|
|
cd MyApp
|
|
dotnet run</code></div>
|
|
</li>
|
|
<li>
|
|
<strong>Access your application</strong> at <code>https://localhost:5001</code>
|
|
</li>
|
|
</ol>
|
|
</div>
|
|
|
|
<!-- Downloads Section -->
|
|
<div class="sdk-section">
|
|
<h2>📦 Downloads</h2>
|
|
<p>Download the SilverSHELL project templates to get started:</p>
|
|
|
|
<div class="download-grid">
|
|
<div class="download-card">
|
|
<h3>Starter Template</h3>
|
|
<p>Create a new SilverSHELL application with minimal configuration</p>
|
|
<p><strong>Size:</strong> 6.3 KB</p>
|
|
<p><strong>Includes:</strong> Blazor WebAssembly setup, module loading, PWA support</p>
|
|
<a href="downloads/silvershell-starter-template.tar.gz" class="download-btn" download>
|
|
Download Starter Template
|
|
</a>
|
|
</div>
|
|
|
|
<div class="download-card">
|
|
<h3>Module Template</h3>
|
|
<p>Create reusable SilverSHELL modules with best practices</p>
|
|
<p><strong>Size:</strong> 14 KB</p>
|
|
<p><strong>Includes:</strong> Module structure, configuration, CI/CD templates</p>
|
|
<a href="downloads/silvershell-module-template.tar.gz" class="download-btn" download>
|
|
Download Module Template
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Creating Applications Section -->
|
|
<div class="sdk-section">
|
|
<h2>🏗️ Creating Applications</h2>
|
|
|
|
<h3>Using the Starter Template</h3>
|
|
<div class="code-block"><code># Create a new application
|
|
dotnet new silvershell-starter -n MyAwesomeApp
|
|
|
|
# With PWA support
|
|
dotnet new silvershell-starter -n MyAwesomeApp --pwa true
|
|
|
|
# With Module Repository integration
|
|
dotnet new silvershell-starter -n MyAwesomeApp --module-repository true</code></div>
|
|
|
|
<h3>Adding Modules</h3>
|
|
<p>SilverSHELL supports multiple ways to add modules to your application:</p>
|
|
|
|
<h3>Option 1: Configuration File</h3>
|
|
<p>Edit <code>wwwroot/appsettings.json</code>:</p>
|
|
<div class="code-block"><code>{
|
|
"AMS": {
|
|
"Deployment": {
|
|
"PreloadModules": [
|
|
"SilverLabs.SilverSHELL.Auth.Login",
|
|
"SilverSHELL.Modules.ModuleBrowser"
|
|
]
|
|
}
|
|
}
|
|
}</code></div>
|
|
|
|
<h3>Option 2: Module Browser UI</h3>
|
|
<ol>
|
|
<li>Navigate to <code>/modules/browse</code> in your application</li>
|
|
<li>Search for modules from <strong>library.silverlabs.uk</strong></li>
|
|
<li>Click "Install" on any module</li>
|
|
<li>Modules are downloaded and installed automatically</li>
|
|
</ol>
|
|
|
|
<h3>Option 3: Manual Installation</h3>
|
|
<div class="code-block"><code># Copy module DLLs to the modules directory
|
|
cp SomeModule.dll wwwroot/modules/
|
|
dotnet run
|
|
# Module is automatically discovered and loaded!</code></div>
|
|
</div>
|
|
|
|
<!-- Creating Modules Section -->
|
|
<div class="sdk-section">
|
|
<h2>🔧 Creating Modules</h2>
|
|
|
|
<h3>Using the Module Template</h3>
|
|
<div class="code-block"><code># Create a basic module
|
|
dotnet new silvershell-module -n MyModule
|
|
|
|
# Create a module with widgets
|
|
dotnet new silvershell-module -n MyModule --includeWidgets true
|
|
|
|
# Create a module with search provider
|
|
dotnet new silvershell-module -n MyModule --includeSearchProvider true
|
|
|
|
# Create a module with everything
|
|
dotnet new silvershell-module -n MyModule \
|
|
--includeWidgets true \
|
|
--includeSearchProvider true \
|
|
--includeTests true</code></div>
|
|
|
|
<h3>Module Structure</h3>
|
|
<p>The template creates an organized structure:</p>
|
|
<div class="code-block"><code>MyModule/
|
|
├── Configuration/
|
|
│ ├── ModuleMetadata.cs # Module identity and version
|
|
│ ├── EndpointConfiguration.cs # Navigation routes
|
|
│ └── WidgetConfiguration.cs # Dashboard widgets
|
|
├── Pages/
|
|
│ └── Index.razor # Razor pages
|
|
├── Components/
|
|
│ └── ... # Razor components
|
|
├── .gitlab-ci.yml # GitLab CI/CD
|
|
├── .github/workflows/
|
|
│ └── publish.yml # GitHub Actions
|
|
└── MyModuleMain.cs # Module entry point</code></div>
|
|
</div>
|
|
|
|
<!-- Publishing Modules Section -->
|
|
<div class="sdk-section">
|
|
<h2>🚀 Publishing Modules</h2>
|
|
|
|
<div class="info-box">
|
|
<strong>CI/CD Included!</strong> The module template includes ready-to-use CI/CD pipelines for both GitLab and GitHub.
|
|
</div>
|
|
|
|
<h3>Automated Publishing (Recommended)</h3>
|
|
<p>The templates include CI/CD pipelines for automatic publishing:</p>
|
|
|
|
<ol class="steps-list">
|
|
<li>
|
|
<strong>Configure CI/CD variables</strong>
|
|
<div class="code-block"><code># In GitLab: Settings > CI/CD > Variables
|
|
# In GitHub: Settings > Secrets > Actions
|
|
|
|
# Add variable:
|
|
MODULE_REPO_TOKEN: [your token from library.silverlabs.uk]</code></div>
|
|
</li>
|
|
<li>
|
|
<strong>Commit and push your code</strong>
|
|
<div class="code-block"><code>git add .
|
|
git commit -m "feat: Initial module implementation"
|
|
git push</code></div>
|
|
</li>
|
|
<li>
|
|
<strong>Create a release tag</strong>
|
|
<div class="code-block"><code>git tag v1.0.0
|
|
git push --tags</code></div>
|
|
</li>
|
|
<li>
|
|
<strong>Trigger publish</strong> from your CI/CD pipeline UI
|
|
</li>
|
|
</ol>
|
|
|
|
<h3>Manual Publishing</h3>
|
|
<div class="code-block"><code># Build and package
|
|
dotnet pack --configuration Release -o dist/
|
|
|
|
# Upload to repository
|
|
curl -X POST "https://library.silverlabs.uk/api/modules/publish" \
|
|
-F "id=MyModule" \
|
|
-F "name=My Awesome Module" \
|
|
-F "version=1.0.0" \
|
|
-F "description=A great module" \
|
|
-F "author=Your Name" \
|
|
-F "package=@dist/MyModule.1.0.0.nupkg"</code></div>
|
|
</div>
|
|
|
|
<!-- Available Modules Section -->
|
|
<div class="sdk-section">
|
|
<h2>📚 Available Modules</h2>
|
|
<p>Browse and install modules from the SilverSHELL module repository:</p>
|
|
|
|
<div class="info-box">
|
|
<strong>Module Repository:</strong> <a href="https://library.silverlabs.uk" target="_blank" style="color: #a78bfa;">library.silverlabs.uk</a>
|
|
</div>
|
|
|
|
<h3>Featured Modules:</h3>
|
|
<ul>
|
|
<li><strong>Auth.Login</strong> - User authentication and login UI</li>
|
|
<li><strong>Auth.Registration</strong> - User registration system</li>
|
|
<li><strong>Auth.UserManagement</strong> - User administration</li>
|
|
<li><strong>Auth.MyAccount</strong> - User profile management</li>
|
|
<li><strong>ModuleBrowser</strong> - Browse and install modules from the UI</li>
|
|
</ul>
|
|
|
|
<h3>Explore All Modules</h3>
|
|
<div class="code-block"><code># List all available modules via API
|
|
curl https://library.silverlabs.uk/api/modules
|
|
|
|
# Search for specific modules
|
|
curl https://library.silverlabs.uk/api/modules/search?q=auth</code></div>
|
|
</div>
|
|
|
|
<!-- Resources Section -->
|
|
<div class="sdk-section">
|
|
<h2>📖 Resources</h2>
|
|
<ul>
|
|
<li><strong>Module Repository API:</strong> <a href="https://library.silverlabs.uk/api/modules" target="_blank" style="color: #a78bfa;">https://library.silverlabs.uk/api/modules</a></li>
|
|
<li><strong>Demo Application:</strong> <a href="https://demo.silverlabs.uk" target="_blank" style="color: #a78bfa;">https://demo.silverlabs.uk</a></li>
|
|
<li><strong>GitLab Repository:</strong> <a href="https://gitlab.silverlabs.uk/silverlabs/silvershell" target="_blank" style="color: #a78bfa;">GitLab</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<!-- Support Section -->
|
|
<div class="sdk-section">
|
|
<h2>💬 Support</h2>
|
|
<p>Need help? We're here for you:</p>
|
|
<ul>
|
|
<li><strong>Help Desk:</strong> <a href="https://helpdesk.silverlabs.uk" target="_blank" style="color: #a78bfa;">helpdesk.silverlabs.uk</a></li>
|
|
<li><strong>Issues:</strong> <a href="https://gitlab.silverlabs.uk/silverlabs/silvershell/-/issues" target="_blank" style="color: #a78bfa;">GitLab Issues</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<a href="/" class="back-link">← Back to SilverLabs Home</a>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|