fix(deps): bump dependencies and devDependencies, update watch script, add npmextra preset, and remove Playwright artifacts

This commit is contained in:
2026-02-20 13:08:09 +00:00
parent 4c0e498c4e
commit 88ea272331
100 changed files with 2072 additions and 227892 deletions

24
.gitignore vendored
View File

@@ -1 +1,23 @@
node_modules
.nogit/
# artifacts
coverage/
public/
# installs
node_modules/
# caches
.yarn/
.cache/
.rpt2_cache
# builds
dist/
dist_*/
# AI
.claude/
.serena/
#------# custom

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

16
changelog.md Normal file
View File

@@ -0,0 +1,16 @@
# Changelog
## 2026-02-20 - 1.0.1 - fix(deps)
bump dependencies and devDependencies, update watch script, add npmextra preset, and remove Playwright artifacts
- package.json: bump @design.estate/dees-catalog ^3.29.1 → ^3.43.0, @design.estate/dees-domtools ^2.3.6 → ^2.3.8, @design.estate/dees-element ^2.1.3 → ^2.1.6, @design.estate/dees-wcctools ^3.4.0 → ^3.8.0
- devDependencies: bump @git.zone/tsbuild ^4.0.2 → ^4.1.2, @git.zone/tsbundle ^2.6.3 → ^2.8.3, @git.zone/tstest ^3.1.3 → ^3.1.8, @git.zone/tswatch ^2.3.13 → ^3.1.0, @types/node ^25.0.3 → ^25.3.0
- scripts: change watch from "tswatch element" to "tswatch" (simplify dev workflow)
- npmextra.json: add preset for @git.zone/tswatch (preset: "element")
- repo cleanup: expand .gitignore and remove large Playwright screenshots/artifacts from .playwright-mcp
## 2026-01-03 - 1.0.0 - maintenance
General maintenance update; the commit message provides no detailed information.
- Commit message: "update" (no further details).
- No specific user-facing or functional changes are documented.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,33 +0,0 @@
export * from './sz-stat-card.js';
export * from './sz-resource-usage-card.js';
export * from './sz-traffic-card.js';
export * from './sz-platform-services-card.js';
export * from './sz-certificates-card.js';
export * from './sz-reverse-proxy-card.js';
export * from './sz-dns-ssl-card.js';
export * from './sz-quick-actions-card.js';
export * from './sz-status-grid-cluster.js';
export * from './sz-status-grid-services.js';
export * from './sz-status-grid-network.js';
export * from './sz-status-grid-infra.js';
export * from './sz-dashboard-view.js';
export * from './sz-network-proxy-view.js';
export * from './sz-network-dns-view.js';
export * from './sz-network-domains-view.js';
export * from './sz-registry-onebox-view.js';
export * from './sz-registry-external-view.js';
export * from './sz-services-list-view.js';
export * from './sz-services-backups-view.js';
export * from './sz-service-detail-view.js';
export * from './sz-tokens-view.js';
export * from './sz-settings-view.js';
export * from './sz-login-view.js';
export * from './sz-service-create-view.js';
export * from './sz-platform-service-detail-view.js';
export * from './sz-domain-detail-view.js';
export * from './sz-demo-view-dashboard.js';
export * from './sz-demo-view-services.js';
export * from './sz-demo-view-network.js';
export * from './sz-demo-view-registries.js';
export * from './sz-demo-view-tokens.js';
export * from './sz-demo-view-settings.js';

View File

@@ -1,45 +0,0 @@
// Dashboard Cards
export * from './sz-stat-card.js';
export * from './sz-resource-usage-card.js';
export * from './sz-traffic-card.js';
export * from './sz-platform-services-card.js';
export * from './sz-certificates-card.js';
export * from './sz-reverse-proxy-card.js';
export * from './sz-dns-ssl-card.js';
export * from './sz-quick-actions-card.js';
// Grid Components
export * from './sz-status-grid-cluster.js';
export * from './sz-status-grid-services.js';
export * from './sz-status-grid-network.js';
export * from './sz-status-grid-infra.js';
export * from './sz-dashboard-view.js';
// Network Views
export * from './sz-network-proxy-view.js';
export * from './sz-network-dns-view.js';
export * from './sz-network-domains-view.js';
// Registry Views
export * from './sz-registry-onebox-view.js';
export * from './sz-registry-external-view.js';
// Services Views
export * from './sz-services-list-view.js';
export * from './sz-services-backups-view.js';
export * from './sz-service-detail-view.js';
// Tokens View
export * from './sz-tokens-view.js';
// Settings View
export * from './sz-settings-view.js';
// Auth & Login
export * from './sz-login-view.js';
// Service Create
export * from './sz-service-create-view.js';
// Detail Views
export * from './sz-platform-service-detail-view.js';
export * from './sz-domain-detail-view.js';
// Demo Views
export * from './sz-demo-view-dashboard.js';
export * from './sz-demo-view-services.js';
export * from './sz-demo-view-network.js';
export * from './sz-demo-view-registries.js';
export * from './sz-demo-view-tokens.js';
export * from './sz-demo-view-settings.js';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvZWxlbWVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsa0JBQWtCO0FBQ2xCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw0QkFBNEIsQ0FBQztBQUUzQyxrQkFBa0I7QUFDbEIsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHdCQUF3QixDQUFDO0FBRXZDLGdCQUFnQjtBQUNoQixjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyw4QkFBOEIsQ0FBQztBQUU3QyxpQkFBaUI7QUFDakIsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGdDQUFnQyxDQUFDO0FBRS9DLGlCQUFpQjtBQUNqQixjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyw2QkFBNkIsQ0FBQztBQUU1QyxjQUFjO0FBQ2QsY0FBYyxxQkFBcUIsQ0FBQztBQUVwQyxnQkFBZ0I7QUFDaEIsY0FBYyx1QkFBdUIsQ0FBQztBQUV0QyxlQUFlO0FBQ2YsY0FBYyxvQkFBb0IsQ0FBQztBQUVuQyxpQkFBaUI7QUFDakIsY0FBYyw2QkFBNkIsQ0FBQztBQUU1QyxlQUFlO0FBQ2YsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLDRCQUE0QixDQUFDO0FBRTNDLGFBQWE7QUFDYixjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyw0QkFBNEIsQ0FBQyJ9

View File

@@ -1,14 +0,0 @@
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
declare global {
interface HTMLElementTagNameMap {
'sz-certificates-card': SzCertificatesCard;
}
}
export declare class SzCertificatesCard extends DeesElement {
static demo: () => TemplateResult<1>;
accessor validCount: number;
accessor expiringCount: number;
accessor expiredCount: number;
static styles: import("@design.estate/dees-element").CSSResult[];
render(): TemplateResult;
}

View File

@@ -1,210 +0,0 @@
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
var _, done = false;
for (var i = decorators.length - 1; i >= 0; i--) {
var context = {};
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
if (kind === "accessor") {
if (result === void 0) continue;
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
if (_ = accept(result.get)) descriptor.get = _;
if (_ = accept(result.set)) descriptor.set = _;
if (_ = accept(result.init)) initializers.unshift(_);
}
else if (_ = accept(result)) {
if (kind === "field") initializers.unshift(_);
else descriptor[key] = _;
}
}
if (target) Object.defineProperty(target, contextIn.name, descriptor);
done = true;
};
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
var useValue = arguments.length > 2;
for (var i = 0; i < initializers.length; i++) {
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
}
return useValue ? value : void 0;
};
import { DeesElement, customElement, html, css, cssManager, property, } from '@design.estate/dees-element';
let SzCertificatesCard = (() => {
let _classDecorators = [customElement('sz-certificates-card')];
let _classDescriptor;
let _classExtraInitializers = [];
let _classThis;
let _classSuper = DeesElement;
let _validCount_decorators;
let _validCount_initializers = [];
let _validCount_extraInitializers = [];
let _expiringCount_decorators;
let _expiringCount_initializers = [];
let _expiringCount_extraInitializers = [];
let _expiredCount_decorators;
let _expiredCount_initializers = [];
let _expiredCount_extraInitializers = [];
var SzCertificatesCard = class extends _classSuper {
static { _classThis = this; }
static {
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
_validCount_decorators = [property({ type: Number })];
_expiringCount_decorators = [property({ type: Number })];
_expiredCount_decorators = [property({ type: Number })];
__esDecorate(this, null, _validCount_decorators, { kind: "accessor", name: "validCount", static: false, private: false, access: { has: obj => "validCount" in obj, get: obj => obj.validCount, set: (obj, value) => { obj.validCount = value; } }, metadata: _metadata }, _validCount_initializers, _validCount_extraInitializers);
__esDecorate(this, null, _expiringCount_decorators, { kind: "accessor", name: "expiringCount", static: false, private: false, access: { has: obj => "expiringCount" in obj, get: obj => obj.expiringCount, set: (obj, value) => { obj.expiringCount = value; } }, metadata: _metadata }, _expiringCount_initializers, _expiringCount_extraInitializers);
__esDecorate(this, null, _expiredCount_decorators, { kind: "accessor", name: "expiredCount", static: false, private: false, access: { has: obj => "expiredCount" in obj, get: obj => obj.expiredCount, set: (obj, value) => { obj.expiredCount = value; } }, metadata: _metadata }, _expiredCount_initializers, _expiredCount_extraInitializers);
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
SzCertificatesCard = _classThis = _classDescriptor.value;
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
}
static demo = () => html `
<div style="padding: 24px; display: flex; gap: 16px; flex-wrap: wrap;">
<sz-certificates-card validCount="2"></sz-certificates-card>
<sz-certificates-card validCount="5" expiringCount="2"></sz-certificates-card>
<sz-certificates-card validCount="0" expiredCount="1"></sz-certificates-card>
</div>
`;
#validCount_accessor_storage = __runInitializers(this, _validCount_initializers, 0);
get validCount() { return this.#validCount_accessor_storage; }
set validCount(value) { this.#validCount_accessor_storage = value; }
#expiringCount_accessor_storage = (__runInitializers(this, _validCount_extraInitializers), __runInitializers(this, _expiringCount_initializers, 0));
get expiringCount() { return this.#expiringCount_accessor_storage; }
set expiringCount(value) { this.#expiringCount_accessor_storage = value; }
#expiredCount_accessor_storage = (__runInitializers(this, _expiringCount_extraInitializers), __runInitializers(this, _expiredCount_initializers, 0));
get expiredCount() { return this.#expiredCount_accessor_storage; }
set expiredCount(value) { this.#expiredCount_accessor_storage = value; }
static styles = [
cssManager.defaultStyles,
css `
:host {
display: block;
min-width: 200px;
height: 100%;
}
.card {
background: ${cssManager.bdTheme('#ffffff', '#09090b')};
border: 1px solid ${cssManager.bdTheme('#e4e4e7', '#27272a')};
border-radius: 8px;
padding: 20px;
height: 100%;
box-sizing: border-box;
}
.header {
margin-bottom: 16px;
}
.title {
font-size: 16px;
font-weight: 600;
color: ${cssManager.bdTheme('#18181b', '#fafafa')};
}
.subtitle {
font-size: 13px;
color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
margin-top: 2px;
}
.status {
display: flex;
align-items: center;
gap: 8px;
}
.status-icon {
width: 20px;
height: 20px;
}
.status-icon.valid {
color: ${cssManager.bdTheme('#22c55e', '#22c55e')};
}
.status-icon.warning {
color: ${cssManager.bdTheme('#facc15', '#facc15')};
}
.status-icon.error {
color: ${cssManager.bdTheme('#ef4444', '#ef4444')};
}
.status-text {
font-size: 14px;
color: ${cssManager.bdTheme('#18181b', '#fafafa')};
}
.status-list {
display: flex;
flex-direction: column;
gap: 8px;
}
`,
];
render() {
return html `
<div class="card">
<div class="header">
<div class="title">Certificates</div>
<div class="subtitle">SSL/TLS certificate status</div>
</div>
<div class="status-list">
${this.validCount > 0 ? html `
<div class="status">
<svg class="status-icon valid" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<polyline points="20 6 9 17 4 12"></polyline>
</svg>
<span class="status-text">${this.validCount} valid</span>
</div>
` : ''}
${this.expiringCount > 0 ? html `
<div class="status">
<svg class="status-icon warning" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path>
<line x1="12" y1="9" x2="12" y2="13"></line>
<line x1="12" y1="17" x2="12.01" y2="17"></line>
</svg>
<span class="status-text">${this.expiringCount} expiring soon</span>
</div>
` : ''}
${this.expiredCount > 0 ? html `
<div class="status">
<svg class="status-icon error" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<circle cx="12" cy="12" r="10"></circle>
<line x1="15" y1="9" x2="9" y2="15"></line>
<line x1="9" y1="9" x2="15" y2="15"></line>
</svg>
<span class="status-text">${this.expiredCount} expired</span>
</div>
` : ''}
${this.validCount === 0 && this.expiringCount === 0 && this.expiredCount === 0 ? html `
<div class="status">
<span class="status-text">No certificates</span>
</div>
` : ''}
</div>
</div>
`;
}
constructor() {
super(...arguments);
__runInitializers(this, _expiredCount_extraInitializers);
}
static {
__runInitializers(_classThis, _classExtraInitializers);
}
};
return SzCertificatesCard = _classThis;
})();
export { SzCertificatesCard };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3otY2VydGlmaWNhdGVzLWNhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvZWxlbWVudHMvc3otY2VydGlmaWNhdGVzLWNhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxXQUFXLEVBQ1gsYUFBYSxFQUNiLElBQUksRUFDSixHQUFHLEVBQ0gsVUFBVSxFQUNWLFFBQVEsR0FFVCxNQUFNLDZCQUE2QixDQUFDO0lBU3hCLGtCQUFrQjs0QkFEOUIsYUFBYSxDQUFDLHNCQUFzQixDQUFDOzs7O3NCQUNFLFdBQVc7Ozs7Ozs7Ozs7a0NBQW5CLFNBQVEsV0FBVzs7OztzQ0FTaEQsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO3lDQUcxQixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7d0NBRzFCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUwzQixtTEFBZ0IsVUFBVSw2QkFBVixVQUFVLCtGQUFhO1lBR3ZDLDRMQUFnQixhQUFhLDZCQUFiLGFBQWEscUdBQWE7WUFHMUMseUxBQWdCLFlBQVksNkJBQVosWUFBWSxtR0FBYTtZQWhCM0MsNktBeUlDOzs7O1FBeElRLE1BQU0sQ0FBQyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFBOzs7Ozs7R0FNOUIsQ0FBQztRQUdGLGlGQUFxQyxDQUFDLEVBQUM7UUFBdkMsSUFBZ0IsVUFBVSxnREFBYTtRQUF2QyxJQUFnQixVQUFVLHNEQUFhO1FBR3ZDLGdKQUF3QyxDQUFDLEdBQUM7UUFBMUMsSUFBZ0IsYUFBYSxtREFBYTtRQUExQyxJQUFnQixhQUFhLHlEQUFhO1FBRzFDLGlKQUF1QyxDQUFDLEdBQUM7UUFBekMsSUFBZ0IsWUFBWSxrREFBYTtRQUF6QyxJQUFnQixZQUFZLHdEQUFhO1FBRWxDLE1BQU0sQ0FBQyxNQUFNLEdBQUc7WUFDckIsVUFBVSxDQUFDLGFBQWE7WUFDeEIsR0FBRyxDQUFBOzs7Ozs7OztzQkFRZSxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7NEJBQ2xDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7aUJBY25ELFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQzs7Ozs7aUJBS3hDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztpQkFnQnhDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQzs7OztpQkFJeEMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDOzs7O2lCQUl4QyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7Ozs7O2lCQUt4QyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7Ozs7Ozs7O0tBUXBEO1NBQ0YsQ0FBQztRQUVLLE1BQU07WUFDWCxPQUFPLElBQUksQ0FBQTs7Ozs7Ozs7WUFRSCxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBOzs7OzswQ0FLSSxJQUFJLENBQUMsVUFBVTs7V0FFOUMsQ0FBQyxDQUFDLENBQUMsRUFBRTs7WUFFSixJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBOzs7Ozs7OzBDQU9DLElBQUksQ0FBQyxhQUFhOztXQUVqRCxDQUFDLENBQUMsQ0FBQyxFQUFFOztZQUVKLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUE7Ozs7Ozs7MENBT0UsSUFBSSxDQUFDLFlBQVk7O1dBRWhELENBQUMsQ0FBQyxDQUFDLEVBQUU7O1lBRUosSUFBSSxDQUFDLFVBQVUsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTs7OztXQUlwRixDQUFDLENBQUMsQ0FBQyxFQUFFOzs7S0FHWCxDQUFDO1FBQ0osQ0FBQzs7Ozs7O1lBeElVLHVEQUFrQjs7Ozs7U0FBbEIsa0JBQWtCIn0=

View File

@@ -1,33 +0,0 @@
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
import './sz-status-grid-cluster.js';
import './sz-status-grid-services.js';
import './sz-status-grid-network.js';
import './sz-status-grid-infra.js';
import type { IClusterStats } from './sz-status-grid-cluster.js';
import type { IResourceUsage } from './sz-resource-usage-card.js';
import type { IPlatformService } from './sz-platform-services-card.js';
import type { ITrafficData } from './sz-traffic-card.js';
import type { IProxyStatus, ICertificateStatus } from './sz-status-grid-network.js';
import type { IQuickAction } from './sz-quick-actions-card.js';
declare global {
interface HTMLElementTagNameMap {
'sz-dashboard-view': SzDashboardView;
}
}
export interface IDashboardData {
cluster: IClusterStats;
resourceUsage: IResourceUsage;
platformServices: IPlatformService[];
traffic: ITrafficData;
proxy: IProxyStatus;
certificates: ICertificateStatus;
dnsConfigured: boolean;
acmeConfigured: boolean;
quickActions: IQuickAction[];
}
export declare class SzDashboardView extends DeesElement {
static demo: () => TemplateResult<1>;
accessor data: IDashboardData;
static styles: import("@design.estate/dees-element").CSSResult[];
render(): TemplateResult;
}

View File

@@ -1,242 +0,0 @@
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
var _, done = false;
for (var i = decorators.length - 1; i >= 0; i--) {
var context = {};
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
if (kind === "accessor") {
if (result === void 0) continue;
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
if (_ = accept(result.get)) descriptor.get = _;
if (_ = accept(result.set)) descriptor.set = _;
if (_ = accept(result.init)) initializers.unshift(_);
}
else if (_ = accept(result)) {
if (kind === "field") initializers.unshift(_);
else descriptor[key] = _;
}
}
if (target) Object.defineProperty(target, contextIn.name, descriptor);
done = true;
};
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
var useValue = arguments.length > 2;
for (var i = 0; i < initializers.length; i++) {
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
}
return useValue ? value : void 0;
};
import { DeesElement, customElement, html, css, cssManager, property, } from '@design.estate/dees-element';
import './sz-status-grid-cluster.js';
import './sz-status-grid-services.js';
import './sz-status-grid-network.js';
import './sz-status-grid-infra.js';
let SzDashboardView = (() => {
let _classDecorators = [customElement('sz-dashboard-view')];
let _classDescriptor;
let _classExtraInitializers = [];
let _classThis;
let _classSuper = DeesElement;
let _data_decorators;
let _data_initializers = [];
let _data_extraInitializers = [];
var SzDashboardView = class extends _classSuper {
static { _classThis = this; }
static {
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
_data_decorators = [property({ type: Object })];
__esDecorate(this, null, _data_decorators, { kind: "accessor", name: "data", static: false, private: false, access: { has: obj => "data" in obj, get: obj => obj.data, set: (obj, value) => { obj.data = value; } }, metadata: _metadata }, _data_initializers, _data_extraInitializers);
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
SzDashboardView = _classThis = _classDescriptor.value;
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
}
static demo = () => html `
<div style="padding: 24px; max-width: 1400px;">
<sz-dashboard-view
.data=${{
cluster: {
totalServices: 7,
running: 7,
stopped: 0,
dockerStatus: 'running',
},
resourceUsage: {
cpu: 0.5,
memoryUsed: '191 MB',
memoryTotal: '429.2 GB',
networkIn: '38.9 KB/s',
networkOut: '1.7 KB/s',
topConsumers: [
{ name: 'test-nginx', memory: '32.1 MB' },
{ name: 'test-v2', memory: '31.7 MB' },
],
},
platformServices: [
{ name: 'MongoDB', status: '1 DB', running: true },
{ name: 'S3 Storage (MinIO)', status: '1 bucket', running: true },
{ name: 'Caddy Reverse Proxy', status: 'Running', running: true },
{ name: 'ClickHouse', status: '1 DB', running: true },
],
traffic: {
requests: 1250,
errors: 15,
errorPercent: 1.2,
avgResponse: 145,
reqPerMin: 21,
status2xx: 85,
status3xx: 5,
status4xx: 8,
status5xx: 2,
},
proxy: {
httpPort: '80',
httpsPort: '443',
httpActive: true,
httpsActive: true,
routeCount: '12',
},
certificates: {
valid: 8,
expiring: 2,
expired: 0,
},
dnsConfigured: true,
acmeConfigured: true,
quickActions: [
{ label: 'Deploy Service', icon: 'plus', primary: true },
{ label: 'View All Services' },
{ label: 'Platform Services' },
{ label: 'Manage Domains' },
],
}}
></sz-dashboard-view>
</div>
`;
#data_accessor_storage = __runInitializers(this, _data_initializers, {
cluster: {
totalServices: 0,
running: 0,
stopped: 0,
dockerStatus: 'stopped',
},
resourceUsage: {
cpu: 0,
memoryUsed: '0 MB',
memoryTotal: '0 GB',
networkIn: '0 KB/s',
networkOut: '0 KB/s',
topConsumers: [],
},
platformServices: [],
traffic: {
requests: 0,
errors: 0,
errorPercent: 0,
avgResponse: 0,
reqPerMin: 0,
status2xx: 0,
status3xx: 0,
status4xx: 0,
status5xx: 0,
},
proxy: {
httpPort: '80',
httpsPort: '443',
httpActive: false,
httpsActive: false,
routeCount: '0',
},
certificates: {
valid: 0,
expiring: 0,
expired: 0,
},
dnsConfigured: false,
acmeConfigured: false,
quickActions: [],
});
get data() { return this.#data_accessor_storage; }
set data(value) { this.#data_accessor_storage = value; }
static styles = [
cssManager.defaultStyles,
css `
:host {
display: block;
}
.dashboard {
display: flex;
flex-direction: column;
gap: 24px;
}
.section-title {
font-size: 18px;
font-weight: 600;
color: ${cssManager.bdTheme('#18181b', '#fafafa')};
margin-bottom: 12px;
}
.section {
display: flex;
flex-direction: column;
}
`,
];
render() {
return html `
<div class="dashboard">
<section class="section">
<h2 class="section-title">Cluster Overview</h2>
<sz-status-grid-cluster
.stats=${this.data.cluster}
></sz-status-grid-cluster>
</section>
<section class="section">
<h2 class="section-title">Services & Resources</h2>
<sz-status-grid-services
.resourceUsage=${this.data.resourceUsage}
.platformServices=${this.data.platformServices}
></sz-status-grid-services>
</section>
<section class="section">
<h2 class="section-title">Network & Traffic</h2>
<sz-status-grid-network
.traffic=${this.data.traffic}
.proxy=${this.data.proxy}
.certificates=${this.data.certificates}
></sz-status-grid-network>
</section>
<section class="section">
<h2 class="section-title">Infrastructure</h2>
<sz-status-grid-infra
?dnsConfigured=${this.data.dnsConfigured}
?acmeConfigured=${this.data.acmeConfigured}
.actions=${this.data.quickActions}
@action-click=${(e) => this.dispatchEvent(new CustomEvent('action-click', { detail: e.detail, bubbles: true, composed: true }))}
></sz-status-grid-infra>
</section>
</div>
`;
}
constructor() {
super(...arguments);
__runInitializers(this, _data_extraInitializers);
}
static {
__runInitializers(_classThis, _classExtraInitializers);
}
};
return SzDashboardView = _classThis;
})();
export { SzDashboardView };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3otZGFzaGJvYXJkLXZpZXcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvZWxlbWVudHMvc3otZGFzaGJvYXJkLXZpZXcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxXQUFXLEVBQ1gsYUFBYSxFQUNiLElBQUksRUFDSixHQUFHLEVBQ0gsVUFBVSxFQUNWLFFBQVEsR0FFVCxNQUFNLDZCQUE2QixDQUFDO0FBRXJDLE9BQU8sNkJBQTZCLENBQUM7QUFDckMsT0FBTyw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sMkJBQTJCLENBQUM7SUE0QnRCLGVBQWU7NEJBRDNCLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQzs7OztzQkFDRSxXQUFXOzs7OytCQUFuQixTQUFRLFdBQVc7Ozs7Z0NBZ0U3QyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDM0IsaUtBQWdCLElBQUksNkJBQUosSUFBSSxtRkEwQ2xCO1lBM0dKLDZLQStLQzs7OztRQTlLUSxNQUFNLENBQUMsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQTs7O2dCQUdqQjtZQUNOLE9BQU8sRUFBRTtnQkFDUCxhQUFhLEVBQUUsQ0FBQztnQkFDaEIsT0FBTyxFQUFFLENBQUM7Z0JBQ1YsT0FBTyxFQUFFLENBQUM7Z0JBQ1YsWUFBWSxFQUFFLFNBQVM7YUFDeEI7WUFDRCxhQUFhLEVBQUU7Z0JBQ2IsR0FBRyxFQUFFLEdBQUc7Z0JBQ1IsVUFBVSxFQUFFLFFBQVE7Z0JBQ3BCLFdBQVcsRUFBRSxVQUFVO2dCQUN2QixTQUFTLEVBQUUsV0FBVztnQkFDdEIsVUFBVSxFQUFFLFVBQVU7Z0JBQ3RCLFlBQVksRUFBRTtvQkFDWixFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRTtvQkFDekMs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

View File

@@ -1,18 +0,0 @@
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
import type { DeesAppui } from '@design.estate/dees-catalog';
import './index.js';
declare global {
interface HTMLElementTagNameMap {
'sz-demo-view-dashboard': SzDemoViewDashboard;
}
}
export declare class SzDemoViewDashboard extends DeesElement {
private appui;
onActivate(context: {
appui: DeesAppui;
viewId: string;
}): Promise<void>;
onDeactivate(): void;
static styles: import("@design.estate/dees-element").CSSResult[];
render(): TemplateResult;
}

View File

@@ -1,184 +0,0 @@
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
var _, done = false;
for (var i = decorators.length - 1; i >= 0; i--) {
var context = {};
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
if (kind === "accessor") {
if (result === void 0) continue;
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
if (_ = accept(result.get)) descriptor.get = _;
if (_ = accept(result.set)) descriptor.set = _;
if (_ = accept(result.init)) initializers.unshift(_);
}
else if (_ = accept(result)) {
if (kind === "field") initializers.unshift(_);
else descriptor[key] = _;
}
}
if (target) Object.defineProperty(target, contextIn.name, descriptor);
done = true;
};
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
var useValue = arguments.length > 2;
for (var i = 0; i < initializers.length; i++) {
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
}
return useValue ? value : void 0;
};
import { DeesElement, customElement, html, css, cssManager, } from '@design.estate/dees-element';
import './index.js';
let SzDemoViewDashboard = (() => {
let _classDecorators = [customElement('sz-demo-view-dashboard')];
let _classDescriptor;
let _classExtraInitializers = [];
let _classThis;
let _classSuper = DeesElement;
var SzDemoViewDashboard = class extends _classSuper {
static { _classThis = this; }
static {
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
SzDemoViewDashboard = _classThis = _classDescriptor.value;
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
}
appui = null;
async onActivate(context) {
this.appui = context.appui;
// Dashboard secondary menu with quick actions
this.appui.setSecondaryMenu({
heading: 'Dashboard',
groups: [
{
name: 'Quick Actions',
items: [
{ type: 'action', key: 'Deploy Service', iconName: 'lucide:Rocket', action: () => { console.log('Deploy service'); } },
{ type: 'action', key: 'Add Domain', iconName: 'lucide:Globe', action: () => { console.log('Add domain'); } },
{ type: 'action', key: 'Create Token', iconName: 'lucide:Key', action: () => { console.log('Create token'); } },
],
},
{
name: 'System',
items: [
{ type: 'action', key: 'Refresh Stats', iconName: 'lucide:RefreshCw', action: () => { console.log('Refresh'); } },
{ type: 'action', key: 'View Logs', iconName: 'lucide:Terminal', action: () => { console.log('View logs'); } },
],
},
],
});
}
onDeactivate() {
// Cleanup if needed
}
static styles = [
cssManager.defaultStyles,
css `
:host {
display: block;
padding: 24px;
height: 100%;
overflow-y: auto;
box-sizing: border-box;
}
.page-header {
margin-bottom: 24px;
}
.page-title {
font-size: 24px;
font-weight: 700;
color: ${cssManager.bdTheme('#18181b', '#fafafa')};
margin: 0 0 8px 0;
}
.page-subtitle {
font-size: 14px;
color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
margin: 0;
}
`,
];
render() {
return html `
<div class="page-header">
<h1 class="page-title">Dashboard</h1>
<p class="page-subtitle">Overview of your onebox infrastructure</p>
</div>
<sz-dashboard-view
.clusterStats=${{
totalServices: 12,
running: 9,
stopped: 3,
dockerStatus: 'running',
}}
.resourceUsage=${{
cpu: 45,
memoryUsed: '6.2 GB',
memoryTotal: '16 GB',
networkIn: '2.5 MB/s',
networkOut: '1.2 MB/s',
topConsumers: [
{ name: 'mongodb', memory: '1.2 GB' },
{ name: 'clickhouse', memory: '980 MB' },
{ name: 'nginx-proxy', memory: '256 MB' },
],
}}
.platformServices=${[
{ name: 'MongoDB', status: 'running', icon: 'database' },
{ name: 'S3 Storage', status: 'running', icon: 'storage' },
{ name: 'ClickHouse', status: 'stopped', icon: 'analytics' },
{ name: 'Redis Cache', status: 'running', icon: 'cache' },
]}
.traffic=${{
requests: 15420,
errors: 23,
errorPercent: 0.15,
avgResponse: 145,
reqPerMin: 856,
status2xx: 14850,
status3xx: 320,
status4xx: 227,
status5xx: 23,
}}
.proxy=${{
httpPort: '80',
httpsPort: '443',
httpActive: true,
httpsActive: true,
routeCount: '24',
}}
.certificates=${{
valid: 18,
expiring: 2,
expired: 0,
}}
.dns=${{
records: 45,
zones: 8,
pendingChanges: 0,
}}
.ssl=${{
activeCerts: 20,
autoRenew: true,
provider: "Let's Encrypt",
}}
@quick-action=${(e) => console.log('Quick action:', e.detail)}
></sz-dashboard-view>
`;
}
static {
__runInitializers(_classThis, _classExtraInitializers);
}
};
return SzDemoViewDashboard = _classThis;
})();
export { SzDemoViewDashboard };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3otZGVtby12aWV3LWRhc2hib2FyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX3dlYi9lbGVtZW50cy9zei1kZW1vLXZpZXctZGFzaGJvYXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUNYLGFBQWEsRUFDYixJQUFJLEVBQ0osR0FBRyxFQUNILFVBQVUsR0FFWCxNQUFNLDZCQUE2QixDQUFDO0FBRXJDLE9BQU8sWUFBWSxDQUFDO0lBU1AsbUJBQW1COzRCQUQvQixhQUFhLENBQUMsd0JBQXdCLENBQUM7Ozs7c0JBQ0MsV0FBVzttQ0FBbkIsU0FBUSxXQUFXOzs7O1lBQXBELDZLQW1JQzs7OztRQWxJUyxLQUFLLEdBQXFCLElBQUksQ0FBQztRQUV2QyxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQTZDO1lBQzVELElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUUzQiw4Q0FBOEM7WUFDOUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDMUIsT0FBTyxFQUFFLFdBQVc7Z0JBQ3BCLE1BQU0sRUFBRTtvQkFDTjt3QkFDRSxJQUFJLEVBQUUsZUFBZTt3QkFDckIsS0FBSyxFQUFFOzRCQUNMLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFOzRCQUN0SCxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLENB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

View File

@@ -1,32 +0,0 @@
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
import type { DeesAppui } from '@design.estate/dees-catalog';
import './index.js';
declare global {
interface HTMLElementTagNameMap {
'sz-demo-view-network': SzDemoViewNetwork;
}
}
export declare class SzDemoViewNetwork extends DeesElement {
private appui;
private accessor currentTab;
onActivate(context: {
appui: DeesAppui;
viewId: string;
}): Promise<void>;
private updateSecondaryMenu;
onDeactivate(): void;
private accessor selectedDomain;
private demoProxyRoutes;
private demoAccessLogs;
private demoDnsRecords;
private demoDomains;
private demoDomainDetail;
private demoCertificate;
private demoDomainDnsRecords;
static styles: import("@design.estate/dees-element").CSSResult[];
render(): TemplateResult;
private renderProxyView;
private renderDnsView;
private renderDomainsView;
private renderDomainDetail;
}

File diff suppressed because one or more lines are too long

View File

@@ -1,22 +0,0 @@
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
import type { DeesAppui } from '@design.estate/dees-catalog';
import './index.js';
declare global {
interface HTMLElementTagNameMap {
'sz-demo-view-registries': SzDemoViewRegistries;
}
}
export declare class SzDemoViewRegistries extends DeesElement {
private appui;
private accessor currentTab;
onActivate(context: {
appui: DeesAppui;
viewId: string;
}): Promise<void>;
private updateSecondaryMenu;
onDeactivate(): void;
private demoOneboxImages;
private demoExternalRegistries;
static styles: import("@design.estate/dees-element").CSSResult[];
render(): TemplateResult;
}

File diff suppressed because one or more lines are too long

View File

@@ -1,32 +0,0 @@
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
import type { DeesAppui } from '@design.estate/dees-catalog';
import './index.js';
declare global {
interface HTMLElementTagNameMap {
'sz-demo-view-services': SzDemoViewServices;
}
}
export declare class SzDemoViewServices extends DeesElement {
private appui;
private accessor currentView;
private accessor selectedService;
private accessor selectedPlatformService;
private demoServices;
private demoPlatformService;
private demoPlatformLogs;
private demoBackupSchedules;
private demoBackups;
static styles: import("@design.estate/dees-element").CSSResult[];
render(): TemplateResult;
private renderListView;
private renderCreateView;
private renderDetailView;
private renderBackupsView;
private renderPlatformDetailView;
onActivate(context: {
appui: DeesAppui;
viewId: string;
}): Promise<void>;
private updateSecondaryMenu;
onDeactivate(): void;
}

File diff suppressed because one or more lines are too long

View File

@@ -1,19 +0,0 @@
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
import type { DeesAppui } from '@design.estate/dees-catalog';
import './index.js';
declare global {
interface HTMLElementTagNameMap {
'sz-demo-view-settings': SzDemoViewSettings;
}
}
export declare class SzDemoViewSettings extends DeesElement {
private appui;
onActivate(context: {
appui: DeesAppui;
viewId: string;
}): Promise<void>;
onDeactivate(): void;
private demoSettings;
static styles: import("@design.estate/dees-element").CSSResult[];
render(): TemplateResult;
}

View File

@@ -1,151 +0,0 @@
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
var _, done = false;
for (var i = decorators.length - 1; i >= 0; i--) {
var context = {};
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
if (kind === "accessor") {
if (result === void 0) continue;
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
if (_ = accept(result.get)) descriptor.get = _;
if (_ = accept(result.set)) descriptor.set = _;
if (_ = accept(result.init)) initializers.unshift(_);
}
else if (_ = accept(result)) {
if (kind === "field") initializers.unshift(_);
else descriptor[key] = _;
}
}
if (target) Object.defineProperty(target, contextIn.name, descriptor);
done = true;
};
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
var useValue = arguments.length > 2;
for (var i = 0; i < initializers.length; i++) {
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
}
return useValue ? value : void 0;
};
import { DeesElement, customElement, html, css, cssManager, } from '@design.estate/dees-element';
import './index.js';
let SzDemoViewSettings = (() => {
let _classDecorators = [customElement('sz-demo-view-settings')];
let _classDescriptor;
let _classExtraInitializers = [];
let _classThis;
let _classSuper = DeesElement;
var SzDemoViewSettings = class extends _classSuper {
static { _classThis = this; }
static {
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
SzDemoViewSettings = _classThis = _classDescriptor.value;
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
}
appui = null;
async onActivate(context) {
this.appui = context.appui;
// Settings doesn't need content tabs, but we set up the secondary menu
this.appui.setSecondaryMenu({
heading: 'Settings',
groups: [
{
name: 'Categories',
items: [
{ key: 'General', iconName: 'lucide:Settings', action: () => { console.log('General settings'); } },
{ key: 'Network', iconName: 'lucide:Network', action: () => { console.log('Network settings'); } },
{ key: 'Security', iconName: 'lucide:Shield', action: () => { console.log('Security settings'); } },
{ key: 'Certificates', iconName: 'lucide:FileBadge', action: () => { console.log('Certificate settings'); } },
],
},
{
name: 'Actions',
items: [
{ type: 'action', key: 'Export Config', iconName: 'lucide:Download', action: () => { console.log('Export config'); } },
{ type: 'action', key: 'Import Config', iconName: 'lucide:Upload', action: () => { console.log('Import config'); } },
{ type: 'action', variant: 'danger', key: 'Reset to Default', iconName: 'lucide:RotateCcw', confirmMessage: 'Are you sure you want to reset all settings to default?', action: () => { console.log('Reset settings'); } },
],
},
],
});
}
onDeactivate() {
// Cleanup if needed
}
demoSettings = {
darkMode: true,
cloudflareToken: '',
cloudflareZoneId: '',
autoRenewCerts: true,
renewalThreshold: 30,
acmeEmail: 'admin@serve.zone',
httpPort: 80,
httpsPort: 443,
forceHttps: true,
};
static styles = [
cssManager.defaultStyles,
css `
:host {
display: block;
padding: 24px;
height: 100%;
overflow-y: auto;
box-sizing: border-box;
}
.page-header {
margin-bottom: 24px;
}
.page-title {
font-size: 24px;
font-weight: 700;
color: ${cssManager.bdTheme('#18181b', '#fafafa')};
margin: 0 0 8px 0;
}
.page-subtitle {
font-size: 14px;
color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
margin: 0;
}
.settings-container {
max-width: 800px;
}
`,
];
render() {
return html `
<div class="page-header">
<h1 class="page-title">Settings</h1>
<p class="page-subtitle">Configure your onebox instance</p>
</div>
<div class="settings-container">
<sz-settings-view
.settings=${this.demoSettings}
currentUser="admin"
@setting-change=${(e) => console.log('Setting change:', e.detail)}
@change-password=${(e) => console.log('Change password:', e.detail)}
@reset=${() => console.log('Reset settings')}
@save=${(e) => console.log('Save settings:', e.detail)}
></sz-settings-view>
</div>
`;
}
static {
__runInitializers(_classThis, _classExtraInitializers);
}
};
return SzDemoViewSettings = _classThis;
})();
export { SzDemoViewSettings };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3otZGVtby12aWV3LXNldHRpbmdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHNfd2ViL2VsZW1lbnRzL3N6LWRlbW8tdmlldy1zZXR0aW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUNMLFdBQVcsRUFDWCxhQUFhLEVBQ2IsSUFBSSxFQUNKLEdBQUcsRUFDSCxVQUFVLEdBRVgsTUFBTSw2QkFBNkIsQ0FBQztBQUVyQyxPQUFPLFlBQVksQ0FBQztJQVNQLGtCQUFrQjs0QkFEOUIsYUFBYSxDQUFDLHVCQUF1QixDQUFDOzs7O3NCQUNDLFdBQVc7a0NBQW5CLFNBQVEsV0FBVzs7OztZQUFuRCw2S0FtR0M7Ozs7UUFsR1MsS0FBSyxHQUFxQixJQUFJLENBQUM7UUFFdkMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUE2QztZQUM1RCxJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFFM0IsdUVBQXVFO1lBQ3ZFLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUM7Z0JBQzFCLE9BQU8sRUFBRSxVQUFVO2dCQUNuQixNQUFNLEVBQUU7b0JBQ047d0JBQ0UsSUFBSSxFQUFFLFlBQVk7d0JBQ2xCLEtBQUssRUFBRTs0QkFDTCxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7NEJBQ25HLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTs0QkFDbEcsRUFBRSxHQUFHLEVBQUUsVUFB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

