v2.0.0 is mostly additive (tree mode, add-new creation, scroll-to & search APIs, container-responsive collapse, base-icon theming). The items below are the changes that can require edits.

Event handler signature

Before (v1.x)
 
After (v2.0.0)
 

All breaking changes

Assigning options now updates in place (v2.4.0)
Setting the options property used to tear down and rebuild the component, snapping an open dropdown shut and resetting scroll / search. It now updates the live picker in place: an open dropdown stays open and the selection, scroll offset and search term survive the swap β€” so handing the component a fresh array on every framework re-render (React / Vue / Lit / LiveView) finally works for multi-select. Set options to null to clear in place; call refresh() when the same objects mutated; opt into dropping vanished selections with prune-missing-selection. If you relied on reassigning options to reset UI state, do that explicitly instead.
Tree checkbox-mode now defaults to cascade (v2.2.0)
In a multi-select tree, checkbox-mode now defaults to cascade (was independent): checking a branch selects its whole subtree, branches render tristate, and the emitted selection follows cascade-select-policy (default rolled-up β€” a fully-selected subtree collapses to its root value). Behavior change for existing tree consumers β€” set checkbox-mode="independent" explicitly to keep per-node toggling. No effect on flat lists or single-select (cascade only activates in tree + multiple). Everything else in 2.2.0 is additive.
Event handler properties now receive a CustomEvent
onSelect/onDeselect/onChange used to receive the bare option. They now receive a CustomEvent<MultiSelectEventDetail>. Read e.detail.option, e.detail.selectedOptions, e.detail.selectedValues. The native addEventListener('select', …) path is unchanged.
Field-shell input redesign removed several CSS variables
The input is now a flex field with real sibling controls (counter, clear, chevron). Removed: --ms-input-padding, --ms-input-padding-right, --ms-toggle-right, --ms-counter-offset, --ms-input-clear-inset, --ms-input-clear-gutter, --ms-transform-center-y. Use --ms-input-padding-h and --ms-input-gap instead.
Checkbox check/dash are now mask glyphs
Rendered from --ms-icon-check/--ms-icon-indeterminate rather than rotated borders. --ms-checkbox-checkmark-thickness is now a no-op (stroke is baked into the SVG).
Selected popover defaults to the field width
Previously a fixed 32rem. Set selected-popover-width / --ms-selected-popover-width to restore a fixed width.
Sizing bridges to the base layer
--ms-rem is now var(--base-rem, 10px) and icons flow from --base-icon-*. No change if you don’t use a base layer; a theme can now rescale/reskin everything centrally.