--- title: ChoiceList description: Presents multiple options for single or multiple selections. Use when merchants need to choose from a defined set of options in forms or filtering interfaces. api_version: 2025-10 api_name: pos-ui-extensions source_url: html: https://shopify.dev/docs/api/pos-ui-extensions/latest/polaris-web-componentsforms/choicelist md: https://shopify.dev/docs/api/pos-ui-extensions/latest/polaris-web-componentsforms/choicelist.md --- # Choice​List Presents multiple options for single or multiple selections. Use when merchants need to choose from a defined set of options in forms or filtering interfaces. ## Properties * id string A unique identifier for the element. * multiple boolean Default: false Whether multiple choices can be selected. * values string\[] An array of the `value`s of the selected options. This is a convenience prop for setting the `selected` prop on child options. ## Events Learn more about registering [events](https://shopify.dev/docs/api/pos-ui-extensions/using-polaris-components#events) * change (event: CallbackEvent<"s-choice-list">) => void Callback when the user changes a choice. Fires simultaneously with onInput. * input (event: CallbackEvent<"s-choice-list">) => void Callback when the user changes a choice. Fires simultaneously with onChange. ### CallbackEvent * bubbles ```ts boolean ``` * cancelable ```ts boolean ``` * composed ```ts boolean ``` * currentTarget ```ts HTMLElementTagNameMap[T] ``` * detail ```ts any ``` * eventPhase ```ts number ``` * target ```ts HTMLElementTagNameMap[T] | null ``` ```ts interface CallbackEvent { currentTarget: HTMLElementTagNameMap[T]; bubbles?: boolean; cancelable?: boolean; composed?: boolean; detail?: any; eventPhase: number; target: HTMLElementTagNameMap[T] | null; } ``` ## Choice Creates options that let merchants select one or multiple items from a list of choices. * disabled boolean Default: false Disables the control, disallowing any interaction. * id string A unique identifier for the element. * selected boolean Default: false Whether the control is active. * value string The value used in form data when the control is checked. ### Examples * #### Code ##### Default ```html Small Medium Large Extra large ``` ## Preview ![](https://shopify.dev/images/templated-apis-screenshots/pos-ui-extensions/2025-10/choicelist-default.png) ## Examples ChoiceList usage patterns ### Examples * #### Multiple selection ##### Description Enable multiple selection mode with controlled values ##### Default ```jsx console.log('Selected:', event.currentTarget.values)} > Small Medium Large ``` * #### Event handling ##### Description Handle onChange and onInput events. ##### Default ```jsx console.log('onChange:', event.currentTarget.values)} onInput={(event) => console.log('onInput:', event.currentTarget.values)} > Option 1 Option 2 (disabled) Option 3 ```