import * as plugins from '../plugins.js'; import * as elements from '../elements/index.js'; import { customElement, DeesElement, property, html, cssManager, unsafeCSS, css, resolveExec, type TemplateResult, } from '@design.estate/dees-element'; import type { IdpViewcontainer } from '../views/viewcontainer.js'; import { IdpState } from '../states/idp.state.js'; @customElement('idp-welcome') export class IdpWelcome extends DeesElement { viewContainer: IdpViewcontainer; constructor() { super(); } public static styles = [ cssManager.defaultStyles, css` :host { display: block; color: #fff; font-family: 'Geist Sans'; } :host([hidden]) { display: none; } h1 { font-family: 'Cal Sans'; text-align: center; font-size: 24px; margin: 0px auto; padding: 24px 24px 0px 24px; width: 500px; letter-spacing: 0.0125em; } .textbox { margin: 24px auto; width: 500px; background: #111111; border-radius: 16px; border-top: 1px solid ${cssManager.bdTheme('#ffffff', '#222222')}; padding: 24px; } .textbox dees-button { margin-top: 16px; } `, ]; public render(): TemplateResult { return html`

idp.global

${resolveExec(async () => { const idpState = await IdpState.getSingletonInstance(); await idpState.idpClient.determineLoginStatus(); const data = await idpState.idpClient.whoIs().catch(); if (data?.user) { return html` Hello ${data.user.data.name}! { const idpState = await IdpState.getSingletonInstance(); idpState.domtools.router.pushUrl('/account'); }} >Manage your account { const idpState = await IdpState.getSingletonInstance(); idpState.domtools.router.pushUrl('/logout'); }} >Logout ` } return html` Do you want to sign in or register? { const idpState = await IdpState.getSingletonInstance(); idpState.domtools.router.pushUrl('/login'); }} >Sign In { const idpState = await IdpState.getSingletonInstance(); idpState.domtools.router.pushUrl('/register'); }} >Register `; })}
Do you want to use idp.global for your app? {}}>Open Developer Dashboard
idp.global is a Open Source identity provider for the world wide web. You can get the code if you want to improve it. { window.open('https://code.foss.global/idp.global/idp.global', '_blank'); }} >Get the code
`; } }