import type { ReactiveController, ReactiveControllerHost } from 'lit'; /** * Keeps an element in sync with the light-DOM `` it reads its options * from (`l-select`, `l-combobox`). * * Those elements cache the options in a `_items` array rather than re-reading * the DOM on every render, so the cache needs invalidating — and nothing else * can do it. The `` is never slotted (it is read, not projected), so * there is no `slotchange` to listen for, and a consumer that re-labels an * option in place — a localized language picker, or any framework re-render, * since Vue/React/Svelte all patch the existing `