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(`
`); } else { $$renderer2.push(""); } $$renderer2.push(``); if ($$store_subs) unsubscribe_stores($$store_subs); bind_props($$props, { open }); }); } export { EntityPicker as E, IconSearch as I };