import { Elena, html, unsafeHTML } from '@elenajs/core'; type AsideType = 'note' | 'tip' | 'caution' | 'danger'; const ICONS: Record = { note: '\u2139\uFE0F', tip: '\u{1F4A1}', caution: '\u26A0\uFE0F', danger: '\u{1F6A8}', }; const LABELS: Record = { note: 'Note', tip: 'Tip', caution: 'Caution', danger: 'Danger', }; function resolveType(t: string): AsideType { return (['note', 'tip', 'caution', 'danger'].includes(t) ? t : 'note') as AsideType; } /** * * Callout box with an icon and colored left border. * Children render in light DOM. * */ export class LitroAside extends Elena(HTMLElement) { static tagName = 'litro-aside'; static props = ['type', 'title']; type: AsideType = 'note'; title = ''; render() { const t = resolveType(this.type); return html` `; } } LitroAside.define(); export default LitroAside;