View File

@@ -1,20 +0,0 @@
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
import type { DeesAppui } from '@design.estate/dees-catalog';
import './index.js';
declare global {
interface HTMLElementTagNameMap {
'sz-demo-view-tokens': SzDemoViewTokens;
}
}
export declare class SzDemoViewTokens extends DeesElement {
private appui;
onActivate(context: {
appui: DeesAppui;
viewId: string;
}): Promise<void>;
onDeactivate(): void;
private demoGlobalTokens;
private demoCiTokens;
static styles: import("@design.estate/dees-element").CSSResult[];
render(): TemplateResult;
}

View File

@@ -1,141 +0,0 @@
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
var _, done = false;
for (var i = decorators.length - 1; i >= 0; i--) {
var context = {};
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
if (kind === "accessor") {
if (result === void 0) continue;
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
if (_ = accept(result.get)) descriptor.get = _;
if (_ = accept(result.set)) descriptor.set = _;
if (_ = accept(result.init)) initializers.unshift(_);
}
else if (_ = accept(result)) {
if (kind === "field") initializers.unshift(_);
else descriptor[key] = _;
}
}
if (target) Object.defineProperty(target, contextIn.name, descriptor);
done = true;
};
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
var useValue = arguments.length > 2;
for (var i = 0; i < initializers.length; i++) {
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
}
return useValue ? value : void 0;
};
import { DeesElement, customElement, html, css, cssManager, } from '@design.estate/dees-element';
import './index.js';
let SzDemoViewTokens = (() => {
let _classDecorators = [customElement('sz-demo-view-tokens')];
let _classDescriptor;
let _classExtraInitializers = [];
let _classThis;
let _classSuper = DeesElement;
var SzDemoViewTokens = class extends _classSuper {
static { _classThis = this; }
static {
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
SzDemoViewTokens = _classThis = _classDescriptor.value;
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
}
appui = null;
async onActivate(context) {
this.appui = context.appui;
// Tokens secondary menu
this.appui.setSecondaryMenu({
heading: 'Tokens',
groups: [
{
name: 'Actions',
items: [
{ type: 'action', key: 'Create Global Token', iconName: 'lucide:Plus', action: () => { console.log('Create global token'); } },
{ type: 'action', key: 'Create CI Token', iconName: 'lucide:GitBranch', action: () => { console.log('Create CI token'); } },
],
},
{
name: 'Token Types',
items: [
{ key: 'Global Tokens', iconName: 'lucide:Key', badge: '3', action: () => { console.log('Filter global'); } },
{ key: 'CI Tokens', iconName: 'lucide:Cpu', badge: '3', action: () => { console.log('Filter CI'); } },
],
},
],
});
}
onDeactivate() {
// Cleanup if needed
}
demoGlobalTokens = [
{ id: '1', name: 'CI/CD Pipeline', type: 'global', createdAt: '2024-01-15', lastUsed: '2024-01-20' },
{ id: '2', name: 'Development', type: 'global', createdAt: '2024-01-10' },
{ id: '3', name: 'Production Deploy', type: 'global', createdAt: '2024-01-05', lastUsed: '2024-01-19' },
];
demoCiTokens = [
{ id: '4', name: 'api-gateway-ci', type: 'ci', service: 'api-gateway', createdAt: '2024-01-18', lastUsed: '2024-01-20' },
{ id: '5', name: 'frontend-ci', type: 'ci', service: 'frontend', createdAt: '2024-01-12', lastUsed: '2024-01-19' },
{ id: '6', name: 'worker-service-ci', type: 'ci', service: 'worker-service', createdAt: '2024-01-08' },
];
static styles = [
cssManager.defaultStyles,
css `
:host {
display: block;
padding: 24px;
height: 100%;
overflow-y: auto;
box-sizing: border-box;
}
.page-header {
margin-bottom: 24px;
}
.page-title {
font-size: 24px;
font-weight: 700;
color: ${cssManager.bdTheme('#18181b', '#fafafa')};
margin: 0 0 8px 0;
}
.page-subtitle {
font-size: 14px;
color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
margin: 0;
}
`,
];
render() {
return html `
<div class="page-header">
<h1 class="page-title">Tokens</h1>
<p class="page-subtitle">Manage registry access tokens for CI/CD pipelines</p>
</div>
<sz-tokens-view
.globalTokens=${this.demoGlobalTokens}
.ciTokens=${this.demoCiTokens}
@create=${(e) => console.log('Create token:', e.detail)}
@copy=${(e) => console.log('Copy token:', e.detail)}
@regenerate=${(e) => console.log('Regenerate token:', e.detail)}
@delete=${(e) => console.log('Delete token:', e.detail)}
></sz-tokens-view>
`;
}
static {
__runInitializers(_classThis, _classExtraInitializers);
}
};
return SzDemoViewTokens = _classThis;
})();
export { SzDemoViewTokens };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3otZGVtby12aWV3LXRva2Vucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX3dlYi9lbGVtZW50cy9zei1kZW1vLXZpZXctdG9rZW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUNYLGFBQWEsRUFDYixJQUFJLEVBQ0osR0FBRyxFQUNILFVBQVUsR0FFWCxNQUFNLDZCQUE2QixDQUFDO0FBRXJDLE9BQU8sWUFBWSxDQUFDO0lBU1AsZ0JBQWdCOzRCQUQ1QixhQUFhLENBQUMscUJBQXFCLENBQUM7Ozs7c0JBQ0MsV0FBVztnQ0FBbkIsU0FBUSxXQUFXOzs7O1lBQWpELDZLQTBGQzs7OztRQXpGUyxLQUFLLEdBQXFCLElBQUksQ0FBQztRQUV2QyxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQTZDO1lBQzVELElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUUzQix3QkFBd0I7WUFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDMUIsT0FBTyxFQUFFLFFBQVE7Z0JBQ2pCLE1BQU0sRUFBRTtvQkFDTjt3QkFDRSxJQUFJLEVBQUUsU0FBUzt3QkFDZixLQUFLLEVBQUU7NEJBQ0wsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxxQkFBcUIsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7NEJBQzlILEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FB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

View File

@@ -1,13 +0,0 @@
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
declare global {
interface HTMLElementTagNameMap {
'sz-dns-ssl-card': SzDnsSslCard;
}
}
export declare class SzDnsSslCard extends DeesElement {
static demo: () => TemplateResult<1>;
accessor dnsConfigured: boolean;
accessor acmeConfigured: boolean;
static styles: import("@design.estate/dees-element").CSSResult[];
render(): TemplateResult;
}

View File

