import { a as attr, b as attr_class, c as clsx, e as escape_html, s as store_get, f as ensure_array_like, u as unsubscribe_stores, k as bind_props, i as derived } from "./index.js";
import { I as IconX } from "./IconX.js";
import { t } from "./index2.js";
/* empty css */
function html(value) {
var html2 = String(value ?? "");
var open = "";
return open + html2 + "";
}
function IconSearch($$renderer, $$props) {
const { size = 20, class: c = "" } = $$props;
$$renderer.push(``);
}
function EntityPicker($$renderer, $$props) {
$$renderer.component(($$renderer2) => {
var $$store_subs;
const {
open = void 0,
items,
current = "",
placeholder,
title = "",
onselect,
onclose
} = $$props;
let query = "";
let highlightIndex = 0;
const filtered = derived(() => {
const q = query.toLowerCase().trim();
if (!q) return items;
return items.filter((item) => item.label.toLowerCase().includes(q) || (item.description?.toLowerCase().includes(q) ?? false));
});
const grouped = derived(() => {
const groups = [];
const seen = /* @__PURE__ */ new Map();
for (const item of filtered()) {
const groupName = item.group ?? "";
const idx = seen.get(groupName);
if (idx !== void 0) {
groups[idx].items.push(item);
} else {
seen.set(groupName, groups.length);
groups.push({ name: groupName, items: [item] });
}
}
return groups;
});
const flatFiltered = derived(filtered);
function flatIndexOf(groupIdx, itemIdx) {
let index = 0;
for (let g = 0; g < groupIdx; g++) {
index += grouped()[g].items.length;
}
return index + itemIdx;
}
if (open) {
$$renderer2.push("");
$$renderer2.push(`
`);
if (title) {
$$renderer2.push("");
$$renderer2.push(`
`);
} else {
$$renderer2.push("");
}
$$renderer2.push(``);
if ($$store_subs) unsubscribe_stores($$store_subs);
bind_props($$props, { open });
});
}
export {
EntityPicker as E,
IconSearch as I
};