import { css, html, LitElement, unsafeCSS } from 'lit'; import { customElement, property } from 'lit/decorators.js'; import { CanvasTextFontFamily } from '../../../../surface-block/consts.js'; import { wrapFontFamily } from '../../../../surface-block/elements/text/utils.js'; @customElement('edgeless-font-family-panel') export class EdgelessFontFamilyPanel extends LitElement { static override styles = css` :host { display: flex; } .font-family-container { display: flex; flex-direction: column; align-items: start; justify-content: center; background: var(--affine-background-overlay-panel-color); gap: 8px; padding: 8px; border-radius: 8px; } .font-family-container edgeless-tool-icon-button { width: 100%; } .inter { font-family: ${unsafeCSS(wrapFontFamily(CanvasTextFontFamily.Inter))}, sans-serif; } .kalam { font-family: ${unsafeCSS(wrapFontFamily(CanvasTextFontFamily.Kalam))}, sans-serif; } .satoshi { font-family: ${unsafeCSS(wrapFontFamily(CanvasTextFontFamily.Satoshi))}, sans-serif; } .poppins { font-family: ${unsafeCSS(wrapFontFamily(CanvasTextFontFamily.Poppins))}, sans-serif; } .lora { font-family: ${unsafeCSS(wrapFontFamily(CanvasTextFontFamily.Lora))}, sans-serif; } .bebas-neue { font-family: ${unsafeCSS(wrapFontFamily(CanvasTextFontFamily.BebasNeue))}, sans-serif; } .orelega-one { font-family: ${unsafeCSS(wrapFontFamily(CanvasTextFontFamily.OrelegaOne))}, sans-serif; } `; @property({ attribute: false }) value = CanvasTextFontFamily.Inter; @property({ attribute: false }) onSelect?: (value: EdgelessFontFamilyPanel['value']) => void; private _onSelect(value: EdgelessFontFamilyPanel['value']) { this.value = value; if (this.onSelect) { this.onSelect(value); } } override render() { return html`