@@ -1,180 +0,0 @@
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
var _, done = false;
for (var i = decorators.length - 1; i >= 0; i--) {
var context = {};
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
if (kind === "accessor") {
if (result === void 0) continue;
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
if (_ = accept(result.get)) descriptor.get = _;
if (_ = accept(result.set)) descriptor.set = _;
if (_ = accept(result.init)) initializers.unshift(_);
}
else if (_ = accept(result)) {
if (kind === "field") initializers.unshift(_);
else descriptor[key] = _;
}
}
if (target) Object.defineProperty(target, contextIn.name, descriptor);
done = true;
};
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
var useValue = arguments.length > 2;
for (var i = 0; i < initializers.length; i++) {
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
}
return useValue ? value : void 0;
};
import { DeesElement, customElement, html, css, cssManager, property, } from '@design.estate/dees-element';
let SzDnsSslCard = (() => {
let _classDecorators = [customElement('sz-dns-ssl-card')];
let _classDescriptor;
let _classExtraInitializers = [];
let _classThis;
let _classSuper = DeesElement;
let _dnsConfigured_decorators;
let _dnsConfigured_initializers = [];
let _dnsConfigured_extraInitializers = [];
let _acmeConfigured_decorators;
let _acmeConfigured_initializers = [];
let _acmeConfigured_extraInitializers = [];
var SzDnsSslCard = class extends _classSuper {
static { _classThis = this; }
static {
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
_dnsConfigured_decorators = [property({ type: Boolean })];
_acmeConfigured_decorators = [property({ type: Boolean })];
__esDecorate(this, null, _dnsConfigured_decorators, { kind: "accessor", name: "dnsConfigured", static: false, private: false, access: { has: obj => "dnsConfigured" in obj, get: obj => obj.dnsConfigured, set: (obj, value) => { obj.dnsConfigured = value; } }, metadata: _metadata }, _dnsConfigured_initializers, _dnsConfigured_extraInitializers);
__esDecorate(this, null, _acmeConfigured_decorators, { kind: "accessor", name: "acmeConfigured", static: false, private: false, access: { has: obj => "acmeConfigured" in obj, get: obj => obj.acmeConfigured, set: (obj, value) => { obj.acmeConfigured = value; } }, metadata: _metadata }, _acmeConfigured_initializers, _acmeConfigured_extraInitializers);
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
SzDnsSslCard = _classThis = _classDescriptor.value;
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
}
static demo = () => html `
<div style="padding: 24px; max-width: 400px;">
<sz-dns-ssl-card
dnsConfigured
acmeConfigured
></sz-dns-ssl-card>
</div>
`;
#dnsConfigured_accessor_storage = __runInitializers(this, _dnsConfigured_initializers, false);
get dnsConfigured() { return this.#dnsConfigured_accessor_storage; }
set dnsConfigured(value) { this.#dnsConfigured_accessor_storage = value; }
#acmeConfigured_accessor_storage = (__runInitializers(this, _dnsConfigured_extraInitializers), __runInitializers(this, _acmeConfigured_initializers, false));
get acmeConfigured() { return this.#acmeConfigured_accessor_storage; }
set acmeConfigured(value) { this.#acmeConfigured_accessor_storage = value; }
static styles = [
cssManager.defaultStyles,
css `
:host {
display: block;
height: 100%;
}
.card {
background: ${cssManager.bdTheme('#ffffff', '#09090b')};
border: 1px solid ${cssManager.bdTheme('#e4e4e7', '#27272a')};
border-radius: 8px;
padding: 20px;
height: 100%;
box-sizing: border-box;
}
.header {
margin-bottom: 16px;
}
.title {
font-size: 16px;
font-weight: 600;
color: ${cssManager.bdTheme('#18181b', '#fafafa')};
}
.subtitle {
font-size: 13px;
color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
margin-top: 2px;
}
.items {
display: flex;
flex-direction: column;
gap: 10px;
}
.item {
display: flex;
justify-content: space-between;
align-items: center;
}
.item-label {
font-size: 14px;
color: ${cssManager.bdTheme('#18181b', '#fafafa')};
}
.badge {
display: inline-flex;
align-items: center;
padding: 2px 10px;
border-radius: 9999px;
font-size: 12px;
font-weight: 500;
}
.badge.configured {
background: ${cssManager.bdTheme('#dbeafe', 'rgba(59, 130, 246, 0.2)')};
color: ${cssManager.bdTheme('#2563eb', '#60a5fa')};
}
.badge.not-configured {
background: ${cssManager.bdTheme('#f4f4f5', '#27272a')};
color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
}
`,
];
render() {
return html `
<div class="card">
<div class="header">
<div class="title">DNS & SSL</div>
<div class="subtitle">Configuration status</div>
</div>
<div class="items">
<div class="item">
<span class="item-label">Cloudflare DNS</span>
<span class="badge ${this.dnsConfigured ? 'configured' : 'not-configured'}">
${this.dnsConfigured ? 'Configured' : 'Not configured'}
</span>
</div>
<div class="item">
<span class="item-label">ACME (Let's Encrypt)</span>
<span class="badge ${this.acmeConfigured ? 'configured' : 'not-configured'}">
${this.acmeConfigured ? 'Configured' : 'Not configured'}
</span>
</div>
</div>
</div>
`;
}
constructor() {
super(...arguments);
__runInitializers(this, _acmeConfigured_extraInitializers);
}
static {
__runInitializers(_classThis, _classExtraInitializers);
}
};
return SzDnsSslCard = _classThis;
})();
export { SzDnsSslCard };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3otZG5zLXNzbC1jYXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHNfd2ViL2VsZW1lbnRzL3N6LWRucy1zc2wtY2FyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUNMLFdBQVcsRUFDWCxhQUFhLEVBQ2IsSUFBSSxFQUNKLEdBQUcsRUFDSCxVQUFVLEVBQ1YsUUFBUSxHQUVULE1BQU0sNkJBQTZCLENBQUM7SUFTeEIsWUFBWTs0QkFEeEIsYUFBYSxDQUFDLGlCQUFpQixDQUFDOzs7O3NCQUNDLFdBQVc7Ozs7Ozs7NEJBQW5CLFNBQVEsV0FBVzs7Ozt5Q0FVMUMsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDOzBDQUczQixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFGNUIsNExBQWdCLGFBQWEsNkJBQWIsYUFBYSxxR0FBa0I7WUFHL0MsK0xBQWdCLGNBQWMsNkJBQWQsY0FBYyx1R0FBa0I7WUFkbEQsNktBZ0hDOzs7O1FBL0dRLE1BQU0sQ0FBQyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFBOzs7Ozs7O0dBTzlCLENBQUM7UUFHRix1RkFBeUMsS0FBSyxFQUFDO1FBQS9DLElBQWdCLGFBQWEsbURBQWtCO1FBQS9DLElBQWdCLGFBQWEseURBQWtCO1FBRy9DLHFKQUEwQyxLQUFLLEdBQUM7UUFBaEQsSUFBZ0IsY0FBYyxvREFBa0I7UUFBaEQsSUFBZ0IsY0FBYywwREFBa0I7UUFFekMsTUFBTSxDQUFDLE1BQU0sR0FBRztZQUNyQixVQUFVLENBQUMsYUFBYTtZQUN4QixHQUFHLENBQUE7Ozs7Ozs7c0JBT2UsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDOzRCQUNsQyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7Ozs7Ozs7Ozs7Ozs7O2lCQWNuRCxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7Ozs7O2lCQUt4QyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7OztpQkFrQnhDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQzs7Ozs7Ozs7Ozs7OztzQkFhbkMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUseUJBQXlCLENBQUM7aUJBQzdELFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQzs7OztzQkFJbkMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDO2lCQUM3QyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7O0tBRXBEO1NBQ0YsQ0FBQztRQUVLLE1BQU07WUFDWCxPQUFPLElBQUksQ0FBQTs7Ozs7Ozs7OztpQ0FVa0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0I7Z0JBQ3JFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsZ0JBQWdCOzs7OztpQ0FLbkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0I7Z0JBQ3RFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsZ0JBQWdCOzs7OztLQUtoRSxDQUFDO1FBQ0osQ0FBQzs7Ozs7O1lBL0dVLHVEQUFZOzs7OztTQUFaLFlBQVkifQ==

View File

@@ -1,48 +0,0 @@
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
declare global {
interface HTMLElementTagNameMap {
'sz-domain-detail-view': SzDomainDetailView;
}
}
export interface IDomainDetail {
id: string;
name: string;
status: 'active' | 'pending' | 'error';
verified: boolean;
createdAt: string;
proxyRoutes?: string[];
}
export interface ICertificateDetail {
id: string;
domain: string;
issuer: string;
validFrom: string;
validUntil: string;
daysRemaining: number;
status: 'valid' | 'expiring' | 'expired';
autoRenew: boolean;
chain?: string[];
}
export interface IDnsRecordDetail {
id: string;
type: 'A' | 'AAAA' | 'CNAME' | 'MX' | 'TXT' | 'NS' | 'SRV';
name: string;
value: string;
ttl: number;
priority?: number;
}
export declare class SzDomainDetailView extends DeesElement {
static demo: () => TemplateResult<1>;
accessor domain: IDomainDetail | null;
accessor certificate: ICertificateDetail | null;
accessor dnsRecords: IDnsRecordDetail[];
accessor actionLoading: boolean;
static styles: import("@design.estate/dees-element").CSSResult[];
render(): TemplateResult;
private handleVerify;
private handleDelete;
private handleRenewCertificate;
private handleAddDnsRecord;
private handleEditDnsRecord;
private handleDeleteDnsRecord;
}

File diff suppressed because one or more lines are too long

View File

@@ -1,18 +0,0 @@
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
declare global {
interface HTMLElementTagNameMap {
'sz-login-view': SzLoginView;
}
}
export declare class SzLoginView extends DeesElement {
static demo: () => TemplateResult<1>;
accessor loading: boolean;
accessor error: string;
accessor title: string;
accessor subtitle: string;
static styles: import("@design.estate/dees-element").CSSResult[];
render(): TemplateResult;
private handleSubmit;
clearForm(): void;
focusUsername(): void;
}

File diff suppressed because one or more lines are too long

View File

@@ -1,20 +0,0 @@
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
declare global {
interface HTMLElementTagNameMap {
'sz-network-dns-view': SzNetworkDnsView;
}
}
export interface IDnsRecord {
domain: string;
type: 'A' | 'AAAA' | 'CNAME' | 'MX' | 'TXT';
value: string;
id?: string;
}
export declare class SzNetworkDnsView extends DeesElement {
static demo: () => TemplateResult<1>;
accessor records: IDnsRecord[];
static styles: import("@design.estate/dees-element").CSSResult[];
render(): TemplateResult;
private handleSync;
private handleDelete;
}

View File

@@ -1,244 +0,0 @@
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
var _, done = false;
for (var i = decorators.length - 1; i >= 0; i--) {
var context = {};
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
if (kind === "accessor") {
if (result === void 0) continue;
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
if (_ = accept(result.get)) descriptor.get = _;
if (_ = accept(result.set)) descriptor.set = _;
if (_ = accept(result.init)) initializers.unshift(_);
}
else if (_ = accept(result)) {
if (kind === "field") initializers.unshift(_);
else descriptor[key] = _;
}
}
if (target) Object.defineProperty(target, contextIn.name, descriptor);
done = true;
};
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
var useValue = arguments.length > 2;
for (var i = 0; i < initializers.length; i++) {
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
}
return useValue ? value : void 0;
};
import { DeesElement, customElement, html, css, cssManager, property, } from '@design.estate/dees-element';
let SzNetworkDnsView = (() => {
let _classDecorators = [customElement('sz-network-dns-view')];
let _classDescriptor;
let _classExtraInitializers = [];
let _classThis;
let _classSuper = DeesElement;
let _records_decorators;
let _records_initializers = [];
let _records_extraInitializers = [];
var SzNetworkDnsView = class extends _classSuper {
static { _classThis = this; }
static {
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
_records_decorators = [property({ type: Array })];
__esDecorate(this, null, _records_decorators, { kind: "accessor", name: "records", static: false, private: false, access: { has: obj => "records" in obj, get: obj => obj.records, set: (obj, value) => { obj.records = value; } }, metadata: _metadata }, _records_initializers, _records_extraInitializers);
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
SzNetworkDnsView = _classThis = _classDescriptor.value;
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
}
static demo = () => html `
<div style="padding: 24px; max-width: 1000px;">
<sz-network-dns-view
.records=${[
{ domain: 'pr.task.vc', type: 'A', value: '195.201.98.232' },
{ domain: 'outline.task.vc', type: 'A', value: '195.201.98.232' },
{ domain: 'ns1.task.vc', type: 'A', value: '212.95.99.130' },
{ domain: 'bleu.de', type: 'A', value: '212.95.99.130' },
{ domain: 'mail.bleu.de', type: 'MX', value: '10 mail.bleu.de' },
]}
></sz-network-dns-view>
</div>
`;
#records_accessor_storage = __runInitializers(this, _records_initializers, []);
get records() { return this.#records_accessor_storage; }
set records(value) { this.#records_accessor_storage = value; }
static styles = [
cssManager.defaultStyles,
css `
:host {
display: block;
}
.header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 16px;
}
.description {
font-size: 14px;
color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
}
.sync-button {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 8px 16px;
background: ${cssManager.bdTheme('#ffffff', '#09090b')};
border: 1px solid ${cssManager.bdTheme('#e4e4e7', '#27272a')};
border-radius: 6px;
font-size: 14px;
font-weight: 500;
color: ${cssManager.bdTheme('#18181b', '#fafafa')};
cursor: pointer;
transition: all 200ms ease;
}
.sync-button:hover {
background: ${cssManager.bdTheme('#f4f4f5', '#18181b')};
border-color: ${cssManager.bdTheme('#d4d4d8', '#3f3f46')};
}
.table-container {
background: ${cssManager.bdTheme('#ffffff', '#09090b')};
border: 1px solid ${cssManager.bdTheme('#e4e4e7', '#27272a')};
border-radius: 8px;
overflow: hidden;
}
.table-header {
display: grid;
grid-template-columns: 2fr 80px 2fr 100px;
gap: 16px;
padding: 12px 16px;
background: ${cssManager.bdTheme('#f4f4f5', '#18181b')};
border-bottom: 1px solid ${cssManager.bdTheme('#e4e4e7', '#27272a')};
font-size: 12px;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.05em;
color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
}
.table-row {
display: grid;
grid-template-columns: 2fr 80px 2fr 100px;
gap: 16px;
padding: 12px 16px;
border-bottom: 1px solid ${cssManager.bdTheme('#f4f4f5', '#27272a')};
font-size: 14px;
color: ${cssManager.bdTheme('#18181b', '#fafafa')};
transition: background 200ms ease;
}
.table-row:last-child {
border-bottom: none;
}
.table-row:hover {
background: ${cssManager.bdTheme('#f4f4f5', '#18181b')};
}
.domain {
font-weight: 500;
}
.type-badge {
display: inline-flex;
align-items: center;
justify-content: center;
padding: 2px 8px;
background: ${cssManager.bdTheme('#dbeafe', 'rgba(59, 130, 246, 0.2)')};
color: ${cssManager.bdTheme('#2563eb', '#60a5fa')};
border-radius: 4px;
font-size: 12px;
font-weight: 600;
}
.value {
font-family: monospace;
color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
}
.delete-button {
padding: 6px 12px;
background: transparent;
border: 1px solid ${cssManager.bdTheme('#fee2e2', 'rgba(239, 68, 68, 0.3)')};
border-radius: 4px;
font-size: 13px;
color: ${cssManager.bdTheme('#dc2626', '#ef4444')};
cursor: pointer;
transition: all 200ms ease;
}
.delete-button:hover {
background: ${cssManager.bdTheme('#fee2e2', 'rgba(239, 68, 68, 0.2)')};
}
.empty-state {
padding: 48px 24px;
text-align: center;
color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
}
`,
];
render() {
return html `
<div class="header">
<span class="description">Manage DNS records synced with Cloudflare</span>
<button class="sync-button" @click=${() => this.handleSync()}>
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<path d="M21 12a9 9 0 0 1-9 9m9-9a9 9 0 0 0-9-9m9 9H3m9 9a9 9 0 0 1-9-9m9 9c1.66 0 3-4.03 3-9s-1.34-9-3-9m0 18c-1.66 0-3-4.03-3-9s1.34-9 3-9"/>
</svg>
Sync Cloudflare
</button>
</div>
<div class="table-container">
<div class="table-header">
<span>Domain</span>
<span>Type</span>
<span>Value</span>
<span>Actions</span>
</div>
${this.records.length > 0 ? this.records.map(record => html `
<div class="table-row">
<span class="domain">${record.domain}</span>
<span><span class="type-badge">${record.type}</span></span>
<span class="value">${record.value}</span>
<span>
<button class="delete-button" @click=${() => this.handleDelete(record)}>Delete</button>
</span>
</div>
`) : html `
<div class="empty-state">No DNS records found</div>
`}
</div>
`;
}
handleSync() {
this.dispatchEvent(new CustomEvent('sync', { bubbles: true, composed: true }));
}
handleDelete(record) {
this.dispatchEvent(new CustomEvent('delete', { detail: record, bubbles: true, composed: true }));
}
constructor() {
super(...arguments);
__runInitializers(this, _records_extraInitializers);
}
static {
__runInitializers(_classThis, _classExtraInitializers);
}
};
return SzNetworkDnsView = _classThis;
})();
export { SzNetworkDnsView };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3otbmV0d29yay1kbnMtdmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX3dlYi9lbGVtZW50cy9zei1uZXR3b3JrLWRucy12aWV3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUNYLGFBQWEsRUFDYixJQUFJLEVBQ0osR0FBRyxFQUNILFVBQVUsRUFDVixRQUFRLEdBRVQsTUFBTSw2QkFBNkIsQ0FBQztJQWdCeEIsZ0JBQWdCOzRCQUQ1QixhQUFhLENBQUMscUJBQXFCLENBQUM7Ozs7c0JBQ0MsV0FBVzs7OztnQ0FBbkIsU0FBUSxXQUFXOzs7O21DQWU5QyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDMUIsMEtBQWdCLE9BQU8sNkJBQVAsT0FBTyx5RkFBb0I7WUFoQjdDLDZLQXVMQzs7OztRQXRMUSxNQUFNLENBQUMsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQTs7O21CQUdkO1lBQ1QsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFO1lBQzVELEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFO1lBQ2pFLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUU7WUFDNUQsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRTtZQUN4RCxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUU7U0FDakU7OztHQUdOLENBQUM7UUFHRiwyRUFBd0Ms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

View File

@@ -1,28 +0,0 @@
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
import './sz-stat-card.js';
declare global {
interface HTMLElementTagNameMap {
'sz-network-domains-view': SzNetworkDomainsView;
}
}
export interface IDomainRecord {
domain: string;
provider: string;
serviceCount: number;
certificateStatus: 'valid' | 'expiring' | 'expired' | 'pending';
expiresIn?: string;
}
export declare class SzNetworkDomainsView extends DeesElement {
static demo: () => TemplateResult<1>;
accessor domains: IDomainRecord[];
accessor stats: {
total: number;
valid: number;
expiring: number;
expired: number;
};
static styles: import("@design.estate/dees-element").CSSResult[];
render(): TemplateResult;
private handleSync;
private handleView;
}

File diff suppressed because one or more lines are too long

View File

@@ -1,39 +0,0 @@
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
import './sz-stat-card.js';
declare global {
interface HTMLElementTagNameMap {
'sz-network-proxy-view': SzNetworkProxyView;
}
}
export interface ITrafficTarget {
type: 'service' | 'registry' | 'platform';
name: string;
domain: string | null;
target: string;
status: 'running' | 'stopped';
}
export interface IAccessLogEntry {
timestamp: string;
method: string;
path: string;
status: number;
duration: number;
ip: string;
}
export declare class SzNetworkProxyView extends DeesElement {
static demo: () => TemplateResult<1>;
accessor proxyStatus: 'running' | 'stopped';
accessor routeCount: string;
accessor certificateCount: string;
accessor targetCount: string;
accessor targets: ITrafficTarget[];
accessor logs: IAccessLogEntry[];
accessor streaming: boolean;
static styles: import("@design.estate/dees-element").CSSResult[];
render(): TemplateResult;
private getStatusClass;
private handleRefresh;
private handleTargetClick;
private toggleStreaming;
private handleClearLogs;
}

File diff suppressed because one or more lines are too long

View File

@@ -1,49 +0,0 @@
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
declare global {
interface HTMLElementTagNameMap {
'sz-platform-service-detail-view': SzPlatformServiceDetailView;
}
}
export interface IPlatformServiceDetail {
id: string;
name: string;
type: 'mongodb' | 'minio' | 'clickhouse' | 'redis';
status: 'running' | 'stopped' | 'error';
version: string;
host: string;
port: number;
credentials?: {
username?: string;
password?: string;
accessKey?: string;
secretKey?: string;
};
config: Record<string, any>;
metrics?: {
cpu: number;
memory: number;
storage: number;
connections?: number;
};
}
export interface IPlatformLogEntry {
timestamp: string;
level: 'info' | 'warn' | 'error' | 'debug';
message: string;
}
export declare class SzPlatformServiceDetailView extends DeesElement {
static demo: () => TemplateResult<1>;
accessor service: IPlatformServiceDetail | null;
accessor logs: IPlatformLogEntry[];
accessor actionLoading: boolean;
static styles: import("@design.estate/dees-element").CSSResult[];
render(): TemplateResult;
private renderServiceIcon;
private getProgressClass;
private formatConfigKey;
private formatConfigValue;
private copyToClipboard;
private handleStart;
private handleStop;
private handleRestart;
}

File diff suppressed because one or more lines are too long

View File

@@ -1,19 +0,0 @@
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
declare global {
interface HTMLElementTagNameMap {
'sz-platform-services-card': SzPlatformServicesCard;
}
}
export interface IPlatformService {
name: string;
status: string;
running: boolean;
url?: string;
}
export declare class SzPlatformServicesCard extends DeesElement {
static demo: () => TemplateResult<1>;
accessor services: IPlatformService[];
static styles: import("@design.estate/dees-element").CSSResult[];
render(): TemplateResult;
private handleServiceClick;
}

View File

@@ -1,196 +0,0 @@
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
var _, done = false;
for (var i = decorators.length - 1; i >= 0; i--) {
var context = {};
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
if (kind === "accessor") {
if (result === void 0) continue;
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
if (_ = accept(result.get)) descriptor.get = _;
if (_ = accept(result.set)) descriptor.set = _;
if (_ = accept(result.init)) initializers.unshift(_);
}
else if (_ = accept(result)) {
if (kind === "field") initializers.unshift(_);
else descriptor[key] = _;
}
}
if (target) Object.defineProperty(target, contextIn.name, descriptor);
done = true;
};
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
var useValue = arguments.length > 2;
for (var i = 0; i < initializers.length; i++) {
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
}
return useValue ? value : void 0;
};
import { DeesElement, customElement, html, css, cssManager, property, } from '@design.estate/dees-element';
let SzPlatformServicesCard = (() => {
let _classDecorators = [customElement('sz-platform-services-card')];
let _classDescriptor;
let _classExtraInitializers = [];
let _classThis;
let _classSuper = DeesElement;
let _services_decorators;
let _services_initializers = [];
let _services_extraInitializers = [];
var SzPlatformServicesCard = class extends _classSuper {
static { _classThis = this; }
static {
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
_services_decorators = [property({ type: Array })];
__esDecorate(this, null, _services_decorators, { kind: "accessor", name: "services", static: false, private: false, access: { has: obj => "services" in obj, get: obj => obj.services, set: (obj, value) => { obj.services = value; } }, metadata: _metadata }, _services_initializers, _services_extraInitializers);
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
SzPlatformServicesCard = _classThis = _classDescriptor.value;
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
}
static demo = () => html `
<div style="padding: 24px; max-width: 500px;">
<sz-platform-services-card
.services=${[
{ name: 'MongoDB', status: '1 DB', running: true },
{ name: 'S3 Storage (MinIO)', status: '1 bucket', running: true },
{ name: 'Caddy Reverse Proxy', status: 'Running', running: true },
{ name: 'ClickHouse', status: '1 DB', running: true },
]}
></sz-platform-services-card>
</div>
`;
#services_accessor_storage = __runInitializers(this, _services_initializers, []);
get services() { return this.#services_accessor_storage; }
set services(value) { this.#services_accessor_storage = value; }
static styles = [
cssManager.defaultStyles,
css `
:host {
display: block;
height: 100%;
}
.card {
background: ${cssManager.bdTheme('#ffffff', '#09090b')};
border: 1px solid ${cssManager.bdTheme('#e4e4e7', '#27272a')};
border-radius: 8px;
padding: 20px;
height: 100%;
box-sizing: border-box;
}
.header {
margin-bottom: 16px;
}
.title {
font-size: 16px;
font-weight: 600;
color: ${cssManager.bdTheme('#18181b', '#fafafa')};
}
.subtitle {
font-size: 13px;
color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
margin-top: 2px;
}
.services-list {
display: flex;
flex-direction: column;
gap: 12px;
}
.service-item {
display: flex;
justify-content: space-between;
align-items: center;
padding: 8px 0;
cursor: pointer;
transition: opacity 200ms ease;
}
.service-item:hover {
opacity: 0.8;
}
.service-left {
display: flex;
align-items: center;
gap: 10px;
}
.status-dot {
width: 8px;
height: 8px;
border-radius: 50%;
flex-shrink: 0;
}
.status-dot.running {
background: ${cssManager.bdTheme('#22c55e', '#22c55e')};
box-shadow: 0 0 6px ${cssManager.bdTheme('rgba(34, 197, 94, 0.4)', 'rgba(34, 197, 94, 0.4)')};
}
.status-dot.stopped {
background: ${cssManager.bdTheme('#ef4444', '#ef4444')};
}
.service-name {
font-size: 14px;
font-weight: 500;
color: ${cssManager.bdTheme('#18181b', '#fafafa')};
}
.service-status {
font-size: 13px;
color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
}
`,
];
render() {
return html `
<div class="card">
<div class="header">
<div class="title">Platform Services</div>
<div class="subtitle">Infrastructure status</div>
</div>
<div class="services-list">
${this.services.map((service) => html `
<div class="service-item" @click=${() => this.handleServiceClick(service)}>
<div class="service-left">
<div class="status-dot ${service.running ? 'running' : 'stopped'}"></div>
<span class="service-name">${service.name}</span>
</div>
<span class="service-status">${service.status}</span>
</div>
`)}
</div>
</div>
`;
}
handleServiceClick(service) {
this.dispatchEvent(new CustomEvent('service-click', {
detail: service,
bubbles: true,
composed: true,
}));
}
constructor() {
super(...arguments);
__runInitializers(this, _services_extraInitializers);
}
static {
__runInitializers(_classThis, _classExtraInitializers);
}
};
return SzPlatformServicesCard = _classThis;
})();
export { SzPlatformServicesCard };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3otcGxhdGZvcm0tc2VydmljZXMtY2FyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX3dlYi9lbGVtZW50cy9zei1wbGF0Zm9ybS1zZXJ2aWNlcy1jYXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUNYLGFBQWEsRUFDYixJQUFJLEVBQ0osR0FBRyxFQUNILFVBQVUsRUFDVixRQUFRLEdBRVQsTUFBTSw2QkFBNkIsQ0FBQztJQWdCeEIsc0JBQXNCOzRCQURsQyxhQUFhLENBQUMsMkJBQTJCLENBQUM7Ozs7c0JBQ0MsV0FBVzs7OztzQ0FBbkIsU0FBUSxXQUFXOzs7O29DQWNwRCxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDMUIsNktBQWdCLFFBQVEsNkJBQVIsUUFBUSwyRkFBMEI7WUFmcEQsNktBMElDOzs7O1FBeklRLE1BQU0sQ0FBQyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFBOzs7b0JBR2I7WUFDVixFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFO1lBQ2xELEVBQUUsSUFBSSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRTtZQUNqRSxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7WUFDakUsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRTtTQUN0RDs7O0dBR04sQ0FBQztRQUdGLDZFQUErQyxFQUFFLEVBQUM7UUFBbEQsSUFBZ0IsUUFBUSw4Q0FBMEI7UUFBbEQsSUFBZ0IsUUFBUSxvREFBMEI7UUFFM0MsTUFBTSxDQUFDLE1BQU0sR0FBRztZQUNyQixVQUFVLENBQUMsYUFBYTtZQUN4QixHQUFHLENBQUE7Ozs7Ozs7c0JBT2UsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDOzRCQUNsQyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7Ozs7Ozs7Ozs7Ozs7O2lCQWNuRCxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7Ozs7O2lCQUt4QyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7c0JBcUNuQyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7OEJBQ2hDLFVBQVUsQ0FBQyxPQUFPLENBQUMsd0JBQXdCLEVBQUUsd0JBQXdCLENBQUM7Ozs7c0JBSTlFLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQzs7Ozs7O2lCQU03QyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7Ozs7O2lCQUt4QyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7O0tBRXBEO1NBQ0YsQ0FBQztRQUVLLE1BQU07WUFDWCxPQUFPLElBQUksQ0FBQTs7Ozs7Ozs7WUFRSCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FDakIsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQTtpREFDb0IsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQzs7MkNBRTVDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUzsrQ0FDbkMsT0FBTyxDQUFDLElBQUk7OytDQUVaLE9BQU8sQ0FBQyxNQUFNOzthQUVoRCxDQUNGOzs7S0FHTixDQUFDO1FBQ0osQ0FBQztRQUVPLGtCQUFrQixDQUFDLE9BQXlCO1lBQ2xELElBQUksQ0FBQyxhQUFhLENBQ2hCLElBQUksV0FBVyxDQUFDLGVBQWUsRUFBRTtnQkFDL0IsTUFBTSxFQUFFLE9BQU87Z0JBQ2YsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsUUFBUSxFQUFFLElBQUk7YUFDZixDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUM7Ozs7OztZQXpJVSx1REFBc0I7Ozs7O1NBQXRCLHNCQUFzQiJ9

View File

@@ -1,19 +0,0 @@
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
declare global {
interface HTMLElementTagNameMap {
'sz-quick-actions-card': SzQuickActionsCard;
}
}
export interface IQuickAction {
label: string;
icon?: string;
primary?: boolean;
url?: string;
}
export declare class SzQuickActionsCard extends DeesElement {
static demo: () => TemplateResult<1>;
accessor actions: IQuickAction[];
static styles: import("@design.estate/dees-element").CSSResult[];
render(): TemplateResult;
private handleActionClick;
}

View File

@@ -1,194 +0,0 @@
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
var _, done = false;
for (var i = decorators.length - 1; i >= 0; i--) {
var context = {};
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
if (kind === "accessor") {
if (result === void 0) continue;
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
if (_ = accept(result.get)) descriptor.get = _;
if (_ = accept(result.set)) descriptor.set = _;
if (_ = accept(result.init)) initializers.unshift(_);
}
else if (_ = accept(result)) {
if (kind === "field") initializers.unshift(_);
else descriptor[key] = _;
}
}
if (target) Object.defineProperty(target, contextIn.name, descriptor);
done = true;
};
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
var useValue = arguments.length > 2;
for (var i = 0; i < initializers.length; i++) {
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
}
return useValue ? value : void 0;
};
import { DeesElement, customElement, html, css, cssManager, property, } from '@design.estate/dees-element';
let SzQuickActionsCard = (() => {
let _classDecorators = [customElement('sz-quick-actions-card')];
let _classDescriptor;
let _classExtraInitializers = [];
let _classThis;
let _classSuper = DeesElement;
let _actions_decorators;
let _actions_initializers = [];
let _actions_extraInitializers = [];
var SzQuickActionsCard = class extends _classSuper {
static { _classThis = this; }
static {
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
_actions_decorators = [property({ type: Array })];
__esDecorate(this, null, _actions_decorators, { kind: "accessor", name: "actions", static: false, private: false, access: { has: obj => "actions" in obj, get: obj => obj.actions, set: (obj, value) => { obj.actions = value; } }, metadata: _metadata }, _actions_initializers, _actions_extraInitializers);
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
SzQuickActionsCard = _classThis = _classDescriptor.value;
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
}
static demo = () => html `
<div style="padding: 24px; max-width: 800px;">
<sz-quick-actions-card
.actions=${[
{ label: 'Deploy Service', icon: 'plus', primary: true },
{ label: 'View All Services' },
{ label: 'Platform Services' },
{ label: 'Manage Domains' },
]}
></sz-quick-actions-card>
</div>
`;
#actions_accessor_storage = __runInitializers(this, _actions_initializers, []);
get actions() { return this.#actions_accessor_storage; }
set actions(value) { this.#actions_accessor_storage = value; }
static styles = [
cssManager.defaultStyles,
css `
:host {
display: block;
height: 100%;
}
.card {
background: ${cssManager.bdTheme('#ffffff', '#09090b')};
border: 1px solid ${cssManager.bdTheme('#e4e4e7', '#27272a')};
border-radius: 8px;
padding: 20px;
height: 100%;
box-sizing: border-box;
}
.header {
margin-bottom: 16px;
}
.title {
font-size: 16px;
font-weight: 600;
color: ${cssManager.bdTheme('#18181b', '#fafafa')};
}
.subtitle {
font-size: 13px;
color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
margin-top: 2px;
}
.actions {
display: flex;
flex-wrap: wrap;
gap: 12px;
}
.action-button {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 10px 16px;
border-radius: 6px;
font-size: 14px;
font-weight: 500;
cursor: pointer;
transition: all 200ms ease;
border: none;
outline: none;
}
.action-button.primary {
background: ${cssManager.bdTheme('#2563eb', '#3b82f6')};
color: white;
}
.action-button.primary:hover {
background: ${cssManager.bdTheme('#1d4ed8', '#2563eb')};
}
.action-button.secondary {
background: ${cssManager.bdTheme('#ffffff', '#09090b')};
color: ${cssManager.bdTheme('#18181b', '#fafafa')};
border: 1px solid ${cssManager.bdTheme('#e4e4e7', '#27272a')};
}
.action-button.secondary:hover {
background: ${cssManager.bdTheme('#f4f4f5', '#18181b')};
border-color: ${cssManager.bdTheme('#d4d4d8', '#3f3f46')};
}
.action-icon {
width: 16px;
height: 16px;
}
`,
];
render() {
return html `
<div class="card">
<div class="header">
<div class="title">Quick Actions</div>
<div class="subtitle">Common tasks and shortcuts</div>
</div>
<div class="actions">
${this.actions.map((action) => html `
<button
class="action-button ${action.primary ? 'primary' : 'secondary'}"
@click=${() => this.handleActionClick(action)}
>
${action.icon === 'plus' ? html `
<svg class="action-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<line x1="12" y1="5" x2="12" y2="19"></line>
<line x1="5" y1="12" x2="19" y2="12"></line>
</svg>
` : ''}
${action.label}
</button>
`)}
</div>
</div>
`;
}
handleActionClick(action) {
this.dispatchEvent(new CustomEvent('action-click', {
detail: action,
bubbles: true,
composed: true,
}));
}
constructor() {
super(...arguments);
__runInitializers(this, _actions_extraInitializers);
}
static {
__runInitializers(_classThis, _classExtraInitializers);
}
};
return SzQuickActionsCard = _classThis;
})();
export { SzQuickActionsCard };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3otcXVpY2stYWN0aW9ucy1jYXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHNfd2ViL2VsZW1lbnRzL3N6LXF1aWNrLWFjdGlvbnMtY2FyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUNMLFdBQVcsRUFDWCxhQUFhLEVBQ2IsSUFBSSxFQUNKLEdBQUcsRUFDSCxVQUFVLEVBQ1YsUUFBUSxHQUVULE1BQU0sNkJBQTZCLENBQUM7SUFnQnhCLGtCQUFrQjs0QkFEOUIsYUFBYSxDQUFDLHVCQUF1QixDQUFDOzs7O3NCQUNDLFdBQVc7Ozs7a0NBQW5CLFNBQVEsV0FBVzs7OzttQ0FjaEQsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQzFCLDBLQUFnQixPQUFPLDZCQUFQLE9BQU8seUZBQXNCO1lBZi9DLDZLQXdJQzs7OztRQXZJUSxNQUFNLENBQUMsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQTs7O21CQUdkO1lBQ1QsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFO1lBQ3hELEVBQUUsS0FBSyxFQUFFLG1CQUFtQixFQUFFO1lBQzlCLEVBQUUsS0FBSyxFQUFFLG1CQUFtQixFQUFFO1lBQzlCLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFO1NBQzVCOzs7R0FHTixDQUFDO1FBR0YsMkVBQTBDLEVBQUUsRUFBQztRQUE3QyxJQUFnQixPQUFPLDZDQUFzQjtRQUE3QyxJQUFnQixPQUFPLG1EQUFzQjtRQUV0QyxNQUFNLENBQUMsTUFBTSxHQUFHO1lBQ3JCLFVBQVUsQ0FBQyxhQUFhO1lBQ3hCLEdBQUcsQ0FBQTs7Ozs7OztzQkFPZSxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7NEJBQ2xDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7aUJBY25ELFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQzs7Ozs7aUJBS3hDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztzQkF5Qm5DLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQzs7Ozs7c0JBS3hDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQzs7OztzQkFJeEMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDO2lCQUM3QyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7NEJBQzdCLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQzs7OztzQkFJOUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDO3dCQUN0QyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7Ozs7Ozs7S0FPM0Q7U0FDRixDQUFDO1FBRUssTUFBTTtZQUNYLE9BQU8sSUFBSSxDQUFBOzs7Ozs7OztZQVFILElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUNoQixDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFBOzt1Q0FFVyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFdBQVc7eUJBQ3RELEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUM7O2tCQUUzQyxNQUFNLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBOzs7OztpQkFLOUIsQ0FBQyxDQUFDLENBQUMsRUFBRTtrQkFDSixNQUFNLENBQUMsS0FBSzs7YUFFakIsQ0FDRjs7O0tBR04sQ0FBQztRQUNKLENBQUM7UUFFTyxpQkFBaUIsQ0FBQyxNQUFvQjtZQUM1QyxJQUFJLENBQUMsYUFBYSxDQUNoQixJQUFJLFdBQVcsQ0FBQyxjQUFjLEVBQUU7Z0JBQzlCLE1BQU0sRUFBRSxNQUFNO2dCQUNkLE9BQU8sRUFBRSxJQUFJO2dCQUNiLFFBQVEsRUFBRSxJQUFJO2FBQ2YsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDOzs7Ozs7WUF2SVUsdURBQWtCOzs7OztTQUFsQixrQkFBa0IifQ==

View File

@@ -1,22 +0,0 @@
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
declare global {
interface HTMLElementTagNameMap {
'sz-registry-external-view': SzRegistryExternalView;
}
}
export interface IExternalRegistry {
id: string;
name: string;
url: string;
username: string;
type: 'dockerhub' | 'ghcr' | 'gcr' | 'ecr' | 'custom';
}
export declare class SzRegistryExternalView extends DeesElement {
static demo: () => TemplateResult<1>;
accessor registries: IExternalRegistry[];
static styles: import("@design.estate/dees-element").CSSResult[];
render(): TemplateResult;
private handleAdd;
private handleEdit;
private handleDelete;
}

View File

@@ -1,313 +0,0 @@
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
var _, done = false;
for (var i = decorators.length - 1; i >= 0; i--) {
var context = {};
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
if (kind === "accessor") {
if (result === void 0) continue;
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
if (_ = accept(result.get)) descriptor.get = _;
if (_ = accept(result.set)) descriptor.set = _;
if (_ = accept(result.init)) initializers.unshift(_);
}
else if (_ = accept(result)) {
if (kind === "field") initializers.unshift(_);
else descriptor[key] = _;
}
}
if (target) Object.defineProperty(target, contextIn.name, descriptor);
done = true;
};
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
var useValue = arguments.length > 2;
for (var i = 0; i < initializers.length; i++) {
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
}
return useValue ? value : void 0;
};
import { DeesElement, customElement, html, css, cssManager, property, } from '@design.estate/dees-element';
let SzRegistryExternalView = (() => {
let _classDecorators = [customElement('sz-registry-external-view')];
let _classDescriptor;
let _classExtraInitializers = [];
let _classThis;
let _classSuper = DeesElement;
let _registries_decorators;
let _registries_initializers = [];
let _registries_extraInitializers = [];
var SzRegistryExternalView = class extends _classSuper {
static { _classThis = this; }
static {
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
_registries_decorators = [property({ type: Array })];
__esDecorate(this, null, _registries_decorators, { kind: "accessor", name: "registries", static: false, private: false, access: { has: obj => "registries" in obj, get: obj => obj.registries, set: (obj, value) => { obj.registries = value; } }, metadata: _metadata }, _registries_initializers, _registries_extraInitializers);
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
SzRegistryExternalView = _classThis = _classDescriptor.value;
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
}
static demo = () => html `
<div style="padding: 24px; max-width: 800px;">
<sz-registry-external-view
.registries=${[
{ id: '1', name: 'Docker Hub', url: 'docker.io', username: 'myuser', type: 'dockerhub' },
{ id: '2', name: 'GitHub Container Registry', url: 'ghcr.io', username: 'myorg', type: 'ghcr' },
]}
></sz-registry-external-view>
</div>
`;
#registries_accessor_storage = __runInitializers(this, _registries_initializers, []);
get registries() { return this.#registries_accessor_storage; }
set registries(value) { this.#registries_accessor_storage = value; }
static styles = [
cssManager.defaultStyles,
css `
:host {
display: block;
}
.header {
display: flex;
justify-content: space-between;
align-items: flex-start;
margin-bottom: 24px;
}
.header-info {
display: flex;
flex-direction: column;
gap: 4px;
}
.header-title {
font-size: 18px;
font-weight: 600;
color: ${cssManager.bdTheme('#18181b', '#fafafa')};
}
.header-subtitle {
font-size: 14px;
color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
}
.add-button {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 8px 14px;
background: ${cssManager.bdTheme('#18181b', '#fafafa')};
border: none;
border-radius: 6px;
font-size: 13px;
font-weight: 500;
color: ${cssManager.bdTheme('#fafafa', '#18181b')};
cursor: pointer;
transition: all 200ms ease;
}
.add-button:hover {
opacity: 0.9;
}
.registry-list {
display: flex;
flex-direction: column;
gap: 12px;
}
.registry-item {
display: flex;
justify-content: space-between;
align-items: center;
padding: 16px;
background: ${cssManager.bdTheme('#ffffff', '#09090b')};
border: 1px solid ${cssManager.bdTheme('#e4e4e7', '#27272a')};
border-radius: 8px;
}
.registry-info {
display: flex;
align-items: center;
gap: 12px;
}
.registry-icon {
width: 40px;
height: 40px;
background: ${cssManager.bdTheme('#f4f4f5', '#18181b')};
border-radius: 8px;
display: flex;
align-items: center;
justify-content: center;
color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
}
.registry-details {
display: flex;
flex-direction: column;
gap: 2px;
}
.registry-name {
font-size: 14px;
font-weight: 500;
color: ${cssManager.bdTheme('#18181b', '#fafafa')};
}
.registry-url {
font-size: 13px;
font-family: monospace;
color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
}
.registry-actions {
display: flex;
gap: 8px;
}
.action-button {
padding: 6px 12px;
background: transparent;
border: 1px solid ${cssManager.bdTheme('#e4e4e7', '#27272a')};
border-radius: 4px;
font-size: 12px;
color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
cursor: pointer;
transition: all 200ms ease;
}
.action-button:hover {
background: ${cssManager.bdTheme('#f4f4f5', '#18181b')};
color: ${cssManager.bdTheme('#18181b', '#fafafa')};
}
.action-button.delete {
color: ${cssManager.bdTheme('#dc2626', '#ef4444')};
border-color: ${cssManager.bdTheme('#fee2e2', 'rgba(239, 68, 68, 0.3)')};
}
.action-button.delete:hover {
background: ${cssManager.bdTheme('#fee2e2', 'rgba(239, 68, 68, 0.2)')};
}
.empty-state {
background: ${cssManager.bdTheme('#ffffff', '#09090b')};
border: 1px solid ${cssManager.bdTheme('#e4e4e7', '#27272a')};
border-radius: 8px;
padding: 48px 24px;
text-align: center;
}
.empty-icon {
width: 48px;
height: 48px;
margin: 0 auto 16px;
color: ${cssManager.bdTheme('#a1a1aa', '#52525b')};
}
.empty-title {
font-size: 16px;
font-weight: 600;
color: ${cssManager.bdTheme('#18181b', '#fafafa')};
margin-bottom: 8px;
}
.empty-description {
font-size: 14px;
color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
margin-bottom: 16px;
}
.empty-button {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 8px 14px;
background: ${cssManager.bdTheme('#ffffff', '#09090b')};
border: 1px solid ${cssManager.bdTheme('#e4e4e7', '#27272a')};
border-radius: 6px;
font-size: 13px;
font-weight: 500;
color: ${cssManager.bdTheme('#18181b', '#fafafa')};
cursor: pointer;
transition: all 200ms ease;
}
.empty-button:hover {
background: ${cssManager.bdTheme('#f4f4f5', '#18181b')};
}
`,
];
render() {
return html `
<div class="header">
<div class="header-info">
<div class="header-title">External Registries</div>
<div class="header-subtitle">Add credentials for private Docker registries</div>
</div>
<button class="add-button" @click=${() => this.handleAdd()}>Add Registry</button>
</div>
${this.registries.length > 0 ? html `
<div class="registry-list">
${this.registries.map(registry => html `
<div class="registry-item">
<div class="registry-info">
<div class="registry-icon">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path>
</svg>
</div>
<div class="registry-details">
<div class="registry-name">${registry.name}</div>
<div class="registry-url">${registry.url} (${registry.username})</div>
</div>
</div>
<div class="registry-actions">
<button class="action-button" @click=${() => this.handleEdit(registry)}>Edit</button>
<button class="action-button delete" @click=${() => this.handleDelete(registry)}>Delete</button>
</div>
</div>
`)}
</div>
` : html `
<div class="empty-state">
<svg class="empty-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5">
<path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path>
<polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline>
<line x1="12" y1="22.08" x2="12" y2="12"></line>
</svg>
<div class="empty-title">No external registries</div>
<div class="empty-description">Add credentials for Docker Hub, GitHub Container Registry, or other private registries.</div>
<button class="empty-button" @click=${() => this.handleAdd()}>Add External Registry</button>
</div>
`}
`;
}
handleAdd() {
this.dispatchEvent(new CustomEvent('add', { bubbles: true, composed: true }));
}
handleEdit(registry) {
this.dispatchEvent(new CustomEvent('edit', { detail: registry, bubbles: true, composed: true }));
}
handleDelete(registry) {
this.dispatchEvent(new CustomEvent('delete', { detail: registry, bubbles: true, composed: true }));
}
constructor() {
super(...arguments);
__runInitializers(this, _registries_extraInitializers);
}
static {
__runInitializers(_classThis, _classExtraInitializers);
}
};
return SzRegistryExternalView = _classThis;
})();
export { SzRegistryExternalView };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3otcmVnaXN0cnktZXh0ZXJuYWwtdmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX3dlYi9lbGVtZW50cy9zei1yZWdpc3RyeS1leHRlcm5hbC12aWV3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUNYLGFBQWEsRUFDYixJQUFJLEVBQ0osR0FBRyxFQUNILFVBQVUsRUFDVixRQUFRLEdBRVQsTUFBTSw2QkFBNkIsQ0FBQztJQWlCeEIsc0JBQXNCOzRCQURsQyxhQUFhLENBQUMsMkJBQTJCLENBQUM7Ozs7c0JBQ0MsV0FBVzs7OztzQ0FBbkIsU0FBUSxXQUFXOzs7O3NDQVlwRCxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDMUIsbUxBQWdCLFVBQVUsNkJBQVYsVUFBVSwrRkFBMkI7WUFidkQsNktBNlBDOzs7O1FBNVBRLE1BQU0sQ0FBQyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFBOzs7c0JBR1g7WUFDWixFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtZQUN4RixFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLDJCQUEyQixFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO1NBQ2hHOzs7R0FHTixDQUFDO1FBR0YsaUZBQWtELEVBQUUsRUFBQztRQUFyRCxJQUFnQixVQUFVLGdEQUEyQjtRQUFyRCxJQUFnQixVQUFVLHNEQUEyQjtRQUU5QyxNQUFNLENBQUMsTUFBTSxHQUFHO1lBQ3JCLFVBQVUsQ0FBQyxhQUFhO1lBQ3hCLEdBQUcsQ0FBQTs7Ozs7Ozs7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

View File

@@ -1,14 +0,0 @@
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
declare global {
interface HTMLElementTagNameMap {
'sz-registry-onebox-view': SzRegistryOneboxView;
}
}
export declare class SzRegistryOneboxView extends DeesElement {
static demo: () => TemplateResult<1>;
accessor status: 'running' | 'stopped';
accessor registryUrl: string;
static styles: import("@design.estate/dees-element").CSSResult[];
render(): TemplateResult;
private handleManageTokens;
}

View File

@@ -1,307 +0,0 @@
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
var _, done = false;
for (var i = decorators.length - 1; i >= 0; i--) {
var context = {};
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
if (kind === "accessor") {
if (result === void 0) continue;
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
if (_ = accept(result.get)) descriptor.get = _;
if (_ = accept(result.set)) descriptor.set = _;
if (_ = accept(result.init)) initializers.unshift(_);
}
else if (_ = accept(result)) {
if (kind === "field") initializers.unshift(_);
else descriptor[key] = _;
}
}
if (target) Object.defineProperty(target, contextIn.name, descriptor);
done = true;
};
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
var useValue = arguments.length > 2;
for (var i = 0; i < initializers.length; i++) {
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
}
return useValue ? value : void 0;
};
import { DeesElement, customElement, html, css, cssManager, property, } from '@design.estate/dees-element';
let SzRegistryOneboxView = (() => {
let _classDecorators = [customElement('sz-registry-onebox-view')];
let _classDescriptor;
let _classExtraInitializers = [];
let _classThis;
let _classSuper = DeesElement;
let _status_decorators;
let _status_initializers = [];
let _status_extraInitializers = [];
let _registryUrl_decorators;
let _registryUrl_initializers = [];
let _registryUrl_extraInitializers = [];
var SzRegistryOneboxView = class extends _classSuper {
static { _classThis = this; }
static {
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
_status_decorators = [property({ type: String })];
_registryUrl_decorators = [property({ type: String })];
__esDecorate(this, null, _status_decorators, { kind: "accessor", name: "status", static: false, private: false, access: { has: obj => "status" in obj, get: obj => obj.status, set: (obj, value) => { obj.status = value; } }, metadata: _metadata }, _status_initializers, _status_extraInitializers);
__esDecorate(this, null, _registryUrl_decorators, { kind: "accessor", name: "registryUrl", static: false, private: false, access: { has: obj => "registryUrl" in obj, get: obj => obj.registryUrl, set: (obj, value) => { obj.registryUrl = value; } }, metadata: _metadata }, _registryUrl_initializers, _registryUrl_extraInitializers);
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
SzRegistryOneboxView = _classThis = _classDescriptor.value;
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
}
static demo = () => html `
<div style="padding: 24px; max-width: 800px;">
<sz-registry-onebox-view
status="running"
registryUrl="localhost:3000/v2"
></sz-registry-onebox-view>
</div>
`;
#status_accessor_storage = __runInitializers(this, _status_initializers, 'stopped');
get status() { return this.#status_accessor_storage; }
set status(value) { this.#status_accessor_storage = value; }
#registryUrl_accessor_storage = (__runInitializers(this, _status_extraInitializers), __runInitializers(this, _registryUrl_initializers, ''));
get registryUrl() { return this.#registryUrl_accessor_storage; }
set registryUrl(value) { this.#registryUrl_accessor_storage = value; }
static styles = [
cssManager.defaultStyles,
css `
:host {
display: block;
}
.card {
background: ${cssManager.bdTheme('#ffffff', '#09090b')};
border: 1px solid ${cssManager.bdTheme('#e4e4e7', '#27272a')};
border-radius: 8px;
overflow: hidden;
}
.card-header {
display: flex;
align-items: center;
gap: 12px;
padding: 16px;
border-bottom: 1px solid ${cssManager.bdTheme('#e4e4e7', '#27272a')};
}
.registry-icon {
width: 40px;
height: 40px;
background: ${cssManager.bdTheme('#dbeafe', 'rgba(59, 130, 246, 0.2)')};
border-radius: 8px;
display: flex;
align-items: center;
justify-content: center;
color: ${cssManager.bdTheme('#2563eb', '#60a5fa')};
}
.header-info {
flex: 1;
}
.header-title {
display: flex;
align-items: center;
gap: 8px;
font-size: 16px;
font-weight: 600;
color: ${cssManager.bdTheme('#18181b', '#fafafa')};
}
.default-badge {
padding: 2px 8px;
background: ${cssManager.bdTheme('#dbeafe', 'rgba(59, 130, 246, 0.2)')};
color: ${cssManager.bdTheme('#2563eb', '#60a5fa')};
border-radius: 4px;
font-size: 11px;
font-weight: 600;
}
.header-subtitle {
font-size: 13px;
color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
margin-top: 2px;
}
.card-content {
padding: 16px;
}
.info-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 16px;
margin-bottom: 24px;
}
.info-item {
display: flex;
flex-direction: column;
gap: 4px;
}
.info-label {
font-size: 12px;
font-weight: 500;
color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
text-transform: uppercase;
letter-spacing: 0.05em;
}
.info-value {
font-size: 14px;
color: ${cssManager.bdTheme('#18181b', '#fafafa')};
}
.status-badge {
display: inline-flex;
align-items: center;
padding: 2px 8px;
border-radius: 9999px;
font-size: 12px;
font-weight: 500;
}
.status-badge.running {
background: ${cssManager.bdTheme('#dcfce7', 'rgba(34, 197, 94, 0.2)')};
color: ${cssManager.bdTheme('#16a34a', '#22c55e')};
}
.status-badge.stopped {
background: ${cssManager.bdTheme('#fee2e2', 'rgba(239, 68, 68, 0.2)')};
color: ${cssManager.bdTheme('#dc2626', '#ef4444')};
}
.manage-link {
color: ${cssManager.bdTheme('#2563eb', '#60a5fa')};
text-decoration: none;
cursor: pointer;
}
.manage-link:hover {
text-decoration: underline;
}
.quick-start {
background: ${cssManager.bdTheme('#f4f4f5', '#18181b')};
border-radius: 6px;
padding: 16px;
}
.quick-start-title {
font-size: 14px;
font-weight: 600;
color: ${cssManager.bdTheme('#18181b', '#fafafa')};
margin-bottom: 8px;
}
.quick-start-desc {
font-size: 13px;
color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
margin-bottom: 12px;
}
.code-block {
background: ${cssManager.bdTheme('#18181b', '#0a0a0a')};
border-radius: 6px;
padding: 12px;
font-family: monospace;
font-size: 13px;
overflow-x: auto;
}
.code-line {
color: ${cssManager.bdTheme('#a1a1aa', '#71717a')};
margin-bottom: 4px;
}
.code-line:last-child {
margin-bottom: 0;
}
.code-comment {
color: ${cssManager.bdTheme('#6b7280', '#52525b')};
}
.code-command {
color: ${cssManager.bdTheme('#fafafa', '#e4e4e7')};
}
`,
];
render() {
return html `
<div class="card">
<div class="card-header">
<div class="registry-icon">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path>
</svg>
</div>
<div class="header-info">
<div class="header-title">
Onebox Registry (Built-in)
<span class="default-badge">Default</span>
</div>
<div class="header-subtitle">Built-in container registry for your services</div>
</div>
</div>
<div class="card-content">
<div class="info-grid">
<div class="info-item">
<span class="info-label">Status</span>
<span class="info-value">
<span class="status-badge ${this.status}">${this.status === 'running' ? 'Running' : 'Stopped'}</span>
</span>
</div>
<div class="info-item">
<span class="info-label">Registry URL</span>
<span class="info-value">${this.registryUrl}</span>
</div>
<div class="info-item">
<span class="info-label">Authentication</span>
<span class="info-value">
<a class="manage-link" @click=${() => this.handleManageTokens()}>Manage Tokens</a>
</span>
</div>
</div>
<div class="quick-start">
<div class="quick-start-title">Quick Start</div>
<div class="quick-start-desc">To push images to the Onebox registry, use a CI or Global token:</div>
<div class="code-block">
<div class="code-line code-comment"># Login to the registry</div>
<div class="code-line code-command">docker login ${this.registryUrl.split('/')[0]} -u onebox -p YOUR_TOKEN</div>
<div class="code-line code-comment"># Tag and push your image</div>
<div class="code-line code-command">docker tag myapp ${this.registryUrl.split('/')[0]}/myservice:latest</div>
<div class="code-line code-command">docker push ${this.registryUrl.split('/')[0]}/myservice:latest</div>
</div>
</div>
</div>
</div>
`;
}
handleManageTokens() {
this.dispatchEvent(new CustomEvent('manage-tokens', { bubbles: true, composed: true }));
}
constructor() {
super(...arguments);
__runInitializers(this, _registryUrl_extraInitializers);
}
static {
__runInitializers(_classThis, _classExtraInitializers);
}
};
return SzRegistryOneboxView = _classThis;
})();
export { SzRegistryOneboxView };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3otcmVnaXN0cnktb25lYm94LXZpZXcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvZWxlbWVudHMvc3otcmVnaXN0cnktb25lYm94LXZpZXcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxXQUFXLEVBQ1gsYUFBYSxFQUNiLElBQUksRUFDSixHQUFHLEVBQ0gsVUFBVSxFQUNWLFFBQVEsR0FFVCxNQUFNLDZCQUE2QixDQUFDO0lBU3hCLG9CQUFvQjs0QkFEaEMsYUFBYSxDQUFDLHlCQUF5QixDQUFDOzs7O3NCQUNDLFdBQVc7Ozs7Ozs7b0NBQW5CLFNBQVEsV0FBVzs7OztrQ0FVbEQsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO3VDQUcxQixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFGM0IsdUtBQWdCLE1BQU0sNkJBQU4sTUFBTSx1RkFBb0M7WUFHMUQsc0xBQWdCLFdBQVcsNkJBQVgsV0FBVyxpR0FBYztZQWQzQyw2S0FnUEM7Ozs7UUEvT1EsTUFBTSxDQUFDLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUE7Ozs7Ozs7R0FPOUIsQ0FBQztRQUdGLHlFQUFnRCxTQUFTLEVBQUM7UUFBMUQsSUFBZ0IsTUFBTSw0Q0FBb0M7UUFBMUQsSUFBZ0IsTUFBTSxrREFBb0M7UUFHMUQsd0lBQXNDLEVBQUUsR0FBQztRQUF6QyxJQUFnQixXQUFXLGlEQUFjO1FBQXpDLElBQWdCLFdBQVcsdURBQWM7UUFFbEMsTUFBTSxDQUFDLE1BQU0sR0FBRztZQUNyQixVQUFVLENBQUMsYUFBYTtZQUN4QixHQUFHLENBQUE7Ozs7OztzQkFNZSxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7NEJBQ2xDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNB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

View File

@@ -1,25 +0,0 @@
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
declare global {
interface HTMLElementTagNameMap {
'sz-resource-usage-card': SzResourceUsageCard;
}
}
export interface IResourceUsage {
cpu: number;
memoryUsed: string;
memoryTotal: string;
networkIn: string;
networkOut: string;
topConsumers: Array<{
name: string;
memory: string;
}>;
}
export declare class SzResourceUsageCard extends DeesElement {
static demo: () => TemplateResult<1>;
accessor data: IResourceUsage;
accessor serviceCount: string;
static styles: import("@design.estate/dees-element").CSSResult[];
render(): TemplateResult;
private calculateMemoryPercent;
}

View File

@@ -1,323 +0,0 @@
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
var _, done = false;
for (var i = decorators.length - 1; i >= 0; i--) {
var context = {};
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
if (kind === "accessor") {
if (result === void 0) continue;
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
if (_ = accept(result.get)) descriptor.get = _;
if (_ = accept(result.set)) descriptor.set = _;
if (_ = accept(result.init)) initializers.unshift(_);
}
else if (_ = accept(result)) {
if (kind === "field") initializers.unshift(_);
else descriptor[key] = _;
}
}
if (target) Object.defineProperty(target, contextIn.name, descriptor);
done = true;
};
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
var useValue = arguments.length > 2;
for (var i = 0; i < initializers.length; i++) {
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
}
return useValue ? value : void 0;
};
import { DeesElement, customElement, html, css, cssManager, property, } from '@design.estate/dees-element';
let SzResourceUsageCard = (() => {
let _classDecorators = [customElement('sz-resource-usage-card')];
let _classDescriptor;
let _classExtraInitializers = [];
let _classThis;
let _classSuper = DeesElement;
let _data_decorators;
let _data_initializers = [];
let _data_extraInitializers = [];
let _serviceCount_decorators;
let _serviceCount_initializers = [];
let _serviceCount_extraInitializers = [];
var SzResourceUsageCard = class extends _classSuper {
static { _classThis = this; }
static {
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
_data_decorators = [property({ type: Object })];
_serviceCount_decorators = [property({ type: String })];
__esDecorate(this, null, _data_decorators, { kind: "accessor", name: "data", static: false, private: false, access: { has: obj => "data" in obj, get: obj => obj.data, set: (obj, value) => { obj.data = value; } }, metadata: _metadata }, _data_initializers, _data_extraInitializers);
__esDecorate(this, null, _serviceCount_decorators, { kind: "accessor", name: "serviceCount", static: false, private: false, access: { has: obj => "serviceCount" in obj, get: obj => obj.serviceCount, set: (obj, value) => { obj.serviceCount = value; } }, metadata: _metadata }, _serviceCount_initializers, _serviceCount_extraInitializers);
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
SzResourceUsageCard = _classThis = _classDescriptor.value;
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
}
static demo = () => html `
<div style="padding: 24px; max-width: 800px;">
<sz-resource-usage-card
.data=${{
cpu: 0.5,
memoryUsed: '191 MB',
memoryTotal: '429.2 GB',
networkIn: '38.9 KB/s',
networkOut: '1.7 KB/s',
topConsumers: [
{ name: 'test-nginx', memory: '32.1 MB' },
{ name: 'test-v2', memory: '31.7 MB' },
],
}}
serviceCount="7"
></sz-resource-usage-card>
</div>
`;
#data_accessor_storage = __runInitializers(this, _data_initializers, {
cpu: 0,
memoryUsed: '0 MB',
memoryTotal: '0 GB',
networkIn: '0 KB/s',
networkOut: '0 KB/s',
topConsumers: [],
});
get data() { return this.#data_accessor_storage; }
set data(value) { this.#data_accessor_storage = value; }
#serviceCount_accessor_storage = (__runInitializers(this, _data_extraInitializers), __runInitializers(this, _serviceCount_initializers, '0'));
get serviceCount() { return this.#serviceCount_accessor_storage; }
set serviceCount(value) { this.#serviceCount_accessor_storage = value; }
static styles = [
cssManager.defaultStyles,
css `
:host {
display: block;
height: 100%;
}
.card {
background: ${cssManager.bdTheme('#ffffff', '#09090b')};
border: 1px solid ${cssManager.bdTheme('#e4e4e7', '#27272a')};
border-radius: 8px;
padding: 20px;
height: 100%;
box-sizing: border-box;
}
.header {
display: flex;
justify-content: space-between;
align-items: flex-start;
margin-bottom: 16px;
}
.title {
font-size: 16px;
font-weight: 600;
color: ${cssManager.bdTheme('#18181b', '#fafafa')};
}
.subtitle {
font-size: 13px;
color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
margin-top: 2px;
}
.view-all {
font-size: 13px;
color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')};
text-decoration: none;
cursor: pointer;
}
.view-all:hover {
text-decoration: underline;
}
.metrics {
display: flex;
flex-direction: column;
gap: 16px;
}
.metric-row {
display: flex;
flex-direction: column;
gap: 6px;
}
.metric-header {
display: flex;
justify-content: space-between;
align-items: center;
}
.metric-label {
font-size: 14px;
color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
}
.metric-value {
font-size: 14px;
color: ${cssManager.bdTheme('#18181b', '#fafafa')};
}
.progress-bar {
height: 6px;
background: ${cssManager.bdTheme('#f4f4f5', '#27272a')};
border-radius: 3px;
overflow: hidden;
}
.progress-fill {
height: 100%;
background: ${cssManager.bdTheme('#3b82f6', '#60a5fa')};
border-radius: 3px;
transition: width 300ms ease;
}
.network-row {
display: flex;
gap: 16px;
align-items: center;
}
.network-item {
display: flex;
align-items: center;
gap: 4px;
font-size: 14px;
color: ${cssManager.bdTheme('#18181b', '#fafafa')};
}
.network-icon {
width: 14px;
height: 14px;
}
.network-icon.down {
color: ${cssManager.bdTheme('#16a34a', '#22c55e')};
}
.network-icon.up {
color: ${cssManager.bdTheme('#3b82f6', '#60a5fa')};
}
.top-consumers {
margin-top: 8px;
padding-top: 12px;
border-top: 1px solid ${cssManager.bdTheme('#f4f4f5', '#27272a')};
}
.consumers-label {
font-size: 13px;
color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
margin-bottom: 6px;
}
.consumers-list {
display: flex;
flex-wrap: wrap;
gap: 12px;
}
.consumer-item {
font-size: 13px;
color: ${cssManager.bdTheme('#18181b', '#fafafa')};
}
.consumer-name {
color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
}
`,
];
render() {
return html `
<div class="card">
<div class="header">
<div>
<div class="title">Resource Usage</div>
<div class="subtitle">Aggregated across ${this.serviceCount} services</div>
</div>
<a class="view-all">View All</a>
</div>
<div class="metrics">
<div class="metric-row">
<div class="metric-header">
<span class="metric-label">CPU</span>
<span class="metric-value">${this.data.cpu.toFixed(1)}%</span>
</div>
<div class="progress-bar">
<div class="progress-fill" style="width: ${Math.min(this.data.cpu, 100)}%"></div>
</div>
</div>
<div class="metric-row">
<div class="metric-header">
<span class="metric-label">Memory</span>
<span class="metric-value">${this.data.memoryUsed} / ${this.data.memoryTotal}</span>
</div>
<div class="progress-bar">
<div class="progress-fill" style="width: ${this.calculateMemoryPercent()}%"></div>
</div>
</div>
<div class="metric-row">
<div class="metric-header">
<span class="metric-label">Network</span>
<div class="network-row">
<span class="network-item">
<svg class="network-icon down" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<path d="M12 5v14M19 12l-7 7-7-7"/>
</svg>
${this.data.networkIn}
</span>
<span class="network-item">
<svg class="network-icon up" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<path d="M12 19V5M5 12l7-7 7 7"/>
</svg>
${this.data.networkOut}
</span>
</div>
</div>
</div>
</div>
${this.data.topConsumers.length > 0 ? html `
<div class="top-consumers">
<div class="consumers-label">Top consumers</div>
<div class="consumers-list">
${this.data.topConsumers.map((consumer) => html `
<span class="consumer-item">
<span class="consumer-name">${consumer.name}:</span> ${consumer.memory}
</span>
`)}
</div>
</div>
` : ''}
</div>
`;
}
calculateMemoryPercent() {
// Simple extraction of numbers - in real app would parse properly
const used = parseFloat(this.data.memoryUsed);
const total = parseFloat(this.data.memoryTotal);
if (total === 0)
return 0;
// Assuming both are in same unit for demo
return Math.min((used / total) * 100, 100);
}
constructor() {
super(...arguments);
__runInitializers(this, _serviceCount_extraInitializers);
}
static {
__runInitializers(_classThis, _classExtraInitializers);
}
};
return SzResourceUsageCard = _classThis;
})();
export { SzResourceUsageCard };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3otcmVzb3VyY2UtdXNhZ2UtY2FyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX3dlYi9lbGVtZW50cy9zei1yZXNvdXJjZS11c2FnZS1jYXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUNYLGFBQWEsRUFDYixJQUFJLEVBQ0osR0FBRyxFQUNILFVBQVUsRUFDVixRQUFRLEdBRVQsTUFBTSw2QkFBNkIsQ0FBQztJQWtCeEIsbUJBQW1COzRCQUQvQixhQUFhLENBQUMsd0JBQXdCLENBQUM7Ozs7c0JBQ0MsV0FBVzs7Ozs7OzttQ0FBbkIsU0FBUSxXQUFXOzs7O2dDQW9CakQsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO3dDQVUxQixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFUM0IsaUtBQWdCLElBQUksNkJBQUosSUFBSSxtRkFPbEI7WUFHRix5TEFBZ0IsWUFBWSw2QkFBWixZQUFZLG1HQUFlO1lBL0I3Qyw2S0FpUUM7Ozs7UUFoUVEsTUFBTSxDQUFDLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUE7OztnQkFHakI7WUFDTixHQUFHLEVBQUUsR0FBRztZQUNSLFVBQVUsRUFBRSxRQUFRO1lBQ3BCLFdBQVcsRUFBRSxVQUFVO1lBQ3ZCLFNBQVMsRUFBRSxXQUFXO1lBQ3RCLFVBQVUsRUFBRSxVQUFVO1lBQ3RCLFlBQVksRUFBRTtnQkFDWixFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRTtnQkFDekMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUU7YUFDdkM7U0FDRjs7OztHQUlOLENBQUM7UUFHRixxRUFBdUM7WUFDckMsR0FBRyxFQUFFLENBQUM7WUFDTixVQUFVLEVBQUUsTUFBTTtZ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

View File

@@ -1,16 +0,0 @@
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
declare global {
interface HTMLElementTagNameMap {
'sz-reverse-proxy-card': SzReverseProxyCard;
}
}
export declare class SzReverseProxyCard extends DeesElement {
static demo: () => TemplateResult<1>;
accessor httpPort: string;
accessor httpsPort: string;
accessor httpActive: boolean;
accessor httpsActive: boolean;
accessor routeCount: string;
static styles: import("@design.estate/dees-element").CSSResult[];
render(): TemplateResult;
}

View File

@@ -1,216 +0,0 @@
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
var _, done = false;
for (var i = decorators.length - 1; i >= 0; i--) {
var context = {};
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
if (kind === "accessor") {
if (result === void 0) continue;
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
if (_ = accept(result.get)) descriptor.get = _;
if (_ = accept(result.set)) descriptor.set = _;
if (_ = accept(result.init)) initializers.unshift(_);
}
else if (_ = accept(result)) {
if (kind === "field") initializers.unshift(_);
else descriptor[key] = _;
}
}
if (target) Object.defineProperty(target, contextIn.name, descriptor);
done = true;
};
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
var useValue = arguments.length > 2;
for (var i = 0; i < initializers.length; i++) {
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
}
return useValue ? value : void 0;
};
import { DeesElement, customElement, html, css, cssManager, property, } from '@design.estate/dees-element';
let SzReverseProxyCard = (() => {
let _classDecorators = [customElement('sz-reverse-proxy-card')];
let _classDescriptor;
let _classExtraInitializers = [];
let _classThis;
let _classSuper = DeesElement;
let _httpPort_decorators;
let _httpPort_initializers = [];
let _httpPort_extraInitializers = [];
let _httpsPort_decorators;
let _httpsPort_initializers = [];
let _httpsPort_extraInitializers = [];
let _httpActive_decorators;
let _httpActive_initializers = [];
let _httpActive_extraInitializers = [];
let _httpsActive_decorators;
let _httpsActive_initializers = [];
let _httpsActive_extraInitializers = [];
let _routeCount_decorators;
let _routeCount_initializers = [];
let _routeCount_extraInitializers = [];
var SzReverseProxyCard = class extends _classSuper {
static { _classThis = this; }
static {
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
_httpPort_decorators = [property({ type: String })];
_httpsPort_decorators = [property({ type: String })];
_httpActive_decorators = [property({ type: Boolean })];
_httpsActive_decorators = [property({ type: Boolean })];
_routeCount_decorators = [property({ type: String })];
__esDecorate(this, null, _httpPort_decorators, { kind: "accessor", name: "httpPort", static: false, private: false, access: { has: obj => "httpPort" in obj, get: obj => obj.httpPort, set: (obj, value) => { obj.httpPort = value; } }, metadata: _metadata }, _httpPort_initializers, _httpPort_extraInitializers);
__esDecorate(this, null, _httpsPort_decorators, { kind: "accessor", name: "httpsPort", static: false, private: false, access: { has: obj => "httpsPort" in obj, get: obj => obj.httpsPort, set: (obj, value) => { obj.httpsPort = value; } }, metadata: _metadata }, _httpsPort_initializers, _httpsPort_extraInitializers);
__esDecorate(this, null, _httpActive_decorators, { kind: "accessor", name: "httpActive", static: false, private: false, access: { has: obj => "httpActive" in obj, get: obj => obj.httpActive, set: (obj, value) => { obj.httpActive = value; } }, metadata: _metadata }, _httpActive_initializers, _httpActive_extraInitializers);
__esDecorate(this, null, _httpsActive_decorators, { kind: "accessor", name: "httpsActive", static: false, private: false, access: { has: obj => "httpsActive" in obj, get: obj => obj.httpsActive, set: (obj, value) => { obj.httpsActive = value; } }, metadata: _metadata }, _httpsActive_initializers, _httpsActive_extraInitializers);
__esDecorate(this, null, _routeCount_decorators, { kind: "accessor", name: "routeCount", static: false, private: false, access: { has: obj => "routeCount" in obj, get: obj => obj.routeCount, set: (obj, value) => { obj.routeCount = value; } }, metadata: _metadata }, _routeCount_initializers, _routeCount_extraInitializers);
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
SzReverseProxyCard = _classThis = _classDescriptor.value;
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
}
static demo = () => html `
<div style="padding: 24px; max-width: 400px;">
<sz-reverse-proxy-card
httpPort="8080"
httpsPort="8443"
httpActive
httpsActive
routeCount="3"
></sz-reverse-proxy-card>
</div>
`;
#httpPort_accessor_storage = __runInitializers(this, _httpPort_initializers, '80');
get httpPort() { return this.#httpPort_accessor_storage; }
set httpPort(value) { this.#httpPort_accessor_storage = value; }
#httpsPort_accessor_storage = (__runInitializers(this, _httpPort_extraInitializers), __runInitializers(this, _httpsPort_initializers, '443'));
get httpsPort() { return this.#httpsPort_accessor_storage; }
set httpsPort(value) { this.#httpsPort_accessor_storage = value; }
#httpActive_accessor_storage = (__runInitializers(this, _httpsPort_extraInitializers), __runInitializers(this, _httpActive_initializers, false));
get httpActive() { return this.#httpActive_accessor_storage; }
set httpActive(value) { this.#httpActive_accessor_storage = value; }
#httpsActive_accessor_storage = (__runInitializers(this, _httpActive_extraInitializers), __runInitializers(this, _httpsActive_initializers, false));
get httpsActive() { return this.#httpsActive_accessor_storage; }
set httpsActive(value) { this.#httpsActive_accessor_storage = value; }
#routeCount_accessor_storage = (__runInitializers(this, _httpsActive_extraInitializers), __runInitializers(this, _routeCount_initializers, '0'));
get routeCount() { return this.#routeCount_accessor_storage; }
set routeCount(value) { this.#routeCount_accessor_storage = value; }
static styles = [
cssManager.defaultStyles,
css `
:host {
display: block;
height: 100%;
}
.card {
background: ${cssManager.bdTheme('#ffffff', '#09090b')};
border: 1px solid ${cssManager.bdTheme('#e4e4e7', '#27272a')};
border-radius: 8px;
padding: 20px;
height: 100%;
box-sizing: border-box;
}
.header {
margin-bottom: 16px;
}
.title {
font-size: 16px;
font-weight: 600;
color: ${cssManager.bdTheme('#18181b', '#fafafa')};
}
.subtitle {
font-size: 13px;
color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
margin-top: 2px;
}
.items {
display: flex;
flex-direction: column;
gap: 10px;
}
.item {
display: flex;
justify-content: space-between;
align-items: center;
}
.item-label {
font-size: 14px;
color: ${cssManager.bdTheme('#18181b', '#fafafa')};
}
.item-value {
font-size: 14px;
color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
}
.badge {
display: inline-flex;
align-items: center;
padding: 2px 10px;
border-radius: 9999px;
font-size: 12px;
font-weight: 500;
}
.badge.active {
background: ${cssManager.bdTheme('#dcfce7', 'rgba(34, 197, 94, 0.2)')};
color: ${cssManager.bdTheme('#16a34a', '#22c55e')};
}
.badge.inactive {
background: ${cssManager.bdTheme('#fee2e2', 'rgba(239, 68, 68, 0.2)')};
color: ${cssManager.bdTheme('#dc2626', '#ef4444')};
}
`,
];
render() {
return html `
<div class="card">
<div class="header">
<div class="title">Reverse Proxy</div>
<div class="subtitle">HTTP/HTTPS proxy status</div>
</div>
<div class="items">
<div class="item">
<span class="item-label">HTTP (${this.httpPort})</span>
<span class="badge ${this.httpActive ? 'active' : 'inactive'}">
${this.httpActive ? 'Active' : 'Inactive'}
</span>
</div>
<div class="item">
<span class="item-label">HTTPS (${this.httpsPort})</span>
<span class="badge ${this.httpsActive ? 'active' : 'inactive'}">
${this.httpsActive ? 'Active' : 'Inactive'}
</span>
</div>
<div class="item">
<span class="item-label">Routes</span>
<span class="item-value">${this.routeCount}</span>
</div>
</div>
</div>
`;
}
constructor() {
super(...arguments);
__runInitializers(this, _routeCount_extraInitializers);
}
static {
__runInitializers(_classThis, _classExtraInitializers);
}
};
return SzReverseProxyCard = _classThis;
})();
export { SzReverseProxyCard };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3otcmV2ZXJzZS1wcm94eS1jYXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHNfd2ViL2VsZW1lbnRzL3N6LXJldmVyc2UtcHJveHktY2FyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUNMLFdBQVcsRUFDWCxhQUFhLEVBQ2IsSUFBSSxFQUNKLEdBQUcsRUFDSCxVQUFVLEVBQ1YsUUFBUSxHQUVULE1BQU0sNkJBQTZCLENBQUM7SUFTeEIsa0JBQWtCOzRCQUQ5QixhQUFhLENBQUMsdUJBQXVCLENBQUM7Ozs7c0JBQ0MsV0FBVzs7Ozs7Ozs7Ozs7Ozs7OztrQ0FBbkIsU0FBUSxXQUFXOzs7O29DQWFoRCxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7cUNBRzFCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztzQ0FHMUIsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDO3VDQUczQixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7c0NBRzNCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztZQVgzQiw2S0FBZ0IsUUFBUSw2QkFBUixRQUFRLDJGQUFnQjtZQUd4QyxnTEFBZ0IsU0FBUyw2QkFBVCxTQUFTLDZGQUFpQjtZQUcxQyxtTEFBZ0IsVUFBVSw2QkFBVixVQUFVLCtGQUFrQjtZQUc1QyxzTEFBZ0IsV0FBVyw2QkFBWCxXQUFXLGlHQUFrQjtZQUc3QyxtTEFBZ0IsVUFBVSw2QkFBVixVQUFVLCtGQUFlO1lBMUIzQyw2S0FxSUM7Ozs7UUFwSVEsTUFBTSxDQUFDLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUE7Ozs7Ozs7Ozs7R0FVOUIsQ0FBQztRQUdGLDZFQUFtQyxJQUFJLEVBQUM7UUFBeEMsSUFBZ0IsUUFBUSw4Q0FBZ0I7UUFBeEMsSUFBZ0IsUUFBUSxvREFBZ0I7UUFHeEMsc0lBQW9DLEtBQUssR0FBQztRQUExQyxJQUFnQixTQUFTLCtDQUFpQjtRQUExQyxJQUFnQixTQUFTLHFEQUFpQjtRQUcxQyx5SUFBc0MsS0FBSyxHQUFDO1FBQTVDLElBQWdCLFVBQVUsZ0RBQWtCO1FBQTVDLElBQWdCLFVBQVUsc0RBQWtCO1FBRzVDLDRJQUF1QyxLQUFLLEdBQUM7UUFBN0MsSUFBZ0IsV0FBVyxpREFBa0I7UUFBN0MsSUFBZ0IsV0FBVyx1REFBa0I7UUFHN0MsMklBQXFDLEdBQUcsR0FBQztRQUF6QyxJQUFnQixVQUFVLGdEQUFlO1FBQXpDLElBQWdCLFVBQVUsc0RBQWU7UUFFbEMsTUFBTSxDQUFDLE1BQU0sR0FBRztZQUNyQixVQUFVLENBQUMsYUFBYTtZQUN4QixHQUFHLENBQUE7Ozs7Ozs7c0JBT2UsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDOzRCQUNsQyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7Ozs7Ozs7Ozs7Ozs7O2lCQWNuRCxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7Ozs7O2lCQUt4QyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7OztpQkFrQnhDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQzs7Ozs7aUJBS3hDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQzs7Ozs7Ozs7Ozs7OztzQkFhbkMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsd0JBQXdCLENBQUM7aUJBQzVELFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQzs7OztzQkFJbkMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsd0JBQXdCLENBQUM7aUJBQzVELFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQzs7S0FFcEQ7U0FDRixDQUFDO1FBRUssTUFBTTtZQUNYLE9BQU8sSUFBSSxDQUFBOzs7Ozs7Ozs7NkNBUzhCLElBQUksQ0FBQyxRQUFRO2lDQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVU7Z0JBQ3hELElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVTs7Ozs4Q0FJVCxJQUFJLENBQUMsU0FBUztpQ0FDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVO2dCQUN6RCxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVU7Ozs7O3VDQUtqQixJQUFJLENBQUMsVUFBVTs7OztLQUlqRCxDQUFDO1FBQ0osQ0FBQzs7Ozs7O1lBcElVLHVEQUFrQjs7Ozs7U0FBbEIsa0JBQWtCIn0=

View File

@@ -1,67 +0,0 @@
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
declare global {
interface HTMLElementTagNameMap {
'sz-service-create-view': SzServiceCreateView;
}
}
export interface IRegistry {
id: string;
name: string;
url: string;
}
export interface IPortMapping {
hostPort: string;
containerPort: string;
protocol: 'tcp' | 'udp';
}
export interface IEnvVar {
key: string;
value: string;
}
export interface IVolumeMount {
hostPath: string;
containerPath: string;
readOnly: boolean;
}
export interface IServiceConfig {
name: string;
image: string;
ports: IPortMapping[];
envVars: IEnvVar[];
volumes: IVolumeMount[];
cpuLimit: string;
memoryLimit: string;
restartPolicy: 'always' | 'on-failure' | 'never';
networkMode: string;
}
export declare class SzServiceCreateView extends DeesElement {
static demo: () => TemplateResult<1>;
accessor registries: IRegistry[];
accessor loading: boolean;
private accessor serviceName;
private accessor imageUrl;
private accessor selectedRegistry;
private accessor ports;
private accessor envVars;
private accessor volumes;
private accessor cpuLimit;
private accessor memoryLimit;
private accessor restartPolicy;
private accessor networkMode;
private accessor showAdvanced;
static styles: import("@design.estate/dees-element").CSSResult[];
render(): TemplateResult;
private isValid;
private addPort;
private removePort;
private updatePort;
private addEnvVar;
private removeEnvVar;
private updateEnvVar;
private addVolume;
private removeVolume;
private updateVolume;
private handleCancel;
private handleCreate;
reset(): void;
}

File diff suppressed because one or more lines are too long

View File

@@ -1,57 +0,0 @@
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
import './sz-stat-card.js';
declare global {
interface HTMLElementTagNameMap {
'sz-service-detail-view': SzServiceDetailView;
}
}
export interface IServiceDetail {
name: string;
status: 'running' | 'stopped' | 'starting' | 'error';
image: string;
port: number;
domain: string | null;
containerId: string;
created: string;
updated: string;
registry: string;
repository: string;
tag: string;
}
export interface IServiceStats {
cpu: number;
memory: string;
memoryLimit: string;
networkIn: string;
networkOut: string;
}
export interface IServiceBackup {
id: string;
createdAt: string;
size: string;
type: string;
}
export interface ILogEntry {
timestamp: string;
message: string;
level?: 'info' | 'warn' | 'error';
}
export declare class SzServiceDetailView extends DeesElement {
static demo: () => TemplateResult<1>;
accessor service: IServiceDetail;
accessor stats: IServiceStats;
accessor backups: IServiceBackup[];
accessor logs: ILogEntry[];
accessor streaming: boolean;
static styles: import("@design.estate/dees-element").CSSResult[];
render(): TemplateResult;
private handleBack;
private handleEdit;
private handleAction;
private toggleStreaming;
private handleClearLogs;
private handleCreateBackup;
private handleDownloadBackup;
private handleRestoreBackup;
private handleDeleteBackup;
}

File diff suppressed because one or more lines are too long

View File

@@ -1,37 +0,0 @@
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
declare global {
interface HTMLElementTagNameMap {
'sz-services-backups-view': SzServicesBackupsView;
}
}
export interface IBackupSchedule {
id: string;
scope: string;
retention: string;
schedule: string;
lastRun?: string;
nextRun?: string;
status: 'active' | 'failed' | 'disabled';
error?: string;
}
export interface IBackup {
id: string;
service: string;
createdAt: string;
size: string;
includes: string[];
}
export declare class SzServicesBackupsView extends DeesElement {
static demo: () => TemplateResult<1>;
accessor schedules: IBackupSchedule[];
accessor backups: IBackup[];
static styles: import("@design.estate/dees-element").CSSResult[];
render(): TemplateResult;
private handleImport;
private handleCreateSchedule;
private handleRunNow;
private handleToggle;
private handleDeleteSchedule;
private handleDownload;
private handleDeleteBackup;
}

File diff suppressed because one or more lines are too long

View File

@@ -1,20 +0,0 @@
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
declare global {
interface HTMLElementTagNameMap {
'sz-services-list-view': SzServicesListView;
}
}
export interface IService {
name: string;
image: string;
domain: string | null;
status: 'running' | 'stopped' | 'starting' | 'error';
}
export declare class SzServicesListView extends DeesElement {
static demo: () => TemplateResult<1>;
accessor services: IService[];
static styles: import("@design.estate/dees-element").CSSResult[];
render(): TemplateResult;
private handleServiceClick;
private handleAction;
}

File diff suppressed because one or more lines are too long

View File

@@ -1,30 +0,0 @@
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
declare global {
interface HTMLElementTagNameMap {
'sz-settings-view': SzSettingsView;
}
}
export interface ISettings {
darkMode: boolean;
cloudflareToken: string;
cloudflareZoneId: string;
autoRenewCerts: boolean;
renewalThreshold: number;
acmeEmail: string;
httpPort: number;
httpsPort: number;
forceHttps: boolean;
}
export declare class SzSettingsView extends DeesElement {
static demo: () => TemplateResult<1>;
accessor settings: ISettings;
accessor currentUser: string;
static styles: import("@design.estate/dees-element").CSSResult[];
render(): TemplateResult;
private toggleDarkMode;
private toggleSetting;
private updateSetting;
private handleChangePassword;
private handleReset;
private handleSave;
}

File diff suppressed because one or more lines are too long

View File

@@ -1,17 +0,0 @@
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
declare global {
interface HTMLElementTagNameMap {
'sz-stat-card': SzStatCard;
}
}
export declare class SzStatCard extends DeesElement {
static demo: () => TemplateResult<1>;
accessor label: string;
accessor value: string;
accessor icon: string;
accessor variant: 'default' | 'success' | 'warning' | 'error';
accessor valueBadge: boolean;
static styles: import("@design.estate/dees-element").CSSResult[];
render(): TemplateResult;
private renderIcon;
}

View File

@@ -1,249 +0,0 @@
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
var _, done = false;
for (var i = decorators.length - 1; i >= 0; i--) {
var context = {};
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
if (kind === "accessor") {
if (result === void 0) continue;
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
if (_ = accept(result.get)) descriptor.get = _;
if (_ = accept(result.set)) descriptor.set = _;
if (_ = accept(result.init)) initializers.unshift(_);
}
else if (_ = accept(result)) {
if (kind === "field") initializers.unshift(_);
else descriptor[key] = _;
}
}
if (target) Object.defineProperty(target, contextIn.name, descriptor);
done = true;
};
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
var useValue = arguments.length > 2;
for (var i = 0; i < initializers.length; i++) {
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
}
return useValue ? value : void 0;
};
import { DeesElement, customElement, html, css, cssManager, property, } from '@design.estate/dees-element';
let SzStatCard = (() => {
let _classDecorators = [customElement('sz-stat-card')];
let _classDescriptor;
let _classExtraInitializers = [];
let _classThis;
let _classSuper = DeesElement;
let _label_decorators;
let _label_initializers = [];
let _label_extraInitializers = [];
let _value_decorators;
let _value_initializers = [];
let _value_extraInitializers = [];
let _icon_decorators;
let _icon_initializers = [];
let _icon_extraInitializers = [];
let _variant_decorators;
let _variant_initializers = [];
let _variant_extraInitializers = [];
let _valueBadge_decorators;
let _valueBadge_initializers = [];
let _valueBadge_extraInitializers = [];
var SzStatCard = class extends _classSuper {
static { _classThis = this; }
static {
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
_label_decorators = [property({ type: String })];
_value_decorators = [property({ type: String })];
_icon_decorators = [property({ type: String })];
_variant_decorators = [property({ type: String })];
_valueBadge_decorators = [property({ type: Boolean })];
__esDecorate(this, null, _label_decorators, { kind: "accessor", name: "label", static: false, private: false, access: { has: obj => "label" in obj, get: obj => obj.label, set: (obj, value) => { obj.label = value; } }, metadata: _metadata }, _label_initializers, _label_extraInitializers);
__esDecorate(this, null, _value_decorators, { kind: "accessor", name: "value", static: false, private: false, access: { has: obj => "value" in obj, get: obj => obj.value, set: (obj, value) => { obj.value = value; } }, metadata: _metadata }, _value_initializers, _value_extraInitializers);
__esDecorate(this, null, _icon_decorators, { kind: "accessor", name: "icon", static: false, private: false, access: { has: obj => "icon" in obj, get: obj => obj.icon, set: (obj, value) => { obj.icon = value; } }, metadata: _metadata }, _icon_initializers, _icon_extraInitializers);
__esDecorate(this, null, _variant_decorators, { kind: "accessor", name: "variant", static: false, private: false, access: { has: obj => "variant" in obj, get: obj => obj.variant, set: (obj, value) => { obj.variant = value; } }, metadata: _metadata }, _variant_initializers, _variant_extraInitializers);
__esDecorate(this, null, _valueBadge_decorators, { kind: "accessor", name: "valueBadge", static: false, private: false, access: { has: obj => "valueBadge" in obj, get: obj => obj.valueBadge, set: (obj, value) => { obj.valueBadge = value; } }, metadata: _metadata }, _valueBadge_initializers, _valueBadge_extraInitializers);
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
SzStatCard = _classThis = _classDescriptor.value;
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
}
static demo = () => html `
<style>
.demo-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 16px;
padding: 24px;
max-width: 800px;
}
</style>
<div class="demo-grid">
<sz-stat-card
label="Total Services"
value="7"
icon="server"
></sz-stat-card>
<sz-stat-card
label="Running"
value="7"
icon="check"
variant="success"
></sz-stat-card>
<sz-stat-card
label="Stopped"
value="0"
icon="stop"
></sz-stat-card>
<sz-stat-card
label="Docker"
value="Running"
icon="container"
variant="success"
valueBadge
></sz-stat-card>
</div>
`;
#label_accessor_storage = __runInitializers(this, _label_initializers, '');
get label() { return this.#label_accessor_storage; }
set label(value) { this.#label_accessor_storage = value; }
#value_accessor_storage = (__runInitializers(this, _label_extraInitializers), __runInitializers(this, _value_initializers, ''));
get value() { return this.#value_accessor_storage; }
set value(value) { this.#value_accessor_storage = value; }
#icon_accessor_storage = (__runInitializers(this, _value_extraInitializers), __runInitializers(this, _icon_initializers, ''));
get icon() { return this.#icon_accessor_storage; }
set icon(value) { this.#icon_accessor_storage = value; }
#variant_accessor_storage = (__runInitializers(this, _icon_extraInitializers), __runInitializers(this, _variant_initializers, 'default'));
get variant() { return this.#variant_accessor_storage; }
set variant(value) { this.#variant_accessor_storage = value; }
#valueBadge_accessor_storage = (__runInitializers(this, _variant_extraInitializers), __runInitializers(this, _valueBadge_initializers, false));
get valueBadge() { return this.#valueBadge_accessor_storage; }
set valueBadge(value) { this.#valueBadge_accessor_storage = value; }
static styles = [
cssManager.defaultStyles,
css `
:host {
display: block;
height: 100%;
}
.card {
background: ${cssManager.bdTheme('#ffffff', '#09090b')};
border: 1px solid ${cssManager.bdTheme('#e4e4e7', '#27272a')};
border-radius: 8px;
padding: 20px;
transition: all 200ms ease;
height: 100%;
box-sizing: border-box;
}
.card:hover {
border-color: ${cssManager.bdTheme('#d4d4d8', '#3f3f46')};
box-shadow: 0 4px 12px ${cssManager.bdTheme('rgba(0,0,0,0.05)', 'rgba(0,0,0,0.2)')};
}
.header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 8px;
}
.label {
font-size: 14px;
font-weight: 500;
color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
}
.icon {
width: 20px;
height: 20px;
color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
}
.value {
font-size: 28px;
font-weight: 700;
color: ${cssManager.bdTheme('#18181b', '#fafafa')};
line-height: 1.2;
}
.value.success {
color: ${cssManager.bdTheme('#16a34a', '#22c55e')};
}
.value.warning {
color: ${cssManager.bdTheme('#ca8a04', '#facc15')};
}
.value.error {
color: ${cssManager.bdTheme('#dc2626', '#ef4444')};
}
.badge {
display: inline-flex;
align-items: center;
padding: 4px 12px;
border-radius: 9999px;
font-size: 14px;
font-weight: 500;
}
.badge.success {
background: ${cssManager.bdTheme('#dcfce7', 'rgba(34, 197, 94, 0.2)')};
color: ${cssManager.bdTheme('#16a34a', '#22c55e')};
}
.badge.warning {
background: ${cssManager.bdTheme('#fef9c3', 'rgba(250, 204, 21, 0.2)')};
color: ${cssManager.bdTheme('#ca8a04', '#facc15')};
}
.badge.error {
background: ${cssManager.bdTheme('#fee2e2', 'rgba(239, 68, 68, 0.2)')};
color: ${cssManager.bdTheme('#dc2626', '#ef4444')};
}
.badge.default {
background: ${cssManager.bdTheme('#f4f4f5', '#27272a')};
color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
}
`,
];
render() {
const valueClass = this.valueBadge ? `badge ${this.variant}` : `value ${this.variant}`;
return html `
<div class="card">
<div class="header">
<span class="label">${this.label}</span>
${this.renderIcon()}
</div>
<div class="${valueClass}">${this.value}</div>
</div>
`;
}
renderIcon() {
const icons = {
server: html `<svg class="icon" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><rect x="2" y="2" width="20" height="8" rx="2" ry="2"></rect><rect x="2" y="14" width="20" height="8" rx="2" ry="2"></rect><line x1="6" y1="6" x2="6.01" y2="6"></line><line x1="6" y1="18" x2="6.01" y2="18"></line></svg>`,
check: html `<svg class="icon" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><polyline points="20 6 9 17 4 12"></polyline></svg>`,
stop: html `<svg class="icon" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="10" y1="15" x2="10" y2="9"></line><line x1="14" y1="15" x2="14" y2="9"></line></svg>`,
container: html `<svg class="icon" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path></svg>`,
};
return icons[this.icon] || html ``;
}
constructor() {
super(...arguments);
__runInitializers(this, _valueBadge_extraInitializers);
}
static {
__runInitializers(_classThis, _classExtraInitializers);
}
};
return SzStatCard = _classThis;
})();
export { SzStatCard };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3otc3RhdC1jYXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHNfd2ViL2VsZW1lbnRzL3N6LXN0YXQtY2FyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUNMLFdBQVcsRUFDWCxhQUFhLEVBQ2IsSUFBSSxFQUNKLEdBQUcsRUFDSCxVQUFVLEVBQ1YsUUFBUSxHQUVULE1BQU0sNkJBQTZCLENBQUM7SUFTeEIsVUFBVTs0QkFEdEIsYUFBYSxDQUFDLGNBQWMsQ0FBQzs7OztzQkFDRSxXQUFXOzs7Ozs7Ozs7Ozs7Ozs7OzBCQUFuQixTQUFRLFdBQVc7Ozs7aUNBc0N4QyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7aUNBRzFCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztnQ0FHMUIsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO21DQUcxQixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7c0NBRzFCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQztZQVg1QixvS0FBZ0IsS0FBSyw2QkFBTCxLQUFLLHFGQUFjO1lBR25DLG9LQUFnQixLQUFLLDZCQUFMLEtBQUsscUZBQWM7WUFHbkMsaUtBQWdCLElBQUksNkJBQUosSUFBSSxtRkFBYztZQUdsQywwS0FBZ0IsT0FBTyw2QkFBUCxPQUFPLHlGQUEwRDtZQUdqRixtTEFBZ0IsVUFBVSw2QkFBVixVQUFVLCtGQUFrQjtZQW5EOUMsNktBeUtDOzs7O1FBeEtRLE1BQU0sQ0FBQyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1DOUIsQ0FBQztRQUdGLHVFQUFnQyxFQUFFLEVBQUM7UUFBbkMsSUFB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

View File

@@ -1,19 +0,0 @@
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
import './sz-stat-card.js';
declare global {
interface HTMLElementTagNameMap {
'sz-status-grid-cluster': SzStatusGridCluster;
}
}
export interface IClusterStats {
totalServices: number;
running: number;
stopped: number;
dockerStatus: 'running' | 'stopped';
}
export declare class SzStatusGridCluster extends DeesElement {
static demo: () => TemplateResult<1>;
accessor stats: IClusterStats;
static styles: import("@design.estate/dees-element").CSSResult[];
render(): TemplateResult;
}

View File

@@ -1,142 +0,0 @@
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
var _, done = false;
for (var i = decorators.length - 1; i >= 0; i--) {
var context = {};
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
if (kind === "accessor") {
if (result === void 0) continue;
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
if (_ = accept(result.get)) descriptor.get = _;
if (_ = accept(result.set)) descriptor.set = _;
if (_ = accept(result.init)) initializers.unshift(_);
}
else if (_ = accept(result)) {
if (kind === "field") initializers.unshift(_);
else descriptor[key] = _;
}
}
if (target) Object.defineProperty(target, contextIn.name, descriptor);
done = true;
};
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
var useValue = arguments.length > 2;
for (var i = 0; i < initializers.length; i++) {
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
}
return useValue ? value : void 0;
};
import { DeesElement, customElement, html, css, cssManager, property, } from '@design.estate/dees-element';
import './sz-stat-card.js';
let SzStatusGridCluster = (() => {
let _classDecorators = [customElement('sz-status-grid-cluster')];
let _classDescriptor;
let _classExtraInitializers = [];
let _classThis;
let _classSuper = DeesElement;
let _stats_decorators;
let _stats_initializers = [];
let _stats_extraInitializers = [];
var SzStatusGridCluster = class extends _classSuper {
static { _classThis = this; }
static {
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
_stats_decorators = [property({ type: Object })];
__esDecorate(this, null, _stats_decorators, { kind: "accessor", name: "stats", static: false, private: false, access: { has: obj => "stats" in obj, get: obj => obj.stats, set: (obj, value) => { obj.stats = value; } }, metadata: _metadata }, _stats_initializers, _stats_extraInitializers);
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
SzStatusGridCluster = _classThis = _classDescriptor.value;
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
}
static demo = () => html `
<div style="padding: 24px; max-width: 900px;">
<sz-status-grid-cluster
.stats=${{
totalServices: 7,
running: 7,
stopped: 0,
dockerStatus: 'running',
}}
></sz-status-grid-cluster>
</div>
`;
#stats_accessor_storage = __runInitializers(this, _stats_initializers, {
totalServices: 0,
running: 0,
stopped: 0,
dockerStatus: 'stopped',
});
get stats() { return this.#stats_accessor_storage; }
set stats(value) { this.#stats_accessor_storage = value; }
static styles = [
cssManager.defaultStyles,
css `
:host {
display: block;
}
.grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 16px;
align-items: stretch;
}
.grid > * {
height: 100%;
}
@media (min-width: 768px) {
.grid {
grid-template-columns: repeat(4, 1fr);
}
}
`,
];
render() {
return html `
<div class="grid">
<sz-stat-card
label="Total Services"
value="${this.stats.totalServices}"
icon="server"
></sz-stat-card>
<sz-stat-card
label="Running"
value="${this.stats.running}"
icon="check"
variant="success"
></sz-stat-card>
<sz-stat-card
label="Stopped"
value="${this.stats.stopped}"
icon="stop"
variant="${this.stats.stopped > 0 ? 'warning' : 'default'}"
></sz-stat-card>
<sz-stat-card
label="Docker"
value="${this.stats.dockerStatus === 'running' ? 'Running' : 'Stopped'}"
icon="container"
variant="${this.stats.dockerStatus === 'running' ? 'success' : 'error'}"
valueBadge
></sz-stat-card>
</div>
`;
}
constructor() {
super(...arguments);
__runInitializers(this, _stats_extraInitializers);
}
static {
__runInitializers(_classThis, _classExtraInitializers);
}
};
return SzStatusGridCluster = _classThis;
})();
export { SzStatusGridCluster };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3otc3RhdHVzLWdyaWQtY2x1c3Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX3dlYi9lbGVtZW50cy9zei1zdGF0dXMtZ3JpZC1jbHVzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUNYLGFBQWEsRUFDYixJQUFJLEVBQ0osR0FBRyxFQUNILFVBQVUsRUFDVixRQUFRLEdBRVQsTUFBTSw2QkFBNkIsQ0FBQztBQUVyQyxPQUFPLG1CQUFtQixDQUFDO0lBZ0JkLG1CQUFtQjs0QkFEL0IsYUFBYSxDQUFDLHdCQUF3QixDQUFDOzs7O3NCQUNDLFdBQVc7Ozs7bUNBQW5CLFNBQVEsV0FBVzs7OztpQ0FjakQsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQzNCLG9LQUFnQixLQUFLLDZCQUFMLEtBQUsscUZBS25CO1lBcEJKLDZLQThFQzs7OztRQTdFUSxNQUFNLENBQUMsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQTs7O2lCQUdoQjtZQUNQLGFBQWEsRUFBRSxDQUFDO1lBQ2hCLE9BQU8sRUFBRSxDQUFDO1lBQ1YsT0FBTyxFQUFFLENBQUM7WUFDVixZQUFZLEVBQUUsU0FBUztTQUN4Qjs7O0dBR04sQ0FBQztRQUdGLHVFQUF1QztZQUNyQyxhQUFhLEVBQUUsQ0FBQztZQUNoQixPQUFPLEVBQUUsQ0FBQztZQUNWLE9BQU8sRUFBRSxDQUFDO1lBQ1YsWUFBWSxFQUFFLFNBQVM7U0FDeEIsRUFBQztRQUxGLElBQWdCLEtBQUssMkNBS25CO1FBTEYsSUFBZ0IsS0FBSyxpREFLbkI7UUFFSyxNQUFNLENBQUMsTUFBTSxHQUFHO1lBQ3JCLFVBQVUsQ0FBQyxhQUFhO1lBQ3hCLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBcUJGO1NBQ0YsQ0FBQztRQUVLLE1BQU07WUFDWCxPQUFPLElBQUksQ0FBQTs7OzttQkFJSSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWE7Ozs7O21CQUt4QixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU87Ozs7OzttQkFNbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPOztxQkFFaEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVM7Ozs7bUJBSWhELElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTOztxQkFFM0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU87Ozs7S0FJM0UsQ0FBQztRQUNKLENBQUM7Ozs7OztZQTdFVSx1REFBbUI7Ozs7O1NBQW5CLG1CQUFtQiJ9

View File

@@ -1,17 +0,0 @@
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
import './sz-dns-ssl-card.js';
import './sz-quick-actions-card.js';
import type { IQuickAction } from './sz-quick-actions-card.js';
declare global {
interface HTMLElementTagNameMap {
'sz-status-grid-infra': SzStatusGridInfra;
}
}
export declare class SzStatusGridInfra extends DeesElement {
static demo: () => TemplateResult<1>;
accessor dnsConfigured: boolean;
accessor acmeConfigured: boolean;
accessor actions: IQuickAction[];
static styles: import("@design.estate/dees-element").CSSResult[];
render(): TemplateResult;
}

View File

@@ -1,140 +0,0 @@
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
var _, done = false;
for (var i = decorators.length - 1; i >= 0; i--) {
var context = {};
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
if (kind === "accessor") {
if (result === void 0) continue;
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
if (_ = accept(result.get)) descriptor.get = _;
if (_ = accept(result.set)) descriptor.set = _;
if (_ = accept(result.init)) initializers.unshift(_);
}
else if (_ = accept(result)) {
if (kind === "field") initializers.unshift(_);
else descriptor[key] = _;
}
}
if (target) Object.defineProperty(target, contextIn.name, descriptor);
done = true;
};
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
var useValue = arguments.length > 2;
for (var i = 0; i < initializers.length; i++) {
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
}
return useValue ? value : void 0;
};
import { DeesElement, customElement, html, css, cssManager, property, } from '@design.estate/dees-element';
import './sz-dns-ssl-card.js';
import './sz-quick-actions-card.js';
let SzStatusGridInfra = (() => {
let _classDecorators = [customElement('sz-status-grid-infra')];
let _classDescriptor;
let _classExtraInitializers = [];
let _classThis;
let _classSuper = DeesElement;
let _dnsConfigured_decorators;
let _dnsConfigured_initializers = [];
let _dnsConfigured_extraInitializers = [];
let _acmeConfigured_decorators;
let _acmeConfigured_initializers = [];
let _acmeConfigured_extraInitializers = [];
let _actions_decorators;
let _actions_initializers = [];
let _actions_extraInitializers = [];
var SzStatusGridInfra = class extends _classSuper {
static { _classThis = this; }
static {
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
_dnsConfigured_decorators = [property({ type: Boolean })];
_acmeConfigured_decorators = [property({ type: Boolean })];
_actions_decorators = [property({ type: Array })];
__esDecorate(this, null, _dnsConfigured_decorators, { kind: "accessor", name: "dnsConfigured", static: false, private: false, access: { has: obj => "dnsConfigured" in obj, get: obj => obj.dnsConfigured, set: (obj, value) => { obj.dnsConfigured = value; } }, metadata: _metadata }, _dnsConfigured_initializers, _dnsConfigured_extraInitializers);
__esDecorate(this, null, _acmeConfigured_decorators, { kind: "accessor", name: "acmeConfigured", static: false, private: false, access: { has: obj => "acmeConfigured" in obj, get: obj => obj.acmeConfigured, set: (obj, value) => { obj.acmeConfigured = value; } }, metadata: _metadata }, _acmeConfigured_initializers, _acmeConfigured_extraInitializers);
__esDecorate(this, null, _actions_decorators, { kind: "accessor", name: "actions", static: false, private: false, access: { has: obj => "actions" in obj, get: obj => obj.actions, set: (obj, value) => { obj.actions = value; } }, metadata: _metadata }, _actions_initializers, _actions_extraInitializers);
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
SzStatusGridInfra = _classThis = _classDescriptor.value;
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
}
static demo = () => html `
<div style="padding: 24px; max-width: 1200px;">
<sz-status-grid-infra
dnsConfigured
acmeConfigured
.actions=${[
{ label: 'Deploy Service', icon: 'plus', primary: true },
{ label: 'View All Services' },
{ label: 'Platform Services' },
{ label: 'Manage Domains' },
]}
></sz-status-grid-infra>
</div>
`;
#dnsConfigured_accessor_storage = __runInitializers(this, _dnsConfigured_initializers, false);
get dnsConfigured() { return this.#dnsConfigured_accessor_storage; }
set dnsConfigured(value) { this.#dnsConfigured_accessor_storage = value; }
#acmeConfigured_accessor_storage = (__runInitializers(this, _dnsConfigured_extraInitializers), __runInitializers(this, _acmeConfigured_initializers, false));
get acmeConfigured() { return this.#acmeConfigured_accessor_storage; }
set acmeConfigured(value) { this.#acmeConfigured_accessor_storage = value; }
#actions_accessor_storage = (__runInitializers(this, _acmeConfigured_extraInitializers), __runInitializers(this, _actions_initializers, []));
get actions() { return this.#actions_accessor_storage; }
set actions(value) { this.#actions_accessor_storage = value; }
static styles = [
cssManager.defaultStyles,
css `
:host {
display: block;
}
.grid {
display: grid;
grid-template-columns: 1fr;
gap: 16px;
align-items: stretch;
}
.grid > * {
height: 100%;
}
@media (min-width: 768px) {
.grid {
grid-template-columns: 1fr 2fr;
}
}
`,
];
render() {
return html `
<div class="grid">
<sz-dns-ssl-card
?dnsConfigured=${this.dnsConfigured}
?acmeConfigured=${this.acmeConfigured}
></sz-dns-ssl-card>
<sz-quick-actions-card
.actions=${this.actions}
@action-click=${(e) => this.dispatchEvent(new CustomEvent('action-click', { detail: e.detail, bubbles: true, composed: true }))}
></sz-quick-actions-card>
</div>
`;
}
constructor() {
super(...arguments);
__runInitializers(this, _actions_extraInitializers);
}
static {
__runInitializers(_classThis, _classExtraInitializers);
}
};
return SzStatusGridInfra = _classThis;
})();
export { SzStatusGridInfra };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3otc3RhdHVzLWdyaWQtaW5mcmEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvZWxlbWVudHMvc3otc3RhdHVzLWdyaWQtaW5mcmEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxXQUFXLEVBQ1gsYUFBYSxFQUNiLElBQUksRUFDSixHQUFHLEVBQ0gsVUFBVSxFQUNWLFFBQVEsR0FFVCxNQUFNLDZCQUE2QixDQUFDO0FBRXJDLE9BQU8sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyw0QkFBNEIsQ0FBQztJQVd2QixpQkFBaUI7NEJBRDdCLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQzs7OztzQkFDQyxXQUFXOzs7Ozs7Ozs7O2lDQUFuQixTQUFRLFdBQVc7Ozs7eUNBZ0IvQyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7MENBRzNCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQzttQ0FHM0IsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO1lBTDFCLDRMQUFnQixhQUFhLDZCQUFiLGFBQWEscUdBQWtCO1lBRy9DLCtMQUFnQixjQUFjLDZCQUFkLGNBQWMsdUdBQWtCO1lBR2hELDBLQUFnQixPQUFPLDZCQUFQLE9BQU8seUZBQXNCO1lBdkIvQyw2S0FpRUM7Ozs7UUFoRVEsTUFBTSxDQUFDLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUE7Ozs7O21CQUtkO1lBQ1QsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFO1lBQ3hELEVBQUUsS0FBSyxFQUFFLG1CQUFtQixFQUFFO1lBQzlCLEVBQUUsS0FBSyxFQUFFLG1CQUFtQixFQUFFO1lBQzlCLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFO1NBQzVCOzs7R0FHTixDQUFDO1FBR0YsdUZBQXlDLEtBQUssRUFBQztRQUEvQyxJQUFnQixhQUFhLG1EQUFrQjtRQUEvQyxJQUFnQixhQUFhLHlEQUFrQjtRQUcvQyxxSkFBMEMsS0FBSyxHQUFDO1FBQWhELElBQWdCLGNBQWMsb0RBQWtCO1FBQWhELElBQWdCLGNBQWMsMERBQWtCO1FBR2hELHdJQUEwQyxFQUFFLEdBQUM7UUFBN0MsSUFBZ0IsT0FBTyw2Q0FBc0I7UUFBN0MsSUFBZ0IsT0FBTyxtREFBc0I7UUFFdEMsTUFBTSxDQUFDLE1BQU0sR0FBRztZQUNyQixVQUFVLENBQUMsYUFBYTtZQUN4QixHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQXFCRjtTQUNGLENBQUM7UUFFSyxNQUFNO1lBQ1gsT0FBTyxJQUFJLENBQUE7OzsyQkFHWSxJQUFJLENBQUMsYUFBYTs0QkFDakIsSUFBSSxDQUFDLGNBQWM7OztxQkFHMUIsSUFBSSxDQUFDLE9BQU87MEJBQ1AsQ0FBQyxDQUFjLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxXQUFXLENBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQzs7O0tBR2pKLENBQUM7UUFDSixDQUFDOzs7Ozs7WUFoRVUsdURBQWlCOzs7OztTQUFqQixpQkFBaUIifQ==

View File

@@ -1,30 +0,0 @@
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
import './sz-traffic-card.js';
import './sz-reverse-proxy-card.js';
import './sz-certificates-card.js';
import type { ITrafficData } from './sz-traffic-card.js';
declare global {
interface HTMLElementTagNameMap {
'sz-status-grid-network': SzStatusGridNetwork;
}
}
export interface IProxyStatus {
httpPort: string;
httpsPort: string;
httpActive: boolean;
httpsActive: boolean;
routeCount: string;
}
export interface ICertificateStatus {
valid: number;
expiring: number;
expired: number;
}
export declare class SzStatusGridNetwork extends DeesElement {
static demo: () => TemplateResult<1>;
accessor traffic: ITrafficData;
accessor proxy: IProxyStatus;
accessor certificates: ICertificateStatus;
static styles: import("@design.estate/dees-element").CSSResult[];
render(): TemplateResult;
}

View File

@@ -1,190 +0,0 @@
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
var _, done = false;
for (var i = decorators.length - 1; i >= 0; i--) {
var context = {};
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
if (kind === "accessor") {
if (result === void 0) continue;
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
if (_ = accept(result.get)) descriptor.get = _;
if (_ = accept(result.set)) descriptor.set = _;
if (_ = accept(result.init)) initializers.unshift(_);
}
else if (_ = accept(result)) {
if (kind === "field") initializers.unshift(_);
else descriptor[key] = _;
}
}
if (target) Object.defineProperty(target, contextIn.name, descriptor);
done = true;
};
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
var useValue = arguments.length > 2;
for (var i = 0; i < initializers.length; i++) {
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
}
return useValue ? value : void 0;
};
import { DeesElement, customElement, html, css, cssManager, property, } from '@design.estate/dees-element';
import './sz-traffic-card.js';
import './sz-reverse-proxy-card.js';
import './sz-certificates-card.js';
let SzStatusGridNetwork = (() => {
let _classDecorators = [customElement('sz-status-grid-network')];
let _classDescriptor;
let _classExtraInitializers = [];
let _classThis;
let _classSuper = DeesElement;
let _traffic_decorators;
let _traffic_initializers = [];
let _traffic_extraInitializers = [];
let _proxy_decorators;
let _proxy_initializers = [];
let _proxy_extraInitializers = [];
let _certificates_decorators;
let _certificates_initializers = [];
let _certificates_extraInitializers = [];
var SzStatusGridNetwork = class extends _classSuper {
static { _classThis = this; }
static {
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
_traffic_decorators = [property({ type: Object })];
_proxy_decorators = [property({ type: Object })];
_certificates_decorators = [property({ type: Object })];
__esDecorate(this, null, _traffic_decorators, { kind: "accessor", name: "traffic", static: false, private: false, access: { has: obj => "traffic" in obj, get: obj => obj.traffic, set: (obj, value) => { obj.traffic = value; } }, metadata: _metadata }, _traffic_initializers, _traffic_extraInitializers);
__esDecorate(this, null, _proxy_decorators, { kind: "accessor", name: "proxy", static: false, private: false, access: { has: obj => "proxy" in obj, get: obj => obj.proxy, set: (obj, value) => { obj.proxy = value; } }, metadata: _metadata }, _proxy_initializers, _proxy_extraInitializers);
__esDecorate(this, null, _certificates_decorators, { kind: "accessor", name: "certificates", static: false, private: false, access: { has: obj => "certificates" in obj, get: obj => obj.certificates, set: (obj, value) => { obj.certificates = value; } }, metadata: _metadata }, _certificates_initializers, _certificates_extraInitializers);
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
SzStatusGridNetwork = _classThis = _classDescriptor.value;
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
}
static demo = () => html `
<div style="padding: 24px; max-width: 1400px;">
<sz-status-grid-network
.traffic=${{
totalRequests: 125420,
requestsPerMinute: 847,
errorRate: 0.12,
avgResponseTime: 45,
statusDistribution: {
'2xx': 95.2,
'3xx': 2.1,
'4xx': 2.3,
'5xx': 0.4,
},
}}
.proxy=${{
httpPort: '80',
httpsPort: '443',
httpActive: true,
httpsActive: true,
routeCount: '12',
}}
.certificates=${{
valid: 8,
expiring: 2,
expired: 0,
}}
></sz-status-grid-network>
</div>
`;
#traffic_accessor_storage = __runInitializers(this, _traffic_initializers, {
requests: 0,
errors: 0,
errorPercent: 0,
avgResponse: 0,
reqPerMin: 0,
status2xx: 0,
status3xx: 0,
status4xx: 0,
status5xx: 0,
});
get traffic() { return this.#traffic_accessor_storage; }
set traffic(value) { this.#traffic_accessor_storage = value; }
#proxy_accessor_storage = (__runInitializers(this, _traffic_extraInitializers), __runInitializers(this, _proxy_initializers, {
httpPort: '80',
httpsPort: '443',
httpActive: false,
httpsActive: false,
routeCount: '0',
}));
get proxy() { return this.#proxy_accessor_storage; }
set proxy(value) { this.#proxy_accessor_storage = value; }
#certificates_accessor_storage = (__runInitializers(this, _proxy_extraInitializers), __runInitializers(this, _certificates_initializers, {
valid: 0,
expiring: 0,
expired: 0,
}));
get certificates() { return this.#certificates_accessor_storage; }
set certificates(value) { this.#certificates_accessor_storage = value; }
static styles = [
cssManager.defaultStyles,
css `
:host {
display: block;
}
.grid {
display: grid;
grid-template-columns: 1fr;
gap: 16px;
align-items: stretch;
}
.grid > * {
height: 100%;
}
@media (min-width: 768px) {
.grid {
grid-template-columns: 1fr 1fr;
}
}
@media (min-width: 1024px) {
.grid {
grid-template-columns: 2fr 1fr 1fr;
}
}
`,
];
render() {
return html `
<div class="grid">
<sz-traffic-card
.data=${this.traffic}
></sz-traffic-card>
<sz-reverse-proxy-card
httpPort="${this.proxy.httpPort}"
httpsPort="${this.proxy.httpsPort}"
?httpActive=${this.proxy.httpActive}
?httpsActive=${this.proxy.httpsActive}
routeCount="${this.proxy.routeCount}"
></sz-reverse-proxy-card>
<sz-certificates-card
valid="${this.certificates.valid}"
expiring="${this.certificates.expiring}"
expired="${this.certificates.expired}"
></sz-certificates-card>
</div>
`;
}
constructor() {
super(...arguments);
__runInitializers(this, _certificates_extraInitializers);
}
static {
__runInitializers(_classThis, _classExtraInitializers);
}
};
return SzStatusGridNetwork = _classThis;
})();
export { SzStatusGridNetwork };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3otc3RhdHVzLWdyaWQtbmV0d29yay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX3dlYi9lbGVtZW50cy9zei1zdGF0dXMtZ3JpZC1uZXR3b3JrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUNYLGFBQWEsRUFDYixJQUFJLEVBQ0osR0FBRyxFQUNILFVBQVUsRUFDVixRQUFRLEdBRVQsTUFBTSw2QkFBNkIsQ0FBQztBQUVyQyxPQUFPLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sNEJBQTRCLENBQUM7QUFDcEMsT0FBTywyQkFBMkIsQ0FBQztJQXlCdEIsbUJBQW1COzRCQUQvQixhQUFhLENBQUMsd0JBQXdCLENBQUM7Ozs7c0JBQ0MsV0FBVzs7Ozs7Ozs7OzttQ0FBbkIsU0FBUSxXQUFXOzs7O21DQWdDakQsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO2lDQWExQixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7d0NBUzFCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztZQXJCM0IsMEtBQWdCLE9BQU8sNkJBQVAsT0FBTyx5RkFVckI7WUFHRixvS0FBZ0IsS0FBSyw2QkFBTCxLQUFLLHFGQU1uQjtZQUdGLHlMQUFnQixZQUFZLDZCQUFaLFlBQVksbUdBSTFCO1lBM0RKLDZLQWtIQzs7OztRQWpIUSxNQUFNLENBQUMsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQTs7O21CQUdkO1lBQ1QsYUFBYSxFQUFFLE1BQU07WUFDckIsaUJBQWlCLEVBQUUsR0FBRztZQUN0QixTQUFTLEVBQUUsSUFBSTtZQUNmLGVBQWUsRUFBRSxFQUFFO1lBQ25CLGtCQUFrQixFQUFFO2dCQUNsQixLQUFLLEVBQUUsSUFBSTtnQkFDWCxLQUFLLEVBQUUsR0FBRztnQkFDVixLQUFLLEVBQUUsR0FBRztnQkFDVixLQUFLLEVBQUUsR0FBRzthQUNYO1NBQ0Y7aUJBQ1E7WUFDUCxRQUFRLEVBQUUsSUFBSTtZQUNkLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLFVBQVUsRUFBRSxJQUFJO1NBQ2pCO3dCQUNlO1lBQ2QsS0FBSyxFQUFFLENBQUM7WUFDUixRQUFRLEVBQUUsQ0FBQztZQUNYLE9BQU8sRUFBRSxDQUFDO1NBQ1g7OztHQUdOLENBQUM7UUFHRiwyRUFBd0M7WUFDdEMsUUFBUSxFQUFFLENBQUM7WUFDWCxNQUFNLEVBQUUsQ0FBQztZQUNULFlBQVksRUFBRSxDQUFDO1lBQ2YsV0FBVyxFQUFFLENBQUM7WUFDZCxTQUFTLEVBQUUsQ0FBQztZQUNaLFNBQVMsRUFBRSxDQUFDO1lBQ1osU0FBUyxFQUFFLENBQUM7WUFDWixTQUFTLEVBQUUsQ0FBQztZQUNaLFNBQVMsRUFBRSxDQUFDO1NBQ2IsRUFBQztRQVZGLElBQWdCLE9BQU8sNkNBVXJCO1FBVkYsSUFBZ0IsT0FBTyxtREFVckI7UUFHRiw2SEFBc0M7WUFDcEMsUUFBUSxFQUFFLElBQUk7WUFDZCxTQUFTLEVBQUUsS0FBSztZQUNoQixVQUFVLEVBQUUsS0FBSztZQUNqQixXQUFXLEVBQUUsS0FBSztZQUNsQixVQUFVLEVBQUUsR0FBRztTQUNoQixHQUFDO1FBTkYsSUFBZ0IsS0FBSywyQ0FNbkI7UUFORixJQUFnQixLQUFLLGlEQU1uQjtRQUdGLHlJQUFtRDtZQUNqRCxLQUFLLEVBQUUsQ0FBQztZQUNSLFFBQVEsRUFBRSxDQUFDO1lBQ1gsT0FBTyxFQUFFLENBQUM7U0FDWCxHQUFDO1FBSkYsSUFBZ0IsWUFBWSxrREFJMUI7UUFKRixJQUFnQixZQUFZLHdEQUkxQjtRQUVLLE1BQU0sQ0FBQyxNQUFNLEdBQUc7WUFDckIsVUFBVSxDQUFDLGFBQWE7WUFDeEIsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0EyQkY7U0FDRixDQUFDO1FBRUssTUFBTTtZQUNYLE9BQU8sSUFBSSxDQUFBOzs7a0JBR0csSUFBSSxDQUFDLE9BQU87OztzQkFHUixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVE7dUJBQ2xCLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUzt3QkFDbkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVO3lCQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVc7d0JBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVTs7O21CQUcxQixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUs7c0JBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUTtxQkFDM0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPOzs7S0FHekMsQ0FBQztRQUNKLENBQUM7Ozs7OztZQWpIVSx1REFBbUI7Ozs7O1NBQW5CLG1CQUFtQiJ9

View File

@@ -1,17 +0,0 @@
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
import './sz-resource-usage-card.js';
import './sz-platform-services-card.js';
import type { IResourceUsage } from './sz-resource-usage-card.js';
import type { IPlatformService } from './sz-platform-services-card.js';
declare global {
interface HTMLElementTagNameMap {
'sz-status-grid-services': SzStatusGridServices;
}
}
export declare class SzStatusGridServices extends DeesElement {
static demo: () => TemplateResult<1>;
accessor resourceUsage: IResourceUsage;
accessor platformServices: IPlatformService[];
static styles: import("@design.estate/dees-element").CSSResult[];
render(): TemplateResult;
}

View File

@@ -1,145 +0,0 @@
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
var _, done = false;
for (var i = decorators.length - 1; i >= 0; i--) {
var context = {};
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
if (kind === "accessor") {
if (result === void 0) continue;
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
if (_ = accept(result.get)) descriptor.get = _;
if (_ = accept(result.set)) descriptor.set = _;
if (_ = accept(result.init)) initializers.unshift(_);
}
else if (_ = accept(result)) {
if (kind === "field") initializers.unshift(_);
else descriptor[key] = _;
}
}
if (target) Object.defineProperty(target, contextIn.name, descriptor);
done = true;
};
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
var useValue = arguments.length > 2;
for (var i = 0; i < initializers.length; i++) {
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
}
return useValue ? value : void 0;
};
import { DeesElement, customElement, html, css, cssManager, property, } from '@design.estate/dees-element';
import './sz-resource-usage-card.js';
import './sz-platform-services-card.js';
let SzStatusGridServices = (() => {
let _classDecorators = [customElement('sz-status-grid-services')];
let _classDescriptor;
let _classExtraInitializers = [];
let _classThis;
let _classSuper = DeesElement;
let _resourceUsage_decorators;
let _resourceUsage_initializers = [];
let _resourceUsage_extraInitializers = [];
let _platformServices_decorators;
let _platformServices_initializers = [];
let _platformServices_extraInitializers = [];
var SzStatusGridServices = class extends _classSuper {
static { _classThis = this; }
static {
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
_resourceUsage_decorators = [property({ type: Object })];
_platformServices_decorators = [property({ type: Array })];
__esDecorate(this, null, _resourceUsage_decorators, { kind: "accessor", name: "resourceUsage", static: false, private: false, access: { has: obj => "resourceUsage" in obj, get: obj => obj.resourceUsage, set: (obj, value) => { obj.resourceUsage = value; } }, metadata: _metadata }, _resourceUsage_initializers, _resourceUsage_extraInitializers);
__esDecorate(this, null, _platformServices_decorators, { kind: "accessor", name: "platformServices", static: false, private: false, access: { has: obj => "platformServices" in obj, get: obj => obj.platformServices, set: (obj, value) => { obj.platformServices = value; } }, metadata: _metadata }, _platformServices_initializers, _platformServices_extraInitializers);
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
SzStatusGridServices = _classThis = _classDescriptor.value;
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
}
static demo = () => html `
<div style="padding: 24px; max-width: 1200px;">
<sz-status-grid-services
.resourceUsage=${{
cpu: { percentage: 45, label: 'CPU Usage' },
memory: { percentage: 62, label: 'Memory', used: '4.96 GB', total: '8 GB' },
network: { percentage: 23, label: 'Network I/O', rate: '1.2 MB/s' },
topConsumers: [
{ name: 'api-service', cpu: 25, memory: 512 },
{ name: 'web-frontend', cpu: 15, memory: 256 },
{ name: 'worker', cpu: 5, memory: 128 },
],
}}
.platformServices=${[
{ name: 'MongoDB', status: 'running' },
{ name: 'S3 Storage', status: 'running' },
{ name: 'ClickHouse', status: 'stopped' },
{ name: 'Redis Cache', status: 'running' },
]}
></sz-status-grid-services>
</div>
`;
#resourceUsage_accessor_storage = __runInitializers(this, _resourceUsage_initializers, {
cpu: 0,
memoryUsed: '0 GB',
memoryTotal: '0 GB',
networkIn: '0 MB/s',
networkOut: '0 MB/s',
topConsumers: [],
});
get resourceUsage() { return this.#resourceUsage_accessor_storage; }
set resourceUsage(value) { this.#resourceUsage_accessor_storage = value; }
#platformServices_accessor_storage = (__runInitializers(this, _resourceUsage_extraInitializers), __runInitializers(this, _platformServices_initializers, []));
get platformServices() { return this.#platformServices_accessor_storage; }
set platformServices(value) { this.#platformServices_accessor_storage = value; }
static styles = [
cssManager.defaultStyles,
css `
:host {
display: block;
}
.grid {
display: grid;
grid-template-columns: 1fr;
gap: 16px;
align-items: stretch;
}
.grid > * {
height: 100%;
}
@media (min-width: 768px) {
.grid {
grid-template-columns: 1fr 1fr;
}
}
`,
];
render() {
return html `
<div class="grid">
<sz-resource-usage-card
.usage=${this.resourceUsage}
></sz-resource-usage-card>
<sz-platform-services-card
.services=${this.platformServices}
></sz-platform-services-card>
</div>
`;
}
constructor() {
super(...arguments);
__runInitializers(this, _platformServices_extraInitializers);
}
static {
__runInitializers(_classThis, _classExtraInitializers);
}
};
return SzStatusGridServices = _classThis;
})();
export { SzStatusGridServices };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3otc3RhdHVzLWdyaWQtc2VydmljZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvZWxlbWVudHMvc3otc3RhdHVzLWdyaWQtc2VydmljZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxXQUFXLEVBQ1gsYUFBYSxFQUNiLElBQUksRUFDSixHQUFHLEVBQ0gsVUFBVSxFQUNWLFFBQVEsR0FFVCxNQUFNLDZCQUE2QixDQUFDO0FBRXJDLE9BQU8sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxnQ0FBZ0MsQ0FBQztJQVkzQixvQkFBb0I7NEJBRGhDLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQzs7OztzQkFDQyxXQUFXOzs7Ozs7O29DQUFuQixTQUFRLFdBQVc7Ozs7eUNBd0JsRCxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7NENBVTFCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQztZQVQxQiw0TEFBZ0IsYUFBYSw2QkFBYixhQUFhLHFHQU8zQjtZQUdGLHFNQUFnQixnQkFBZ0IsNkJBQWhCLGdCQUFnQiwyR0FBMEI7WUFuQzVELDZLQTJFQzs7OztRQTFFUSxNQUFNLENBQUMsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQTs7O3lCQUdSO1lBQ2YsR0FBRyxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFO1lBQzNDLE1BQU0sRUFBRSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7WUFDM0UsT0FBTyxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDbkUsWUFBWSxFQUFFO2dCQUNaLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUU7Z0JBQzdDLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUU7Z0JBQzlDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUU7YUFDeEM7U0FDRjs0QkFDbUI7WUFDbEIsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUU7WUFDdEMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUU7WUFDekMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUU7WUFDekMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUU7U0FDM0M7OztHQUdOLENBQUM7UUFHRix1RkFBZ0Q7WUFDOUMsR0FBRyxFQUFFLENBQUM7WUFDTixVQUFVLEVBQUUsTUFBTTtZQUNsQixXQUFXLEVBQUUsTUFBTTtZQUNuQixTQUFTLEVBQUUsUUFBUTtZQUNuQixVQUFVLEVBQUUsUUFBUTtZQUNwQixZQUFZLEVBQUUsRUFBRTtTQUNqQixFQUFDO1FBUEYsSUFBZ0IsYUFBYSxtREFPM0I7UUFQRixJQUFnQixhQUFhLHlEQU8zQjtRQUdGLHlKQUF1RCxFQUFFLEdBQUM7UUFBMUQsSUFBZ0IsZ0JBQWdCLHNEQUEwQjtRQUExRCxJQUFnQixnQkFBZ0IsNERBQTBCO1FBRW5ELE1BQU0sQ0FBQyxNQUFNLEdBQUc7WUFDckIsVUFBVSxDQUFDLGFBQWE7WUFDeEIsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FxQkY7U0FDRixDQUFDO1FBRUssTUFBTTtZQUNYLE9BQU8sSUFBSSxDQUFBOzs7bUJBR0ksSUFBSSxDQUFDLGFBQWE7OztzQkFHZixJQUFJLENBQUMsZ0JBQWdCOzs7S0FHdEMsQ0FBQztRQUNKLENBQUM7Ozs7OztZQTFFVSx1REFBb0I7Ozs7O1NBQXBCLG9CQUFvQiJ9

View File

@@ -1,26 +0,0 @@
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
declare global {
interface HTMLElementTagNameMap {
'sz-tokens-view': SzTokensView;
}
}
export interface IToken {
id: string;
name: string;
type: 'global' | 'ci';
service?: string;
createdAt: string;
lastUsed?: string;
}
export declare class SzTokensView extends DeesElement {
static demo: () => TemplateResult<1>;
accessor globalTokens: IToken[];
accessor ciTokens: IToken[];
static styles: import("@design.estate/dees-element").CSSResult[];
render(): TemplateResult;
private renderToken;
private handleCreate;
private handleCopy;
private handleRegenerate;
private handleDelete;
}

File diff suppressed because one or more lines are too long

View File

@@ -1,24 +0,0 @@
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
declare global {
interface HTMLElementTagNameMap {
'sz-traffic-card': SzTrafficCard;
}
}
export interface ITrafficData {
requests: number;
errors: number;
errorPercent: number;
avgResponse: number;
reqPerMin: number;
status2xx: number;
status3xx: number;
status4xx: number;
status5xx: number;
}
export declare class SzTrafficCard extends DeesElement {
static demo: () => TemplateResult<1>;
accessor data: ITrafficData;
static styles: import("@design.estate/dees-element").CSSResult[];
render(): TemplateResult;
private formatNumber;
}

View File

@@ -1,255 +0,0 @@
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
var _, done = false;
for (var i = decorators.length - 1; i >= 0; i--) {
var context = {};
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
if (kind === "accessor") {
if (result === void 0) continue;
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
if (_ = accept(result.get)) descriptor.get = _;
if (_ = accept(result.set)) descriptor.set = _;
if (_ = accept(result.init)) initializers.unshift(_);
}
else if (_ = accept(result)) {
if (kind === "field") initializers.unshift(_);
else descriptor[key] = _;
}
}
if (target) Object.defineProperty(target, contextIn.name, descriptor);
done = true;
};
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
var useValue = arguments.length > 2;
for (var i = 0; i < initializers.length; i++) {
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
}
return useValue ? value : void 0;
};
import { DeesElement, customElement, html, css, cssManager, property, } from '@design.estate/dees-element';
let SzTrafficCard = (() => {
let _classDecorators = [customElement('sz-traffic-card')];
let _classDescriptor;
let _classExtraInitializers = [];
let _classThis;
let _classSuper = DeesElement;
let _data_decorators;
let _data_initializers = [];
let _data_extraInitializers = [];
var SzTrafficCard = class extends _classSuper {
static { _classThis = this; }
static {
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
_data_decorators = [property({ type: Object })];
__esDecorate(this, null, _data_decorators, { kind: "accessor", name: "data", static: false, private: false, access: { has: obj => "data" in obj, get: obj => obj.data, set: (obj, value) => { obj.data = value; } }, metadata: _metadata }, _data_initializers, _data_extraInitializers);
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
SzTrafficCard = _classThis = _classDescriptor.value;
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
}
static demo = () => html `
<div style="padding: 24px; max-width: 500px;">
<sz-traffic-card
.data=${{
requests: 1250,
errors: 15,
errorPercent: 1.2,
avgResponse: 145,
reqPerMin: 21,
status2xx: 85,
status3xx: 5,
status4xx: 8,
status5xx: 2,
}}
></sz-traffic-card>
</div>
`;
#data_accessor_storage = __runInitializers(this, _data_initializers, {
requests: 0,
errors: 0,
errorPercent: 0,
avgResponse: 0,
reqPerMin: 0,
status2xx: 0,
status3xx: 0,
status4xx: 0,
status5xx: 0,
});
get data() { return this.#data_accessor_storage; }
set data(value) { this.#data_accessor_storage = value; }
static styles = [
cssManager.defaultStyles,
css `
:host {
display: block;
height: 100%;
}
.card {
background: ${cssManager.bdTheme('#ffffff', '#09090b')};
border: 1px solid ${cssManager.bdTheme('#e4e4e7', '#27272a')};
border-radius: 8px;
padding: 20px;
height: 100%;
box-sizing: border-box;
}
.header {
margin-bottom: 16px;
}
.title {
font-size: 16px;
font-weight: 600;
color: ${cssManager.bdTheme('#18181b', '#fafafa')};
}
.subtitle {
font-size: 13px;
color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
margin-top: 2px;
}
.metrics {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 16px;
margin-bottom: 16px;
}
.metric {
display: flex;
flex-direction: column;
gap: 2px;
}
.metric-label {
font-size: 13px;
color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
}
.metric-value {
font-size: 18px;
font-weight: 600;
color: ${cssManager.bdTheme('#18181b', '#fafafa')};
}
.status-bar-container {
padding-top: 12px;
border-top: 1px solid ${cssManager.bdTheme('#f4f4f5', '#27272a')};
}
.status-bar {
display: flex;
height: 8px;
border-radius: 4px;
overflow: hidden;
background: ${cssManager.bdTheme('#f4f4f5', '#27272a')};
margin-bottom: 8px;
}
.status-segment {
height: 100%;
transition: width 300ms ease;
}
.status-2xx {
background: ${cssManager.bdTheme('#22c55e', '#22c55e')};
}
.status-3xx {
background: ${cssManager.bdTheme('#3b82f6', '#60a5fa')};
}
.status-4xx {
background: ${cssManager.bdTheme('#facc15', '#facc15')};
}
.status-5xx {
background: ${cssManager.bdTheme('#ef4444', '#ef4444')};
}
.status-legend {
display: flex;
justify-content: space-between;
}
.legend-item {
font-size: 12px;
color: ${cssManager.bdTheme('#71717a', '#a1a1aa')};
}
`,
];
render() {
const total = this.data.status2xx + this.data.status3xx + this.data.status4xx + this.data.status5xx;
const p2xx = total > 0 ? (this.data.status2xx / total) * 100 : 0;
const p3xx = total > 0 ? (this.data.status3xx / total) * 100 : 0;
const p4xx = total > 0 ? (this.data.status4xx / total) * 100 : 0;
const p5xx = total > 0 ? (this.data.status5xx / total) * 100 : 0;
return html `
<div class="card">
<div class="header">
<div class="title">Traffic (Last Hour)</div>
<div class="subtitle">Request metrics from access logs</div>
</div>
<div class="metrics">
<div class="metric">
<span class="metric-label">Requests</span>
<span class="metric-value">${this.formatNumber(this.data.requests)}</span>
</div>
<div class="metric">
<span class="metric-label">Errors</span>
<span class="metric-value">${this.data.errors} (${this.data.errorPercent}%)</span>
</div>
<div class="metric">
<span class="metric-label">Avg Response</span>
<span class="metric-value">${this.data.avgResponse}ms</span>
</div>
<div class="metric">
<span class="metric-label">Req/min</span>
<span class="metric-value">${this.data.reqPerMin}</span>
</div>
</div>
<div class="status-bar-container">
<div class="status-bar">
<div class="status-segment status-2xx" style="width: ${p2xx}%"></div>
<div class="status-segment status-3xx" style="width: ${p3xx}%"></div>
<div class="status-segment status-4xx" style="width: ${p4xx}%"></div>
<div class="status-segment status-5xx" style="width: ${p5xx}%"></div>
</div>
<div class="status-legend">
<span class="legend-item">2xx</span>
<span class="legend-item">3xx</span>
<span class="legend-item">4xx</span>
<span class="legend-item">5xx</span>
</div>
</div>
</div>
`;
}
formatNumber(num) {
if (num >= 1000000)
return (num / 1000000).toFixed(1) + 'M';
if (num >= 1000)
return (num / 1000).toFixed(1) + 'K';
return num.toString();
}
constructor() {
super(...arguments);
__runInitializers(this, _data_extraInitializers);
}
static {
__runInitializers(_classThis, _classExtraInitializers);
}
};
return SzTrafficCard = _classThis;
})();
export { SzTrafficCard };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3otdHJhZmZpYy1jYXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHNfd2ViL2VsZW1lbnRzL3N6LXRyYWZmaWMtY2FyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUNMLFdBQVcsRUFDWCxhQUFhLEVBQ2IsSUFBSSxFQUNKLEdBQUcsRUFDSCxVQUFVLEVBQ1YsUUFBUSxHQUVULE1BQU0sNkJBQTZCLENBQUM7SUFxQnhCLGFBQWE7NEJBRHpCLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQzs7OztzQkFDRSxXQUFXOzs7OzZCQUFuQixTQUFRLFdBQVc7Ozs7Z0NBbUIzQyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDM0IsaUtBQWdCLElBQUksNkJBQUosSUFBSSxtRkFVbEI7WUE5QkosNktBZ01DOzs7O1FBL0xRLE1BQU0sQ0FBQyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFBOzs7Z0JBR2pCO1lBQ04sUUFBUSxFQUFFLElBQUk7WUFDZCxNQUFNLEVBQUUsRUFBRTtZQUNWLFlBQVksRUFBRSxHQUFHO1lBQ2pCLFdBQVcsRUFBRSxHQUFHO1lBQ2hCLFNBQVMsRUFBRSxFQUFFO1lBQ2IsU0FBUyxFQUFFLEVBQUU7WUFDYixTQUFTLEVBQUUsQ0FBQztZQUNaLFNBQVMsRUFBRSxDQUFDO1lBQ1osU0FBUyxFQUFFLENBQUM7U0FDYjs7O0dBR04sQ0FBQztRQUdGLHFFQUFxQztZQUNuQyxRQUFRLEVBQUUsQ0FBQztZQUNYLE1BQU0sRUFBRSxDQUFDO1lBQ1QsWUFBWSxFQUFFLENBQUM7WUFDZixXQUFXLEVBQUUsQ0FBQztZQUNkLFNBQVMsRUFBRSxDQUFDO1lBQ1osU0FBUyxFQUFFLENBQUM7WUFDWixTQUFTLEVBQUUsQ0FBQztZQUNaLFNBQVMsRUFBRSxDQUFDO1lBQ1osU0FBUyxFQUFFLENBQUM7U0FDYixFQUFD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

View File

@@ -1,2 +0,0 @@
export * from './elements/index.js';
export * from './pages/index.js';

View File

@@ -1,3 +0,0 @@
export * from './elements/index.js';
export * from './pages/index.js';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90c193ZWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGtCQUFrQixDQUFDIn0=

View File

@@ -1,3 +0,0 @@
export * from './mainpage.js';
export * from './sz-demo-app.js';
export * from './sz-demo-app-shell.js';

View File

@@ -1,4 +0,0 @@
export * from './mainpage.js';
export * from './sz-demo-app.js';
export * from './sz-demo-app-shell.js';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvcGFnZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHdCQUF3QixDQUFDIn0=

View File

@@ -1 +0,0 @@
export declare const mainpage: () => import("@design.estate/dees-element").TemplateResult<1>;

View File

@@ -1,46 +0,0 @@
import { html } from '@design.estate/dees-element';
export const mainpage = () => html `
<style>
body {
margin: 0;
padding: 0;
background: #f5f5f5;
}
.demo-container {
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
padding: 24px;
}
.demo-section {
background: white;
border-radius: 12px;
padding: 48px;
box-shadow: 0 4px 24px rgba(0, 0, 0, 0.1);
max-width: 600px;
width: 100%;
}
h1 {
margin: 0 0 32px 0;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
font-size: 28px;
color: #1a1a1a;
}
.component-demo {
display: flex;
flex-direction: column;
gap: 16px;
}
</style>
<div class="demo-container">
<div class="demo-section">
<h1>Serve.Zone Catalog</h1>
<div class="component-demo">
<sz-hello></sz-hello>
<sz-hello text="Welcome to Serve.Zone!"></sz-hello>
</div>
</div>
</div>
`;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbnBhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvcGFnZXMvbWFpbnBhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRW5ELE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0EyQ2pDLENBQUMifQ==

View File

@@ -1,13 +0,0 @@
import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
import '@design.estate/dees-catalog';
import '../elements/index.js';
declare global {
interface HTMLElementTagNameMap {
'sz-demo-app-shell': SzDemoAppShell;
}
}
export declare class SzDemoAppShell extends DeesElement {
static styles: import("@design.estate/dees-element").CSSResult[];
render(): TemplateResult;
firstUpdated(): Promise<void>;
}

File diff suppressed because one or more lines are too long

View File

@@ -1,2 +0,0 @@
import '../elements/index.js';
export declare const szDemoApp: () => import("@design.estate/dees-element").TemplateResult<1>;

View File

@@ -1,20 +0,0 @@
import { html } from '@design.estate/dees-element';
import '../elements/index.js';
export const szDemoApp = () => html `
<style>
html, body {
margin: 0;
padding: 0;
height: 100%;
width: 100%;
overflow: hidden;
}
sz-demo-app-shell {
display: block;
height: 100vh;
width: 100vw;
}
</style>
<sz-demo-app-shell></sz-demo-app-shell>
`;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3otZGVtby1hcHAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvcGFnZXMvc3otZGVtby1hcHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ25ELE9BQU8sc0JBQXNCLENBQUM7QUFFOUIsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQTs7Ozs7Ozs7Ozs7Ozs7OztDQWdCbEMsQ0FBQyJ9

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,17 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="user-scalable=no, initial-scale=1">
<meta charset="utf-8" />
<link rel="preconnect" href="https://assetbroker.lossless.one/" crossorigin>
<link rel="stylesheet" href="https://assetbroker.lossless.one/fonts/fonts.css">
<style>
body {
margin: 0px;
background: #222222;
}
</style>
<script type="module" src="/bundle.js"></script>
</head>
<body></body>
</html>

View File

@@ -1,4 +1,7 @@
{
"@git.zone/tswatch": {
"preset": "element"
},
"@git.zone/cli": {
"projectType": "wcc",
"module": {

View File

@@ -9,24 +9,24 @@
"scripts": {
"test": "tstest test/",
"build": "tsbuild tsfolders --allowimplicitany && tsbundle element --production",
"watch": "tswatch element"
"watch": "tswatch"
},
"author": "Lossless GmbH",
"license": "MIT",
"dependencies": {
"@design.estate/dees-catalog": "^3.29.1",
"@design.estate/dees-domtools": "^2.3.6",
"@design.estate/dees-element": "^2.1.3",
"@design.estate/dees-wcctools": "^3.4.0"
"@design.estate/dees-catalog": "^3.43.0",
"@design.estate/dees-domtools": "^2.3.8",
"@design.estate/dees-element": "^2.1.6",
"@design.estate/dees-wcctools": "^3.8.0"
},
"devDependencies": {
"@git.zone/tsbuild": "^4.0.2",
"@git.zone/tsbundle": "^2.6.3",
"@git.zone/tsbuild": "^4.1.2",
"@git.zone/tsbundle": "^2.8.3",
"@git.zone/tsrun": "^2.0.1",
"@git.zone/tstest": "^3.1.3",
"@git.zone/tswatch": "^2.3.13",
"@git.zone/tstest": "^3.1.8",
"@git.zone/tswatch": "^3.1.0",
"@push.rocks/projectinfo": "^5.0.2",
"@types/node": "^25.0.3"
"@types/node": "^25.3.0"
},
"files": [
"ts/**/*",

3462
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,8 @@
/**
* autocreated commitinfo by @push.rocks/commitinfo
*/
export const commitinfo = {
name: '@serve.zone/catalog',
version: '1.0.1',
description: 'UI component catalog for serve.zone'
}