import { html, LitElement } from 'lit';
import { customElement, property } from 'lit/decorators.js';
import styles from './table-row.scss';
/**
* `kyn-tr` Web Component.
*
* Represents a table row (`
`) equivalent for custom tables created with Shidoka's design system.
* It primarily acts as a container for individual table cells and behaves similarly to a native `
` element.
*
* @slot unnamed - The content slot for adding table cells (`kyn-td` or other relevant cells).
*/
@customElement('kyn-tr')
export class TableRow extends LitElement {
static override styles = [styles];
@property({ type: Boolean, reflect: true })
selected = false;
// @property({ type: Boolean, reflect: true })
// disabled = false;
@property({ type: Boolean, reflect: true })
clickable = false;
@property({ type: Boolean, reflect: true })
expanded = false;
override connectedCallback() {
super.connectedCallback();
this.addEventListener('click', this.handleClick as EventListener);
}
override disconnectedCallback() {
super.disconnectedCallback();
this.removeEventListener('click', this.handleClick as EventListener);
}
handleClick() {
const event = new CustomEvent('on-row-clicked', {
bubbles: true,
composed: true,
});
this.dispatchEvent(event);
}
override render() {
return html` `;
}
}
// Define the custom element in the global namespace
declare global {
interface HTMLElementTagNameMap {
'kyn-tr': TableRow;
}
}