@paprika/list-box v7.0.2
@paprika/list-box
Description
The ListBox component allows users to select one or more options from a list contained within the component
Installation
yarn add @paprika/list-boxor with npm:
npm install @paprika/list-boxProps
ListBox
| Prop | Type | required | default | Description |
|---|---|---|---|---|
| children | arrayOf | false | null | Child of type <ListBox.Option />, <ListBox.Divider />, etc |
| hasError | bool | false | false | If ListBox is in an error state |
| hasTag | bool | false | false | If there is a tag |
| hasImplicitAll | bool | false | false | Has implicit "All items selected" value when no item is selected |
| height | string,number | false | 200 | The maximum height for the options container. Using a number implies px units. |
| isDisabled | bool | false | false | Disables the ListBox if true |
| isInline | bool | false | false | This options will display the list-box without the Popover |
| isMulti | bool | false | false | Let the user to select multiple options at same time |
| isOpen | bool | false | false | Indicates if the popover is visible |
| isReadOnly | bool | false | false | The ListBox will not allow value to be changed |
| onChange | func | false | () => {} | Callback returning the current selection on the ListBox |
| placeholder | string | false | null | Default label for trigger when the ListBox has no option selected |
| size | ListBoxContainer.types.size.SMALL, ListBoxContainer.types.size.MEDIUM, ListBoxContainer.types.size.LARGE | false | ListBoxContainer.types.size.MEDIUM | Size of the trigger and options (font size, height, padding, etc). |
| contentOffsetX | number | false | 0 | Lets the user control the X-axis offset for the ListBox content |
| contentOffsetY | number | false | 0 | Lets the user control the Y-axis offset for the ListBox content |
ListBox.A11y
| Prop | Type | required | default | Description |
|---|---|---|---|---|
| id | string | false | null | DOM id attribute for focussable control (trigger element or ul element if isInline=true) |
| refLabel | custom | false | null | Ref for a DOM element containing the label for this component |
ListBox.Box
| Prop | Type | required | default | Description |
|---|---|---|---|---|
| children | node | false | null | Body content of the box. |
ListBox.Divider
| Prop | Type | required | default | Description |
|---|---|---|---|---|
| isDisabled | bool | false | true | isDisable is use internally as a default prop |
the prop is read by the option/helpers/optionState.js which is assigned in the store it helps to ignore the divider while using the keyboard. see: options/helpers/options.js| |children|node|false|null| |
ListBox.Filter
| Prop | Type | required | default | Description |
|---|---|---|---|---|
| a11yText | string | false | null | Descriptive a11y text for assistive technologies. By default, text from children node will be used. |
| filter | func | false | null | Filters the list |
| hasSearchIcon | bool | false | true | If true displays a search icon |
| noResultsMessage | string | false | null | Message displayed if no results are found |
| onChangeFilter | func | false | null | Callback to be executed when the value is changed |
| onKeyDown | func | false | null | Callback to be executed when a key is pressed |
| placeholder | string | false | null | Displays a placeholder |
| renderFilter | func | false | null | Render function for filter |
| value | string | false | null | Sets a value for filter |
ListBox.Footer
| Prop | Type | required | default | Description |
|---|---|---|---|---|
| isAcceptVisible | bool | false | true | If true it makes the accept button visible |
| isCancelVisible | bool | false | true | If true it makes the cancel button visible |
| isClearVisible | bool | false | true | If true it makes the clear button visible |
| isDisabled | bool | false | false | If true it makes the footer disabled |
| kindAccept | Button.types.kind.PRIMARY, Button.types.kind.MINOR | false | Button.types.kind.PRIMARY | Sets what kind the accept button will be |
| kindCancel | Button.types.kind.PRIMARY, Button.types.kind.MINOR | false | Button.types.kind.MINOR | Sets what kind the cancel button will be |
| kindClear | Button.types.kind.PRIMARY, Button.types.kind.MINOR | false | Button.types.kind.MINOR | Sets what kind the cancel button will be |
| labelAccept | string | false | null | Sets the label for the accept button |
| labelCancel | string | false | null | Sets the label for the cancel button |
| labelClear | string | false | null | Sets the label for the clear button |
| onClickAccept | func | false | null | Callback to be executed when the accept button is clicked or activated by keyboard. |
| onClickCancel | func | false | null | Callback to be executed when the cancel button is clicked or activated by keyboard. |
| onClickClear | func | false | null | Callback to be executed when the clear button is clicked or activated by keyboard. |
| renderExtraButton | func | false | () => {} | Render an extra button beside the clear button |
| size | Button.types.size.SMALL, Button.types.size.MEDIUM, Button.types.size.LARGE | false | Button.types.size.MEDIUM | Determines the size of the footer |
ListBox.Option
| Prop | Type | required | default | Description |
|---|---|---|---|---|
| children | node,func | true | - | String, number or JSX content |
| isSelected | bool | false | null | |
| defaultIsSelected | bool | false | null | Describe if the option started as selected or not |
| hasNoIcon | bool | false | false | When no PlusIcon or CheckBox are needed |
| isDisabled | bool | false | false | Describe if the option is enable or not |
| isHidden | bool | false | false | Describe if the option is hidden or not |
| label | string | false | null | When the children are not a String, label should need to be add so the filter can work |
| onClick | func | false | null | Callback for the clicking event |
| value | any | false | null | Value of your option this can be any data structure |
| internalHandleOnClick | func | false | () => null | Internal prop, which shouldn't be documented |
| id | string | false | "" | Internal prop, which shouldn't be documented |
| preventDefaultOnSelect | bool | false | false | Internal prop, which shouldn't be documented |
ListBox.Popover
| Prop | Type | required | default | Description |
|---|---|---|---|---|
| children | node | false | - | Body content of the PopOver. |
| zIndex | number | false | 100 | Sets the z-index value of the PopOver |
ListBox.RawItem
| Prop | Type | required | default | Description |
|---|---|---|---|---|
| preventDefaultOnSelect | bool | false | true |
ListBox.Trigger
| Prop | Type | required | default | Description |
|---|---|---|---|---|
| clearIcon | node | false | null | Custom clear icon |
| children | node,func | false | <></> | Body content of the trigger. |
| hasClearButton | bool | false | true | If true it adds a clear button |
| hasImplicitAll | bool | false | false | Has implicit "All items selected" value when no item is selected |
| label | string | false | null | Override the label with a custom one. |
| onClickClear | func | false | null | Callback to be executed when the clear button is clicked or activated by keyboard. |
| onClickFooterAccept | func | false | null | Callback to be executed when the accept button is clicked or activated by keyboard. |
| placeholder | string | false | null | Sets a placeholder for the trigger |
| isHidden | bool | false | false | If true the trigger will be hidden |
For a basic ListBox
import ListBox from "@paprika/list-box";
function Component() {
return (
<ListBox onChange={changeHandler}>
<ListBox.Option>Option 1</ListBox.Option>
<ListBox.Option>Option 2</ListBox.Option>
</ListBox>
);
}With Filter
import ListBox from "@paprika/list-box";
function Component() {
return (
<ListBox onChange={changeHandler}>
<ListBox.Filter />
<ListBox.Option>Option 1</ListBox.Option>
<ListBox.Option>Option 2</ListBox.Option>
</ListBox>
);
}Links
7 months ago
7 months ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago