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 SzDomainDetailView = (() => { let _classDecorators = [customElement('sz-domain-detail-view')]; let _classDescriptor; let _classExtraInitializers = []; let _classThis; let _classSuper = DeesElement; let _domain_decorators; let _domain_initializers = []; let _domain_extraInitializers = []; let _certificate_decorators; let _certificate_initializers = []; let _certificate_extraInitializers = []; let _dnsRecords_decorators; let _dnsRecords_initializers = []; let _dnsRecords_extraInitializers = []; let _actionLoading_decorators; let _actionLoading_initializers = []; let _actionLoading_extraInitializers = []; var SzDomainDetailView = class extends _classSuper { static { _classThis = this; } static { const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0; _domain_decorators = [property({ type: Object })]; _certificate_decorators = [property({ type: Object })]; _dnsRecords_decorators = [property({ type: Array })]; _actionLoading_decorators = [property({ type: Boolean })]; __esDecorate(this, null, _domain_decorators, { kind: "accessor", name: "domain", static: false, private: false, access: { has: obj => "domain" in obj, get: obj => obj.domain, set: (obj, value) => { obj.domain = value; } }, metadata: _metadata }, _domain_initializers, _domain_extraInitializers); __esDecorate(this, null, _certificate_decorators, { kind: "accessor", name: "certificate", static: false, private: false, access: { has: obj => "certificate" in obj, get: obj => obj.certificate, set: (obj, value) => { obj.certificate = value; } }, metadata: _metadata }, _certificate_initializers, _certificate_extraInitializers); __esDecorate(this, null, _dnsRecords_decorators, { kind: "accessor", name: "dnsRecords", static: false, private: false, access: { has: obj => "dnsRecords" in obj, get: obj => obj.dnsRecords, set: (obj, value) => { obj.dnsRecords = value; } }, metadata: _metadata }, _dnsRecords_initializers, _dnsRecords_extraInitializers); __esDecorate(this, null, _actionLoading_decorators, { kind: "accessor", name: "actionLoading", static: false, private: false, access: { has: obj => "actionLoading" in obj, get: obj => obj.actionLoading, set: (obj, value) => { obj.actionLoading = value; } }, metadata: _metadata }, _actionLoading_initializers, _actionLoading_extraInitializers); __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers); SzDomainDetailView = _classThis = _classDescriptor.value; if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata }); } static demo = () => html `
`; #domain_accessor_storage = __runInitializers(this, _domain_initializers, null); get domain() { return this.#domain_accessor_storage; } set domain(value) { this.#domain_accessor_storage = value; } #certificate_accessor_storage = (__runInitializers(this, _domain_extraInitializers), __runInitializers(this, _certificate_initializers, null)); get certificate() { return this.#certificate_accessor_storage; } set certificate(value) { this.#certificate_accessor_storage = value; } #dnsRecords_accessor_storage = (__runInitializers(this, _certificate_extraInitializers), __runInitializers(this, _dnsRecords_initializers, [])); get dnsRecords() { return this.#dnsRecords_accessor_storage; } set dnsRecords(value) { this.#dnsRecords_accessor_storage = value; } #actionLoading_accessor_storage = (__runInitializers(this, _dnsRecords_extraInitializers), __runInitializers(this, _actionLoading_initializers, false)); get actionLoading() { return this.#actionLoading_accessor_storage; } set actionLoading(value) { this.#actionLoading_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: 8px; } .domain-name { font-size: 24px; font-weight: 700; color: ${cssManager.bdTheme('#18181b', '#fafafa')}; display: flex; align-items: center; gap: 12px; } .status-badge { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 9999px; font-size: 12px; font-weight: 500; } .status-badge.active { background: ${cssManager.bdTheme('#dcfce7', 'rgba(34, 197, 94, 0.2)')}; color: ${cssManager.bdTheme('#16a34a', '#22c55e')}; } .status-badge.pending { background: ${cssManager.bdTheme('#fef3c7', 'rgba(245, 158, 11, 0.2)')}; color: ${cssManager.bdTheme('#d97706', '#f59e0b')}; } .status-badge.error { background: ${cssManager.bdTheme('#fee2e2', 'rgba(239, 68, 68, 0.2)')}; color: ${cssManager.bdTheme('#dc2626', '#ef4444')}; } .status-dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; } .domain-meta { display: flex; align-items: center; gap: 16px; font-size: 14px; color: ${cssManager.bdTheme('#71717a', '#a1a1aa')}; } .verified-badge { display: inline-flex; align-items: center; gap: 4px; color: ${cssManager.bdTheme('#16a34a', '#22c55e')}; } .verified-badge svg { width: 16px; height: 16px; } .header-actions { display: flex; gap: 8px; } .action-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; } .action-button:hover:not(:disabled) { background: ${cssManager.bdTheme('#f4f4f5', '#18181b')}; } .action-button:disabled { opacity: 0.6; cursor: not-allowed; } .action-button svg { width: 14px; height: 14px; } .action-button.danger { color: ${cssManager.bdTheme('#dc2626', '#ef4444')}; border-color: ${cssManager.bdTheme('#fee2e2', 'rgba(239, 68, 68, 0.3)')}; } .action-button.danger:hover:not(:disabled) { background: ${cssManager.bdTheme('#fee2e2', 'rgba(239, 68, 68, 0.2)')}; } .grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 16px; } @media (max-width: 768px) { .grid { grid-template-columns: 1fr; } } .section { background: ${cssManager.bdTheme('#ffffff', '#09090b')}; border: 1px solid ${cssManager.bdTheme('#e4e4e7', '#27272a')}; border-radius: 8px; overflow: hidden; } .section.full-width { grid-column: 1 / -1; } .section-header { display: flex; justify-content: space-between; align-items: center; padding: 14px 16px; border-bottom: 1px solid ${cssManager.bdTheme('#e4e4e7', '#27272a')}; background: ${cssManager.bdTheme('#f4f4f5', '#18181b')}; } .section-title { font-size: 14px; font-weight: 600; color: ${cssManager.bdTheme('#18181b', '#fafafa')}; display: flex; align-items: center; gap: 8px; } .section-title svg { width: 16px; height: 16px; color: ${cssManager.bdTheme('#71717a', '#a1a1aa')}; } .section-action { padding: 6px 10px; 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; } .section-action:hover { background: ${cssManager.bdTheme('#ffffff', '#09090b')}; color: ${cssManager.bdTheme('#18181b', '#fafafa')}; } .section-content { padding: 16px; } .cert-status { display: flex; align-items: center; gap: 12px; padding: 16px; background: ${cssManager.bdTheme('#f0fdf4', 'rgba(34, 197, 94, 0.1)')}; border-radius: 8px; margin-bottom: 16px; } .cert-status.expiring { background: ${cssManager.bdTheme('#fffbeb', 'rgba(245, 158, 11, 0.1)')}; } .cert-status.expired { background: ${cssManager.bdTheme('#fef2f2', 'rgba(239, 68, 68, 0.1)')}; } .cert-icon { width: 40px; height: 40px; border-radius: 8px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .cert-icon.valid { background: ${cssManager.bdTheme('#dcfce7', 'rgba(34, 197, 94, 0.2)')}; color: ${cssManager.bdTheme('#16a34a', '#22c55e')}; } .cert-icon.expiring { background: ${cssManager.bdTheme('#fef3c7', 'rgba(245, 158, 11, 0.2)')}; color: ${cssManager.bdTheme('#d97706', '#f59e0b')}; } .cert-icon.expired { background: ${cssManager.bdTheme('#fee2e2', 'rgba(239, 68, 68, 0.2)')}; color: ${cssManager.bdTheme('#dc2626', '#ef4444')}; } .cert-icon svg { width: 20px; height: 20px; } .cert-info { flex: 1; } .cert-title { font-size: 14px; font-weight: 600; color: ${cssManager.bdTheme('#18181b', '#fafafa')}; } .cert-subtitle { font-size: 13px; color: ${cssManager.bdTheme('#71717a', '#a1a1aa')}; margin-top: 2px; } .cert-days { font-size: 24px; font-weight: 700; text-align: center; } .cert-days.valid { color: ${cssManager.bdTheme('#16a34a', '#22c55e')}; } .cert-days.expiring { color: ${cssManager.bdTheme('#d97706', '#f59e0b')}; } .cert-days.expired { color: ${cssManager.bdTheme('#dc2626', '#ef4444')}; } .cert-days-label { font-size: 11px; color: ${cssManager.bdTheme('#71717a', '#a1a1aa')}; text-align: center; margin-top: 2px; } .info-row { display: flex; justify-content: space-between; align-items: center; padding: 10px 0; border-bottom: 1px solid ${cssManager.bdTheme('#f4f4f5', '#27272a')}; } .info-row:last-child { border-bottom: none; } .info-label { font-size: 13px; color: ${cssManager.bdTheme('#71717a', '#a1a1aa')}; } .info-value { font-size: 13px; font-weight: 500; color: ${cssManager.bdTheme('#18181b', '#fafafa')}; } .info-value.enabled { color: ${cssManager.bdTheme('#16a34a', '#22c55e')}; } .chain-list { display: flex; flex-wrap: wrap; gap: 8px; } .chain-badge { padding: 4px 8px; background: ${cssManager.bdTheme('#f4f4f5', '#27272a')}; border-radius: 4px; font-size: 12px; color: ${cssManager.bdTheme('#71717a', '#a1a1aa')}; } .dns-table { width: 100%; } .dns-header { display: grid; grid-template-columns: 80px 1fr 2fr 80px 60px; gap: 12px; padding: 10px 0; font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; color: ${cssManager.bdTheme('#71717a', '#a1a1aa')}; border-bottom: 1px solid ${cssManager.bdTheme('#e4e4e7', '#27272a')}; } .dns-row { display: grid; grid-template-columns: 80px 1fr 2fr 80px 60px; gap: 12px; padding: 12px 0; font-size: 13px; color: ${cssManager.bdTheme('#18181b', '#fafafa')}; border-bottom: 1px solid ${cssManager.bdTheme('#f4f4f5', '#27272a')}; align-items: center; } .dns-row:last-child { border-bottom: none; } .dns-row:hover { background: ${cssManager.bdTheme('#f4f4f5', '#18181b')}; margin: 0 -16px; padding-left: 16px; padding-right: 16px; } .dns-type { 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; text-align: center; } .dns-name { font-family: monospace; } .dns-value { font-family: monospace; color: ${cssManager.bdTheme('#71717a', '#a1a1aa')}; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .dns-ttl { color: ${cssManager.bdTheme('#71717a', '#a1a1aa')}; } .dns-actions { display: flex; gap: 4px; } .icon-button { padding: 4px; background: transparent; border: none; color: ${cssManager.bdTheme('#71717a', '#a1a1aa')}; cursor: pointer; border-radius: 4px; transition: all 200ms ease; } .icon-button:hover { background: ${cssManager.bdTheme('#e4e4e7', '#27272a')}; color: ${cssManager.bdTheme('#18181b', '#fafafa')}; } .icon-button.danger:hover { background: ${cssManager.bdTheme('#fee2e2', 'rgba(239, 68, 68, 0.2)')}; color: ${cssManager.bdTheme('#dc2626', '#ef4444')}; } .icon-button svg { width: 14px; height: 14px; } .routes-list { display: flex; flex-wrap: wrap; gap: 8px; } .route-badge { padding: 6px 10px; background: ${cssManager.bdTheme('#f4f4f5', '#27272a')}; border-radius: 4px; font-size: 13px; font-family: monospace; color: ${cssManager.bdTheme('#18181b', '#fafafa')}; } .empty-state { text-align: center; padding: 24px; color: ${cssManager.bdTheme('#71717a', '#a1a1aa')}; font-size: 14px; } `, ]; render() { if (!this.domain) { return html `
No domain selected
`; } return html `
${this.domain.name} ${this.domain.status.charAt(0).toUpperCase() + this.domain.status.slice(1)}
${this.domain.verified ? html ` Verified ` : html `Not verified`} Added ${this.domain.createdAt}
${!this.domain.verified ? html ` ` : ''}
SSL Certificate
${this.certificate ? html ` ` : ''}
${this.certificate ? html `
${this.certificate.status === 'valid' ? html ` ` : this.certificate.status === 'expiring' ? html ` ` : html ` `}
${this.certificate.status === 'valid' ? 'Certificate Valid' : this.certificate.status === 'expiring' ? 'Certificate Expiring Soon' : 'Certificate Expired'}
Issued by ${this.certificate.issuer}
${Math.abs(this.certificate.daysRemaining)}
${this.certificate.daysRemaining >= 0 ? 'days left' : 'days ago'}
Valid From ${this.certificate.validFrom}
Valid Until ${this.certificate.validUntil}
Auto-Renew ${this.certificate.autoRenew ? 'Enabled' : 'Disabled'}
${this.certificate.chain && this.certificate.chain.length > 0 ? html `
Certificate Chain
${this.certificate.chain.map(cert => html `${cert}`)}
` : ''} ` : html `
No certificate configured
`}
Proxy Routes
${this.domain.proxyRoutes && this.domain.proxyRoutes.length > 0 ? html `
${this.domain.proxyRoutes.map(route => html ` ${route} `)}
` : html `
No proxy routes configured
`}
DNS Records
${this.dnsRecords.length > 0 ? html `
Type Name Value TTL
${this.dnsRecords.map(record => html `
${record.type} ${record.name} ${record.priority ? `${record.priority} ` : ''}${record.value} ${record.ttl}s
`)}
` : html `
No DNS records configured
`}
`; } handleVerify() { this.dispatchEvent(new CustomEvent('verify-domain', { detail: this.domain, bubbles: true, composed: true })); } handleDelete() { this.dispatchEvent(new CustomEvent('delete-domain', { detail: this.domain, bubbles: true, composed: true })); } handleRenewCertificate() { this.dispatchEvent(new CustomEvent('renew-certificate', { detail: this.certificate, bubbles: true, composed: true })); } handleAddDnsRecord() { this.dispatchEvent(new CustomEvent('add-dns-record', { detail: this.domain, bubbles: true, composed: true })); } handleEditDnsRecord(record) { this.dispatchEvent(new CustomEvent('edit-dns-record', { detail: record, bubbles: true, composed: true })); } handleDeleteDnsRecord(record) { this.dispatchEvent(new CustomEvent('delete-dns-record', { detail: record, bubbles: true, composed: true })); } constructor() { super(...arguments); __runInitializers(this, _actionLoading_extraInitializers); } static { __runInitializers(_classThis, _classExtraInitializers); } }; return SzDomainDetailView = _classThis; })(); export { SzDomainDetailView }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3otZG9tYWluLWRldGFpbC12aWV3LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHNfd2ViL2VsZW1lbnRzL3N6LWRvbWFpbi1kZXRhaWwtdmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUNMLFdBQVcsRUFDWCxhQUFhLEVBQ2IsSUFBSSxFQUNKLEdBQUcsRUFDSCxVQUFVLEVBQ1YsUUFBUSxHQUVULE1BQU0sNkJBQTZCLENBQUM7SUF1Q3hCLGtCQUFrQjs0QkFEOUIsYUFBYSxDQUFDLHVCQUF1QixDQUFDOzs7O3NCQUNDLFdBQVc7Ozs7Ozs7Ozs7Ozs7a0NBQW5CLFNBQVEsV0FBVzs7OztrQ0FpQ2hELFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQzt1Q0FHMUIsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO3NDQUcxQixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7eUNBR3pCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQztZQVI1Qix1S0FBZ0IsTUFBTSw2QkFBTixNQUFNLHVGQUE4QjtZQUdwRCxzTEFBZ0IsV0FBVyw2QkFBWCxXQUFXLGlHQUFtQztZQUc5RCxtTEFBZ0IsVUFBVSw2QkFBVixVQUFVLCtGQUEwQjtZQUdwRCw0TEFBZ0IsYUFBYSw2QkFBYixhQUFhLHFHQUFrQjtZQTNDakQsNktBOHNCQzs7OztRQTdzQlEsTUFBTSxDQUFDLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUE7OztrQkFHZjtZQUNSLEVBQUUsRUFBRSxHQUFHO1lBQ1AsSUFBSSxFQUFFLGFBQWE7WUFDbkIsTUFBTSxFQUFFLFFBQVE7WUFDaEIsUUFBUSxFQUFFLElBQUk7WUFDZCxTQUFTLEVBQUUsWUFBWTtZQUN2QixXQUFXLEVBQUUsQ0FBQyxRQUFR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