import { html, CSSResultArray, TemplateResult } from 'lit';
import { customElement, property } from 'lit/decorators.js';
import { styles } from './nile-side-bar-expand.css';
import NileElement from '../internal/nile-element';
/**
* Nile side-bar-expand component.
*
* @tag nile-side-bar-expand
*
*/
@customElement('nile-side-bar-expand')
export class NileSideBarExpand extends NileElement {
@property({ type: Boolean, reflect: true })
collapsed: boolean = false;
@property({type: String, reflect:true, attribute:true}) expandTooltipText: string = 'Expand Sidebar';
@property({type: String, reflect:true, attribute:true}) collapseTooltipText: string = 'Collapse Sidebar';
public static get styles(): CSSResultArray {
return [styles];
}
connectedCallback() {
super.connectedCallback();
// Sync with parent sidebar if it exists
const sidebar = this.closest('nile-side-bar');
if (sidebar) {
this.collapsed = sidebar.hasAttribute('collapsed');
}
}
private toggleSidebar() {
const sidebar = this.closest('nile-side-bar');
if (!sidebar) return;
const isCollapsed = sidebar.hasAttribute('collapsed');
if (isCollapsed) {
sidebar.removeAttribute('collapsed');
this.collapsed = false;
} else {
sidebar.setAttribute('collapsed', '');
this.collapsed = true;
}
}
public render(): TemplateResult {
return html`
`;
}
}
export default NileSideBarExpand;
declare global {
interface HTMLElementTagNameMap {
'nile-side-bar-expand': NileSideBarExpand;
}
}