import{r as t,c as s,h as e,H as i,g as a}from"./p-BIwHMk6j.js";import{a as r}from"./p-CwMJvF_Z.js";const n=class{constructor(e){t(this,e),this.cancel=s(this,"cancel"),this.itemSelected=s(this,"itemSelected"),this.items=[],this.open=!1,this.isSearching=!1,this.emptyMessage="",this.handleCancel=t=>{t instanceof KeyboardEvent&&t.key!==r||(t.stopPropagation(),t.preventDefault(),this.cancel.emit())},this.selectOnInteract=t=>{t.stopPropagation(),t.preventDefault(),this.itemSelected.emit(t.detail)}}watchOpen(t){!0===t?this.setupHandlers():!1===t&&this.teardownHandlers()}connectedCallback(){this.open&&this.setupHandlers()}disconnectedCallback(){this.teardownHandlers()}setupHandlers(){this.host.addEventListener("keyup",this.handleCancel)}teardownHandlers(){this.host&&this.host.removeEventListener("keyup",this.handleCancel)}render(){return 0===this.items.length?this.isSearching?this.renderSpinner():e(i,{onMouseDown:this.handleMouseDown},e("limebb-empty-state",{value:this.emptyMessage,icon:{name:"search_more",color:"rgb(var(--contrast-800))"}})):e(i,{onMouseDown:this.handleMouseDown},[e("div",null,e("limel-list",{type:"selectable",items:this.getItems(),onInteract:this.selectOnInteract}),e("div",{class:"spinner-in-list"},this.renderSpinner()))])}renderSpinner(){if(this.isSearching)return e("limel-spinner",{size:"small",class:"search-spinner"})}handleMouseDown(t){t.preventDefault()}getItems(){return this.items.map((t=>"separator"in t?t:Object.assign(Object.assign({},t),{disabled:t.disabled||this.isSearching})))}get host(){return a(this)}static get watchers(){return{open:[{watchOpen:0}]}}};n.style=":host(limebb-text-editor-picker){animation:fade-in 0.3s ease forwards;animation-delay:0.1s;display:block;max-width:calc(100vw - 2rem);padding:0.125rem;border-radius:0.5rem;background-color:rgba(var(--contrast-100));box-shadow:var(--shadow-depth-16);max-height:50vh;overflow-y:auto}limel-menu-list{position:relative}limel-spinner{margin:0 auto}.spinner-in-list{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}@keyframes fade-in{0%{opacity:0}100%{opacity:1}}";export{n as limebb_text_editor_picker}