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 SzDemoViewConfig = (() => {
    let _classDecorators = [customElement('sz-demo-view-config')];
    let _classDescriptor;
    let _classExtraInitializers = [];
    let _classThis;
    let _classSuper = DeesElement;
    var SzDemoViewConfig = 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);
            SzDemoViewConfig = _classThis = _classDescriptor.value;
            if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
        }
        static styles = [
            cssManager.defaultStyles,
            css `
      :host {
        display: block;
        padding: 24px;
        height: 100%;
        overflow-y: auto;
        box-sizing: border-box;
      }
    `,
        ];
        render() {
            const systemFields = [
                { key: 'Base Directory', value: '/home/user/.serve.zone/dcrouter' },
                { key: 'Data Directory', value: '/home/user/.serve.zone/dcrouter/data' },
                { key: 'Public IP', value: '203.0.113.50' },
                { key: 'Proxy IPs', value: ['203.0.113.10', '203.0.113.11'], type: 'pills' },
                { key: 'Uptime', value: '3d 14h 22m' },
                { key: 'Storage Backend', value: 'filesystem', type: 'badge' },
            ];
            const proxyFields = [
                { key: 'Route Count', value: 12 },
                { key: 'ACME Enabled', value: true, type: 'boolean' },
                { key: 'Account Email', value: 'admin@serve.zone' },
                { key: 'Use Production', value: true, type: 'boolean' },
                { key: 'Auto Renew', value: true, type: 'boolean' },
                { key: 'Renew Threshold', value: '30 days' },
            ];
            const emailFields = [
                { key: 'Ports', value: ['25', '465', '587'], type: 'pills' },
                { key: 'Hostname', value: 'mail.serve.zone' },
                { key: 'Domains', value: ['serve.zone', 'mail.serve.zone'], type: 'pills' },
                { key: 'Email Routes', value: 5 },
                { key: 'Received Path', value: '/data/emails' },
            ];
            const dnsFields = [
                { key: 'Port', value: 53 },
                { key: 'NS Domains', value: ['ns1.serve.zone', 'ns2.serve.zone'], type: 'pills' },
                { key: 'Scopes', value: ['serve.zone', 'example.com'], type: 'pills' },
                { key: 'Record Count', value: 24 },
                { key: 'DNS Challenge', value: true, type: 'boolean' },
            ];
            const tlsFields = [
                { key: 'Contact Email', value: 'admin@serve.zone' },
                { key: 'Domain', value: 'serve.zone' },
                { key: 'Source', value: 'acme', type: 'badge' },
                { key: 'Certificate Path', value: null },
                { key: 'Key Path', value: null },
            ];
            const cacheFields = [
                { key: 'Storage Path', value: '/home/user/.serve.zone/dcrouter/tsmdb' },
                { key: 'DB Name', value: 'dcrouter' },
                { key: 'Default TTL', value: '30 days' },
                { key: 'Cleanup Interval', value: '1 hour' },
            ];
            const radiusFields = [
                { key: 'Auth Port', value: null },
                { key: 'Accounting Port', value: null },
            ];
            const remoteIngressFields = [
                { key: 'Tunnel Port', value: 8443 },
                { key: 'Hub Domain', value: 'hub.serve.zone' },
                { key: 'TLS Configured', value: true, type: 'boolean' },
            ];
            return html `
      <sz-config-overview
        infoText="This view displays the current running configuration. DcRouter is configured through code or remote management."
      >
        <sz-config-section
          title="System"
          subtitle="Base paths and infrastructure"
          icon="lucide:server"
          status="enabled"
          .fields=${systemFields}
        ></sz-config-section>

        <sz-config-section
          title="SmartProxy"
          subtitle="HTTP/HTTPS and TCP/SNI reverse proxy"
          icon="lucide:network"
          status="enabled"
          .fields=${proxyFields}
          .actions=${[{ label: 'View Routes', icon: 'lucide:arrow-right', event: 'navigate', detail: { view: 'routes' } }]}
        ></sz-config-section>

        <sz-config-section
          title="Email Server"
          subtitle="SMTP email handling with smartmta"
          icon="lucide:mail"
          status="enabled"
          .fields=${emailFields}
        ></sz-config-section>

        <sz-config-section
          title="DNS Server"
          subtitle="Authoritative DNS with smartdns"
          icon="lucide:globe"
          status="enabled"
          .fields=${dnsFields}
        ></sz-config-section>

        <sz-config-section
          title="TLS / Certificates"
          subtitle="Certificate management and ACME"
          icon="lucide:shield-check"
          status="enabled"
          .fields=${tlsFields}
        ></sz-config-section>

        <sz-config-section
          title="Cache Database"
          subtitle="Persistent caching with smartdata"
          icon="lucide:database"
          status="enabled"
          .fields=${cacheFields}
        ></sz-config-section>

        <sz-config-section
          title="RADIUS Server"
          subtitle="Network authentication and VLAN assignment"
          icon="lucide:wifi"
          status="not-configured"
          .fields=${radiusFields}
        ></sz-config-section>

        <sz-config-section
          title="Remote Ingress"
          subtitle="Edge tunnel nodes"
          icon="lucide:cloud"
          status="enabled"
          .fields=${remoteIngressFields}
        ></sz-config-section>
      </sz-config-overview>
    `;
        }
        static {
            __runInitializers(_classThis, _classExtraInitializers);
        }
    };
    return SzDemoViewConfig = _classThis;
})();
export { SzDemoViewConfig };
//# sourceMappingURL=data:application/json;base64, 