Build a component that allows transferring items between two lists.

Requirements
- There are two lists each initially containing 4 items.
- Each item has a checkbox that can be checked/unchecked.
- Transferring
- Clicking on the double arrow buttons will transfer all items from one list to the other, as specified by the direction of the arrows.
- Clicking on the single arrow buttons will transfer only the selected items, as specified by the direction of the arrows.
- Transferred items are added to the bottom of the destination list.
- Item selection (checked) states are preserved after transferring.
- Buttons are disabled if there are no relevant items to be transferred.
- Pair every checkbox with its item label. Give each arrow button a descriptive accessible name, hide the arrow glyph from assistive technology, and ensure all actions work from the keyboard.