import { LitElement, html, css } from 'lit';
import './grain-spinner.js';
export class GrainButton extends LitElement {
static properties = {
variant: { type: String },
loading: { type: Boolean },
loadingText: { type: String },
disabled: { type: Boolean, reflect: true }
};
static styles = css`
:host {
display: inline-block;
}
button {
display: flex;
align-items: center;
justify-content: center;
gap: 6px;
border: none;
padding: 8px 16px;
border-radius: 6px;
font-size: var(--font-size-sm);
font-weight: var(--font-weight-semibold);
font-family: inherit;
cursor: pointer;
transition: opacity 0.15s;
}
button:disabled {
opacity: 0.5;
cursor: not-allowed;
}
button.primary {
background: var(--color-accent, #0066cc);
color: white;
}
button.secondary {
background: transparent;
color: var(--color-text-primary);
border: 1px solid var(--color-border);
}
button.danger {
background: #ff4444;
color: white;
}
button.ghost {
background: transparent;
color: var(--color-text-secondary);
padding: 8px;
}
`;
constructor() {
super();
this.variant = 'primary';
this.loading = false;
this.loadingText = '';
this.disabled = false;
}
render() {
return html`
`;
}
}
customElements.define('grain-button', GrainButton);