UNPKG

@wix/design-system

Version:

@wix/design-system

134 lines (112 loc) 3.12 kB
## Feature Examples ### Selected - description: <p>Indicate which item is chosed with <code>selected</code> prop.</p> - example: ```jsx () => { const [selectedId, setSelectedId] = React.useState("favorite"); const icons = [ { id: "favorite", icon: <Icons.Favorite />, label: "Favorite" }, { id: "heart", icon: <Icons.Heart />, label: "Heart" }, ]; return ( <Box width="200px" direction="vertical" padding="20px" gap="4px"> {icons.map(({ id, icon, label }) => ( <ListItemSelectIcon key={id} icon={icon} label={label} selected={selectedId === id} onClick={() => setSelectedId(id)} /> ))} </Box> ); }; ``` ### Size - description: <p>Item size depends on the icon provided. If a small icon is used, the list item will automatically adjust its size to fit.</p> - example: ```jsx () => { const icons = [ { id: 'favorite', icon: <Icons.Favorite />, label: 'Favorite' }, { id: 'heart', icon: <Icons.HeartSmall />, label: 'Heart' }, ]; return ( <Box width="200px" direction="vertical" padding="20px" gap="4px"> {icons.map(({ id, icon, label }) => ( <ListItemSelectIcon key={id} icon={icon} label={label} onClick={() => setSelectedId(id)} /> ))} </Box> ); }; ``` ### Disabled - description: <p>Component can be disabled, it automatically changes color of all areas if used as text or icon.</p> - example: ```jsx () => { const [selectedId, setSelectedId] = React.useState("favorite"); const icons = [ { id: "favorite", icon: <Icons.Favorite />, label: "Favorite" }, { id: "heart", icon: <Icons.Heart />, label: "Heart", disabled: true }, ]; return ( <Box width="200px" direction="vertical" padding="20px" gap="4px"> {icons.map(({ id, icon, label, disabled }) => ( <ListItemSelectIcon key={id} icon={icon} label={label} disabled={disabled} selected={selectedId === id} onClick={() => setSelectedId(id)} /> ))} </Box> ); }; ``` ### Custom content - description: <p>Pass custom content in the item depending on your use-case. You can construct any dropdown based selection list, from status selector with <Badges/> or color selector when needed.</p> - example: ```jsx () => { const [selectedId, setSelectedId] = React.useState("icon"); const items = [ { id: "icon", icon: <Icons.Favorite />, label: "Favorite icon", }, { id: "avatar", icon: <Avatar size="size24" name="John Doe" />, label: "User avatar", }, { id: "badge", icon: <Badge skin="standard">Badge</Badge>, label: "Notifications badge", }, ]; return ( <Box width="200" direction="vertical" padding="20px" gap="4px"> {items.map(({ id, icon, label }) => ( <ListItemSelectIcon key={id} icon={icon} label={label} onClick={() => setSelectedId(id)} /> ))} </Box> ); }; ```