import * as plugins from '../../../plugins.js'; import { customElement, DeesElement, property, html, cssManager, unsafeCSS, css, render, directives, } from '@design.estate/dees-element'; import sharedStyles, { accountDesignTokens, cardStyles, typographyStyles } from '../sharedstyles.js'; declare global { interface HTMLElementTagNameMap { 'lele-accountview-baseview': BaseView; } } import * as state from '../../../states/accountstate.js'; @customElement('lele-accountview-baseview') export class BaseView extends DeesElement { @property({ type: Array, }) accessor subscriptions: any[] = [ { organization: 'org1', 'subscription type': 'workspace.global SaaS', price: '4€', userFactor: 4, total: '16.00€', }, { organization: 'org1', 'subscription type': 'workspace.global IaaS Base Access', price: '0€', userFactor: 4, total: '0€', }, { organization: 'org1', 'subscription type': 'workspace.global SLA Senior', price: '2000€', userFactor: 'none', total: '2000.00€', }, ]; public static styles = [ cssManager.defaultStyles, accountDesignTokens, cardStyles, typographyStyles, css` :host { display: block; padding: 48px; } .viewHost { max-width: 600px; margin: 0 auto; } .card { background: var(--card); border: 1px solid var(--border); border-radius: 12px; padding: 32px; box-shadow: 0 4px 24px rgba(0, 0, 0, 0.4); } .slug { color: var(--foreground); font-weight: 600; font-family: 'Geist Mono', monospace; } .hint { display: block; font-size: 13px; color: var(--muted-foreground); margin: 16px 0; padding: 12px 16px; background: var(--muted); border-radius: 8px; } dees-form { display: flex; flex-direction: column; gap: 16px; margin-top: 24px; } .orgGrid { display: grid; grid-gap: 16px; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); margin-top: 24px; } .org { padding: 20px; background: var(--card); border: 1px solid var(--border); border-radius: 12px; color: var(--foreground); transition: all 0.15s ease; cursor: pointer; } .org:hover { background: var(--muted); border-color: var(--muted-foreground); } .org dees-icon { opacity: 0.7; } `, ]; public render() { return html`
There are no organizations for your account. Please create one now. Alternatively you can ask an admin of an existing organization to invite you.
The organization slug will be:
${directives.subscribe(
state.accountState.select((stateArg) => stateArg.newOrg.chosenSlug)
)}
Choose an organization to manage its settings and billing.